- 思考力
- 脑图
- 保留字
- 函数">内置函数
- 附表
- 术语箱(持续更新…)
- 指令(instruction)
- GUI(Graphical User Interface)
- 二进制(binary)
- 程序/软件(software)
- 执行(executing)
- 算术表达式(arithmetic expression)
- 计算(evaluate)
- 整数(integer)
- 小数(decimal number)
- 上标(superscript)
- 下标(subscript)
- 拼接(concatenation)
- 分支(branching)
- 代码块(block)
- 缩进(indenting)
- 惯例(convention)
- 比较操作符(comparison operator)
- 迭代(iteration)
- 参数(argument)
- 文档(documentation)
- 排列(permutation)
- 追加(append)
- 布尔(boolean)
- 数据结构(data structure)
- 形参(parameter)
- 属性(property)
- 初始化(initializing)
- 像素(pixel)
- 块移(bitting)
- 动画精灵( sprite)
- 碰撞检测(collision detection)
- 队列(queue)
- 渲染( render )
- 部件(widget)
- 转义字符(escape character)
- 子串(substring)
- 文件夹(subfolder)
- 验证(validate)
- 时间戳(timestamp)
- 差(delta)
The Zen of Python
Beautiful is better than ugly.
Explicit is better than implicit. Simple is better than complex. Complex is better than complicated. Flat is better than nested. Sparse is better than dense.
Readability counts. Special cases aren’t special enough to break the rules. Although practicality beats purity. Errors should never pass silently. Unless explicitly silenced. In the face of ambiguity, refuse the temptation to guess. There should be one, and preferably only one, obviousway to do it. Although that way may not be obvious at first unless you’re Dutch.
Now is better than never. Although never is often better than right now. If the implementation is hard to explain, it’s a bad idea. If the implementation is easy to explain, it may be a good idea. Namespaces are one honking great idea —- let’s do more of those!
by Tim Peters
思考力
像程序员一样思考
看到错误消息也不用担心。它们只是为了帮助你找出哪里出了问题,以便你改正错误。如果程序中确实出了问题,你肯定更希望看到错误消息。没有给出任何错误消息的 bug 才更难找到!
脑图
保留字
and | as | assert | break | class | continue |
---|---|---|---|---|---|
def | del | elif | else | except | finally |
for | from | False | global | if | import |
in | is | lambda | nonlocal | not | None |
or | pass | raise | return | try | True |
while | with | yield |
内置函数
abs() | delattr() | hash() | memoryview() | set() | all() |
---|---|---|---|---|---|
dict() | help() | min() | setattr() | any() | dir() |
hex() | next() | slicea() | ascii() | divmod() | id() |
object() | sorted() | bin() | enumerate() | input() | oct() |
int() | bool() | eval() | staticmethod() | open() | str() |
breakpoint() | exec() | isinstance() | ord() | sum() | bytearray() |
filter() | issubclass() | pow() | super() | bytes() | float() |
iter() | print() | tuple() | callable() | format() | len() |
vars() | classmethod() | getattr() | locals() | repr() | zip() |
globals() | compile() | map() | reversed() | import() | complex() |
max() | round() | hasattr() |
附表
算数运算表
运算符 | 说明 | 实例 | 结果 |
---|---|---|---|
+ | 加 | 12.45 + 15 | 27.45 |
- | 减 | 4.56 - 0.26 | 4.3 |
* | 乘 | 5 * 3.6 | 18.0 |
/ | 除 | 7 / 2 | 3.5 |
% | 取余,即返回除法的余数 | 7 % 2 | 1 |
// | 整除,返回商的整数部分 | 7 // 2 | 3 |
** | 幂,即返回 x 的 y 次方 | 2 ** 4 | 16,即 2 |
赋值运算表
运算符 | 说明 | 举例 | 展开形式 |
---|---|---|---|
= | 最基本的赋值运算 | x = y | x = y |
+= | 加赋值 | x += y | x = x + y |
-= | 减赋值 | x -= y | x = x - y |
*= | 乘赋值 | x *= y | x = x * y |
/= | 除赋值 | x /= y | x = x / y |
%= | 取余数赋值 | x %= y | x = x % y |
**= | 幂赋值 | x **= y | x = x ** y |
//= | 取整数赋值 | x //= y | x = x // y |
&= | 按位与赋值 | x &= y | x = x & y |
|= | 按位或赋值 | x |= y | x = x | y |
^= | 按位异或赋值 | x ^= y | x = x ^ y |
<<= | 左移赋值 | x <<= y | x = x << y,这里的 y 指的是左移的位数 |
>>= | 右移赋值 | x >>= y | x = x >> y,这里的 y 指的是右移的位数 |
数据类型转化表
函 数 | 作 用 |
---|---|
int(x) | 将 x 转换成整数类型 |
float(x) | 将 x 转换成浮点数类型 |
complex(real,[,imag]) | 创建一个复数 |
str(x) | 将 x 转换为字符串 |
repr(x) | 将 x 转换为表达式字符串 |
eval(str) | 计算在字符串中的有效 Python 表达式,并返回一个对象 |
chr(x) | 将整数 x 转换为一个字符 |
ord(x) | 将一个字符 x 转换为它对应的整数值 |
hex(x) | 将一个整数 x 转换为一个十六进制字符串 |
oct(x) | 将一个整数 x 转换为一个八进制的字符串 |
转义字符表
转义字符 | 说明 |
---|---|
\ | 在行尾的续行符,即一行未完,转到下一行继续写 |
\‘ | 单引号 |
\“ | 双引号 |
\0 | 空 |
\n | 换行符 |
\r | 回车符 |
\t | 水平制表符,用于横向跳到下一制表位 |
\a | 响铃 |
\b | 退格(Backspace) |
\\ | 反斜线 |
\0dd | 八进制数,dd 代表字符,如 \012 代表换行 |
\xhh | 十六进制数,hh 代表字符,如 \x0a 代表换行 |
位运算表
位运算符 | 说 明 | 使用形式 | 举 例 |
---|---|---|---|
& | 按位与 | a & b | 4 & 5 |
| | 按位或 | a | b | 4 | 5 |
^ | 按位异或 | a ^ b | 4 ^ 5 |
~ | 按位取反 | ~a | ~4 |
<< | 按位左移 | a << b | 4 << 2,表示数字 4 按位左移 2 位 |
>> | 按位右移 | a >> b | 4 >> 2,表示数字 4 按位右移 2 位 |
比较运算表
比较运算符 | 功能 |
---|---|
> | 大于,如果运算符前面的值大于后面的值,则返回 True;否则返回 False |
>= | 大于或等于,如果运算符前面的值大于或等于后面的值,则返回 True;否则返回 False |
< | 小于,如果运算符前面的值小于后面的值,则返回 True;否则返回 False |
<= | 小于或等于,如果运算符前面的值小于或等于后面的值,则返回 True;否则返回 False |
== | 等于,如果运算符前面的值等于后面的值,则返回 True;否则返回 False |
!= | 不等于,如果运算符前面的值不等于后面的值,则返回 True;否则返回 False |
is | 判断两个变量所引用的对象是否相同,如果相同则返回 True |
is not | 判断两个变量所引用的对象是否不相同,如果不相同则返回 True |
逻辑运算表
运算符 | 含义 | 基本格式 | 功能 |
---|---|---|---|
and | 逻辑与(与) | a and b | 有 2 个操作数 a 和 b,只有它们都是 True 时,才返回 True,否则返回 False。 |
or | 逻辑或(或) | a or b | 有 2 个操作数 a 和 b ,只有它们都是 False 时,才返回 False,否则返回 True。 |
not | 逻辑非(非) | not a | 只需要 1 个操作数 a,如果 a 的值为 True,则返回 False;反之,如果 a 的值为 False,则返回 True。 |
运算符优先级表
运算符 | Python运算符 | 优先级 |
---|---|---|
小括号 | () | 20 |
索引运算符 | x[index] 或 x[index:index2[:index3]] | 18、19 |
属性访问 | x.attrbute | 17 |
乘方 | ** | 16 |
按位取反 | ~ | 15 |
符号运算符 | +(正号)或 -(负号) | 14 |
乘、除 | *、/、//、% | 13 |
加、减 | +、- | 12 |
位移 | >>、<< | 11 |
按位与 | & | 10 |
按位异或 | ^ | 9 |
按位或 | | | 8 |
比较运算符 | ==、!=、>、>=、<、<= | 7 |
is 运算符 | is、is not | 6 |
in 运算符 | in、not in | 5 |
逻辑非 | not | 4 |
逻辑与 | and | 3 |
逻辑或 | or | 2 |
术语箱(持续更新…)
指令(instruction)
就是下达给计算机的一个基本命令,通常要求计算机做某件特定的事情。
GUI(Graphical User Interface)
图形用户界面。这表示界面中有窗口、菜单、按钮、滚动条等等。
没有GUI的程序称为文本模式(text-mode)程序、控制台(console)程序或命令行(command-line)程序。
二进制(binary)
计算机要用非常非常多的电路来“思考”。在最底层,这些电路是一些开关。
工程师和计算机科学家们使用 1 和 0 来代表“开”和“关”。所有这些 1 和 0 是一种二进(binary)的编码。二进制实际上就表示“两种状态”。这两种状态分别是“开”和“关”,也就是 1 和 0。
程序/软件(software)
软件(或者程序)就是你的计算机上运行的指令集合,这些指令按照某种或某几种算法严格执行,完成特定的任务。比如把一组图片按照指定的帧率显示出来就形成了视频。
执行(executing)
执行命令、指令或程序就表示“运行”或者“发生”,这只是运行或发生的另外一种形象说法。
算术表达式(arithmetic expression)
计算(evaluate)
整数(integer)
就是我们平常数数时所说的数,如1、2、3,另外还包括0和负数,如-1、-2、-3。
小数(decimal number)
也称为实数(real number),这些数有小数点而且后面有小数位,如1.25、0.3752和-101.2。
在计算机编程中,小数也称为浮点数(floating-point number,有时简写为floats,或者如果只有一个浮点数,就简写为float)。这是因为小数点会“浮动”。0.00123456或12345.6都是浮点数。
上标(superscript)
指一个字符或一组字符比其余文本高一些,例如10。这里的13就是上标。通常上标还要比正文小一点。
下标(subscript)
类似上标,不过这些字符会比其余文本低,同样也会小一点,比如log这里的2就是一个下标。
拼接(concatenation)
把字符或字符串放在一起构成更长的字符串时,有一个特殊的称呼,称为拼接。
分支(branching)
完成测试并根据结果做出判断称为分支(branching)。程序根据测试的结果来决定走哪条路,或者沿哪个分支执行。
代码块(block)
一行或放在一起的多行代码。它们都与程序的某个部分相关(比如一个if语句)。在Python中,通过将块中的代码行缩进来构成代码块。
缩进(indenting)
指个代码行稍稍靠右一点。它不是从最左端开始,而是前面有一些空格,所以会从距左边界几个字符之后开始。
惯例(convention)
大多数人都采用的做法。
比较操作符(comparison operator)
也称为关系操作符(relational opera-tor),因为它们要测试两边值的关系(relation):相等还是不相等,大于还是小于。比较也称为条件测试(conditional test)或逻辑测试(logical test)。在编程中,逻辑(logical)就是指某个结论的答案是真还是假。
迭代(iteration)
每次循环称为一次迭代(iteration)。
参数(argument)
使用类似 range()
, int()
, float()
, print()
函数时放在括号里的值。我们说,向函数传入了参数。有时也用形参(parameter)这个词,如传递形参。
文档(documentation)
关于一个程序的信息,描述了程序并说明它是如何工作的。注释是程序文档的一部分,不过在代码本身以外,文档还包括其他部分,文档描述以下内容:
- 为什么写这个程序(它的用途)
- 这个程序是谁写的
- 这个程序面向什么人(它的用户)
- 如何组织
排列(permutation)
是一个数学概念,表示结合一组事物的唯一方式。组合(combination)与它很类似。它们的区别在于,对于组合,顺序并不重要,而排列中顺序很重要。
追加(append)
把一个东西加在最后面。把一个东西追加到列表时,会把它增加到列表的末尾。
布尔(boolean)
一种只使用两个值(1和0,或者true和false)的算术运算。这是数学家乔治·布尔发明的,用 and、or 和 not 来结合 true 和 false 条件(由1和0表示)时,就会用到布尔运算。
数据结构(data structure)
一种在程序中收集、存储或表示数据的方法。数据结构包括变量、列表和其他一些我们还没有讨论到的内容。实际上,数据结构这个词就表示程序中数据的组织方式。
形参(parameter)
谈到传递部分(调用函数)时应当称作实参(argument),而谈到接收部分(函数内部)时应该称为形参(parameter)。
属性(property)
可以通过描述特征或属性来描述一个对象。球的属性之一是它的形状。大多数球都是圆形。还有一些其他的属性,比如颜色、大小、重量和价格。属性的另一个说法是特性(property)。
初始化(initializing)
表示“开始时做好准备”。在软件中对某个东西初始化时,就是把它设置成一种我们希望的状态或条件,以备使用。
像素(pixel)
这个词是“图像元素”(picture element)的简写。这表示屏幕上或图像中的一点。如果在一个图像浏览器中查看图片,充分放大(让图像非常大),就可以看到单个的像素。
块移(bitting)
完成图形编程时,将像素从一个地方复制到另一个地方是很常见的(比如从变量复制到屏幕,或者从一个表面复制到另一个表面)。像素复制在编程中有一个特殊的名字,叫做。我们说将一个图像(或图像的一部分,或者只是一些像素)从一个地方“块移”到另一个地方。这只是“复制”的一种有趣的说法,不过看到“块移”时,你就会知道复制的是像素而不是其他内容。
动画精灵( sprite)
动画精灵表示作为一个单位来移动和显示的一组像素,这是一种图形对象。
动画精灵( sprite)这个词是从老式的计算机和游戏机流传下来的。这些 老式的游戏机不能很快地绘制和擦除图形来保证游戏正常工作。这些游戏机有一些特殊的硬件,专门用来处理需要快速移动的游戏类对象。这些对象就称为‘动画精灵’。它们有一些特殊的限制,不过可以非常快地绘制和更新….如今,一般来讲,计算机的速度已经足够快了,不需要专门的硬件也可以很好地处理类似动画精灵的对象。不过‘动画精灵’这个词仍用来表示二维(2D)游戏中的所有动画对象。
碰撞检测(collision detection)
了解两个动画精灵何时接触或重叠。两个移动的东西相互碰到一起,这就是一个碰撞(collision)。
队列(queue)
读作“Q”。日常生活中,这就表示排队。在编程中,队列通常指一个列表,其中的元素按某种特定的顺序到达,或者将按某种特定的顺序使用。
渲染( render )
计算机图形学中,渲染(render)是指绘制某个东西,或者让它可见。
部件(widget)
在GUI中,单个的按钮、复选框等都叫做“部件”(widget),也称为“组件”(component),有时还称为“控件”(control)。
转义字符(escape character)
当你使用两个反斜线来打印一个反斜线字符时,第一个反斜线叫做“转义字符”(escape character)。我们说第一个反斜线会将第二个反斜线“转义”,这样第二个反斜线就会被当成普通字符输出,而不是当成特殊字符。
子串(substring)
在较大的字符串(如657 Maple Lane)中查找较小的字符串(如Maple)时,较小的这个字符串称为子串(substring)。
文件夹(subfolder)
位于其他文件夹中的文件夹称为子文件夹(subfolder)。如果使用术语“目录”来描述,可以把它们称为子目录(subdirectory)。
验证(validate)
确保一样东西是合法的,即允许的或者合理的。
时间戳(timestamp)
将当前时间保存到文件中以备以后读取,这称为一个时间戳(timestamp)。
差(delta)
这是一个希腊字母,看起来像是一个三角形(△)。科学和数学领域经常使用希腊字母作为某些量的简写。delta 用于表示两个值之差。