Python
jasper_ding
活到老學到老,把編程當娛樂。
展开
-
Python 3 入门手札(02)在结构体中存储值 — List
除了简单的数据类型,Python 还允许我们将数据用不同方式组合起来创建结构体。最简单的结构体是线性结构体(sequences),它将信息一个接一个地存储起来,它分有两类:lists(列表)和tuples(元组)。另外也有非线性结构体,如:dict(字典)和 set(集合)。结构体可以视为一种容器,内部所装的数据称为元素(element)。List:列表List 要用方括号 [x, y,...原创 2019-06-09 15:36:15 · 664 阅读 · 0 评论 -
Pygame实作GUI(03)检查方块
前言检查方块(checkbox)在操作上与按钮相似,只是其选择状态并非短暂的。检查方块可以被认为是个触发开关,但当它被 clicked 时,它就会改变选择或未选择状态。如下图,「记住密码」与「自动登录」就使用了的检查方块。检查方块除了左边的图案之外,也有与之联系的文字描述,所以右边的文字也是检查方块的一部分。检查方块可以是单独出现或以 exclusive groups形式出现。一个单独出现...原创 2019-09-29 13:47:30 · 419 阅读 · 0 评论 -
Pygame实作GUI(02)Button
前言按钮(Button)是GUI中最简单的一种控件,由一个矩形区域组成,有两个状态:作用中、非作用中。两种状态表示可以点击或无法点击。按钮可以用图案表示,也可以使用文字,当然图案加文字也是可以的。因此大概知道一个Button 应该有一个代表底图的 surface 对象,以及一个显示文字的 Label 控件。在 GUI 中除了 Button 控件,还有单选钮(RadioButton)、复选钮(...原创 2019-09-28 13:18:25 · 7482 阅读 · 0 评论 -
Pygame 实作 GUI(01)Label
前言GUI ( Graphical User Interface ) 中文称之为『图形用户界面』。在Python 中,虽有默认的 UI 工具包 Tkinter,但如何与 pygame 融合使用?却不是简单易解的事。游戏中的用户界面,除了中文输入外,其他的部份用 pygame 来实作并非难事。既然易用的轮子难寻,索性就自己建造属于自己的 GUI 系统。显示文字在 pygame 中要显示文字,...原创 2019-09-21 13:02:28 · 3328 阅读 · 0 评论 -
Python 3 入门手札(15)threading 多线程模块
在 Python 中使用多线程只要用 threading 模块就能达成,建立一个线程的方法是用 threading.Thread() 类别来建立一个线程对象:import threadingt = threading.Thread(target=函式名称, args = (参数,))如果要执行的函式需传入参数的话,必须放在 threading.Thread() 里的 args 参数之中,而...原创 2019-08-18 16:59:27 · 129 阅读 · 0 评论 -
Python 3 入门手札(13)import 模块
Import 会将 python 代码从另一个文件中转移到当前的程序中。这些代码包括变量、函式、类别、模块及套件。模块(module)模块基本上就是一般的程序文件(.py)。在模块中可以定义各种变量、函式或类别。例如,我们自己写了很多函式,就可以将之储存到模块中,等需要时再汇入使用。套件(package)如果功能较多或较复杂,则可以将之分门别类储存到多个模块中,然后将这些模块存放在一个文件...原创 2019-07-27 11:27:04 · 236 阅读 · 0 评论 -
Python 3 入门手札(14)档案存取
Python 内建的 open() 函式可用来开启档案,它会传回一个档案对象,然后我们即可用档案对象的 read(), close() 等方法来操作档案。例如:f = open(‘a.txt’) # 以读取模式开启 a.txt 文件并传回一个档案对象data = f.read() # 读取档案内容f.close() # 关闭档案开启档案时的参数设定...原创 2019-08-05 10:48:49 · 277 阅读 · 0 评论 -
Python 3 入门手札(12)对象与类别
对象与类的三大特点:对象(object)是由类(class)产生的。类规划了对象的数据储存方式,这些储存的数据就称为对象的属性。类规划了对象的操作方式,这些操作方式就称为对象的方法。基本上类就像是对象的设计蓝图,有了类(蓝图)就可以用它来产生或建立对象。同一个类所产生的对象都具有相同的属性及操作方式,就像是同一个模子(蓝图)印出来的。例如,车厂设计好一车型的蓝图(类),然后...原创 2019-07-21 11:53:15 · 119 阅读 · 0 评论 -
Python 3 入门手札(11)函式 Function
使用变量的理由是为了要重复使用同一份数据,同样的,使用函式(Function)的理由是为了要重复使用一段程序。我们可以将需要重复使用的程序片段赋予一个函式名称,然后像变量一样,呼叫这个函式名称来重复使用这个程序片段。设计自己的函式定义函式要使用 def,语法如下:def 函式名称(参数1, 参数2, …): 程序区块函式名称的命名规则就跟变量一样,其中参数可以有多个,也可以无参...原创 2019-07-16 16:26:51 · 193 阅读 · 0 评论 -
Python 3 入门手札(08)if 判断式
If 判断式可以在程序中做「如果…就…」的判断,写法如下:if a < 1: # if 判断式,判断 a 是否小于 1 a += 1 # 右缩区块,表 a < 1 时,才会执行。 b = a + 3print(b) # 未缩排,不属于 if 区块。属于 if 的程序区块要「以 4 个空格向右缩排」,表示它们是属于上一行的区...原创 2019-07-07 10:31:27 · 248 阅读 · 0 评论 -
Python 3 入门手札(09)循环 while 及 for
如果需要重复执行某项工作,可用 while 或 for 循环来进行。其中 while 循环可依照条件来重复执行。而 for 循环则专门用来走访容器中的元素。While 循环语法如下:while 条件式 :程序区块n = int(input('请输入一个正整数:'))k = nwhile n > 1 : n = n – 1 k = k * nprint(k)...原创 2019-07-10 16:58:35 · 189 阅读 · 0 评论 -
Python 3 入门手札(10)异常处理
Python 一开始执行程序时,会先全面检查语法,如果语法错误,就会停止执行,此时必须修正语法,然后重新执行。如果语法没有错误,但在执行过程中发生系统无法处理的错误,此时系统会产生一个异常(Exception),如果此异常没有被处理,那么就会一层层往上送给呼叫它的程序,直到有程序出面处理为止。如果送到最上层都没有被处理,那么就会终止程序的执行并显示错误讯息。例如:为了避免程序因发生异常而被终止...原创 2019-07-14 09:59:11 · 123 阅读 · 0 评论 -
Python 3 入门手札(06)字符串 String
字符串(string)也是一种有顺序的「序列容器」,因此操作方法也和 List 很类似,不过和 tuple 一样,其元素是不能改变的。同样有索引和切片的功能,例如:s=’0123456’Python 没有「字符」类型,所以都是以〝只有一个字的字符串〞来表示。在算符部分,+(串接)、*(重复 n 次)、in (包含于)及 not in 都可以使用。在比较算符 >, ...原创 2019-06-29 11:10:51 · 205 阅读 · 0 评论 -
Python 3 入门手札(07)多重指定与自动解包、打包
多重指定可以让我们一次指定多个变量,例如:x, y, z = 1, 2, 3在等号右边的数据列,其实就是一个没加小括号的 tuple。凡是在需要多个值的场合,tuple 会自动解包(tuple unpacking),然后将元素一一指定给对应的变量。此时等号两边的项目数量必须相同才行,否则会产生错误。等号的两边都可以是容器只要是可读取元素的容器,都可以自动解包。甚至等号的左边也可以是有顺序...原创 2019-07-03 17:47:46 · 191 阅读 · 0 评论 -
Python 3 入门手札(05)在结构体中存储值 — dict
dict : 字典Dict(字典)跟 set(集合)很像,其差别在于 dict 中的元素是以「键 : 值」成对的方式来储存,方便我们用键(key)来查询对应的值。字典中的键必须是唯一的,但值可以重复。字典是以大括号 {key1 : value1, key2 : value2, …} 来标示。如果要建立空字典,可以用空的大括号 { } 或是不加参数的 dict()。字典...原创 2019-06-22 12:02:02 · 476 阅读 · 0 评论 -
Python 3 入门手札(04)在结构体中存储值 — Set
Set:集合如果说 list 是「一串数据」,那么 set(集合)就是「一堆数据」。一串数据是有顺序性的,例如:〝甲〞、〝乙〞、〝丙〞…依序排列,而一堆数据则是随机摆放,没有固定顺序。Set 要用大括号 {x, y, z } 来标示。Set 的元素必须是唯一而不可重复的,如果加入重复的数据则会被合并。除了使用 { } 来建立 set 之外,也可以用 set() 函式取用其他...原创 2019-06-17 11:33:38 · 377 阅读 · 0 评论 -
Python 3 入门手札(03)在结构体中存储值 — Tuple
Tuple:元组Tuple 和 List 完全一样,除了其中的元素是不可更改的。Tuple 要用小括号 (x, y, z) 来标示。要建立空的 tuple,可用 () 或是不加参数的 tuple()。Tuple 虽然是用 () 来标示,但要用索引取其中的元素时,仍然要用方括号 [],若用小括号 () 会变成呼叫函式,例如:grade[0] 是 grade 的第一个元素,而 ...原创 2019-06-15 10:46:24 · 211 阅读 · 0 评论 -
Python 3 入门手札(01)基础
指令在程序中英文大、小写是不同的。Python 程序事由一堆指令所指成的,通常一个指令就是一行,而且要由一行的最前面开始写起,若在指令的前面加上空白会变成程序的区块。在指令的内部,则可以在符号的前后视需要加入空白,以便增加美观或可读性。例如:print(2**3) # 未加空格,感觉有点挤!print(2 ** 3) # 在 ** 的前后加上空格,感觉是否比较...原创 2019-06-03 14:25:03 · 203 阅读 · 0 评论 -
Pygame实作GUI(04)MyBaseForm 类
前言前三篇介绍了 GUI 中的 Label, Button, Checkbox, Radio Button 等控件,基本上这些控件都是摆放在屏幕上的某个位置,要有显示及判断 click 事件的管理机制。每一个画面都会有,所以要设计成一个类来管理,因此设计了 MyBaseForm 类。MyBaseForm 类建构函式如下:class MyBaseForm(object): def _...原创 2019-10-02 13:12:46 · 288 阅读 · 0 评论