现在该复习学过的符号和Python关键字了,而且在这个习题中你还会学到新的一些东西。我在这里所做的就行将所有的Python符号和关键字列出来,这些都是要掌握的重点。
关键字(Keywords):
关键字 | 描述 | 示例 |
---|---|---|
and | 逻辑:与 | True and False == False |
not | 逻辑:非 | not True == False |
or | 逻辑:或 | True or False == True |
pass | 表示空代码块 | del empty(): pass |
is | 类似于==,判断是否一样 | 1 is 1 == True |
打印字符串 | print(“Hello World!!!”) | |
from | 从模块中导入特定部分 | from X import Y |
import | 将模块导入当前文件以供使用 | import os |
del | 可以删除变量,字典和列表中特定的索引 | 可以删除变量,字典和列表中特定的索引 X = [‘a’, ‘b‘, ’c‘, ’d‘, ’e‘] del x,删除变量x del X[0],删除列表第1个值 del x[0:2],删除列表第1-2个值,[2]对应的第3个值不删除 |
if | if 条件 | if: X; elif: Y; else:J |
elif | else if 条件 | if: X; elif: Y; else:J |
else | else 条件 | if: X; elif: Y; else:J |
while | while 循环 | while X: pass |
for | 针对物件集合的循环 | for X in Y: pass |
in | for循环的一部分,也可以x是否在y中的条件判断 | for X in Y: pass 以及 1 in [1] == True |
return | 返回值并退出函数 | def X(): return y |
class | 定义类 | class Person(object) |
global | 声明全局变量,通常函数内的变量是局部变量,我们可以在函数内用此函数声明为全局变量 | del x: x = "全局变量" global X |
exec | 将字符串作为Python脚本运行 | exec ‘print("hello")' |
lambda | 创建短匿名函数 | s = lambda y: y ** y; s(3) |
assert | 断言(确保)某东西为真 | assert False, "Error !" |
break | 立即停止循环 | while True: break |
continue | 停止当前循环的后续步骤,再做一次循环 | while True: continue |
raise | 出错后引发异常 | raise ValueError("No") |
try | 尝试执行代码,出错后转到except | try: pass except: pass |
except | 如果发生异常,运行此处代码 | try: pass except ValueError, e: print(e) |
finally | 不管是否发生异常,都运行此处代码 | try: pass finally: pass |
with | with-as 语句的一部分,将表达式作为一个变量,然后执行代码块;它的作用和上下文管理器有关,可以自动关闭打开的文件或线程,不管在处理文件过程中是否发生异常,都能保证 with 语句执行完毕后已经关闭了打开的文件句柄。 | with open('ex15_sample.txt') as X: y = X.read() 先将open()作为变量x,然后x.read() |
as | with-as 语句的一部分,可以理解为重命名,把复杂的表达式重命名简单的字符 | with open('ex15_sample.txt') as X: y = X.read() 先将open()作为变量x,然后x.read() |
yield | 暂停函数,返回到调用函数的代码中 | def X(): yield Y; X().next() |
数据类型:
针对每一种数据类型,都举出一些例子来。例如,针对string,你可以举出如何创建字符串,针对number,你可以举出一些数值。
关键字 | 描述 | 示例 |
---|---|---|
True | 布尔值“真” | True or False == True |
False | 布尔值“假” | False and True == False |
None | 表示“不存在”或者“没有值” | x = None |
bytes | 字节串存储,可能是文本、PNG图片、文件等 | x = b ' Hello! ' |
strings | 存储文本信息 | x = ' Hello! ' |
numbers | 储存整数 | i = 100 |
Floats | 存储十进制数 | i = 10.389 |
lists | 存储列表 | i = [1, 2, 3, 4, five, sex] |
dicts | 存储键-值映射 | e = { ' x ' : 1 , ' y ' : 2 } |
字符串转义序列:
对于字符串转义序列,需要在字符串中应用他们,确保自己清楚地知道它们的功能。
转义符 | 描述 |
---|---|
\\ | 反斜杠 |
\' | 单引号 |
\" | 双引号 |
\a | 响铃符 |
\b | 退格符 |
\f | 表单填充符 |
\n | 换行符 |
\r | 回车 |
\t | 制表符(tab) |
\v | 垂直制表符 |
老式字符串格式:
一样的,在字符串中使用它们,了解他们的功能。Python 2 用这些格式化字符事先 f 字符串的功能,把它们作为代替方案试试。
转义符 | 描述 | 示例 |
---|---|---|
%d | 十进制整数(非浮点数) | "%d" % 45 == '45' |
%i | 和%d 一样 | "%i" % 45 == '45' |
%o | 八进制数 | "%o" % 1000 == '1750' |
%u | 无符号整数 | "%u" % -1000 == '-1000' |
%x | 小写十六进制数 | "%x" % 1000 == '3e8' |
%X | 大写十六进制数 | "%X" % 1000 == '3E8' |
%e | 指数表示,小写e | "%e" % 1000 == '1.000000e+03' |
%E | 指数表示,大写E | "%E" % 1000 == '1.000000E+03' |
%f | 浮点实数 | "%f" % 10.34 == '10.340000' |
%F | 和 %f 一样 | "%F" % 10.34 == '10.340000' |
%g | %f 和%e 中较短的一种 | "%g" % 10.34 == '10.34' |
%G | 和 %g 一样,但是是大写 | "%G" % 10.34 == '10.34' |
%c | 字符格式 | "%c” % 34 == ‘ " ’ |
%r | Repr 格式(调式格式) | "%r" % int == "<type 'int'>" |
%s | 字符串格式 | "%s there" % 'hi' == 'hi there' |
%% | 百分号自身 | "%g%%" % 10.34 == '10.34%' |
运算符:
运算符 | 描述 | 示例 |
---|---|---|
+ | 加 | 2 + 4 = 6 |
- | 减 | 2 - 4 = -2 |
* | 乘 | 2 * 4 = 8 |
** | 幂 | 2 ** 4 = 16 |
/ | 除 | 2 / 4 = 0.5 |
// | 除后向下取整数 | 2 // 4 = 0(2/4=0.5,0.5下面的整数是0) |
% | 字符串翻译,或者求余数 | 2 % 4 = 2 (小除大,余数都是小的数本身) |
< | 小于 | 4 < 4 == False |
> | 大于 | 4 > 4 == False |
<= | 小鱼等于 | 4 <= 4 == True |
>= | 大于等于 | 4 >= 4 == True |
== | 等于 | 4 == 5 == False |
!= | 不等于 | 4 != 5 == True |
( ) | 括号 | len('hi') == 2 |
[ ] | 方括号 | x = [1, 5, 10] |
{ } | 花括号 | { ' x ' :5, ' y ' : 10} |
@ | 修饰器符 | @classmethod |
, | 逗号 | range(0, 10) |
: | 冒号 | def x(): |
. | 点 | self.x = 10 |
= | 赋值 | x = 10 |
; | 分号 | print("hi"); print("there") |
+= | 加后赋值 | x += 2 等于 x = x + 2 |
-= | 减后赋值 | x -= 2 等于 x = x - 2 |
*= | 乘后赋值 | x *= 2 等于 x = x * 2 |
/= | 除后赋值 | x /= 2 等于 x = x / 2 |
//= | 除后舍余并赋值 | x //= 2 等于 x = x // 2 |
%= | 求余后赋值 | x %= 2 等于 x = x % 2 |
**= | 求幂后赋值 | x **= 2 等于 x = x ** 2 |
花大约一星期学习这些内容,我们的目的是覆盖所有的符号类型,确认你牢牢记住它们。
阅读代码:
现在去找一些Python代码阅读一下。你需要自己找代码,然后从中学习一些东西。你学到的知识已经足够让你看懂一些代码了,但你可能还无法理解这些代码的功能。这个习题我会教你如何运用学到的知识理解别人的代码。
首先把你想要理解的代码打印到纸上。因为眼睛更习惯于接受纸质的东西。
然后通读打印出来的代码并做好笔记,笔记的内容包括以下几个方面。
1. 函数以及函数的功能。
2. 每个变量初始赋值的位置。
3. 每个在程序的各个部分中多次出现的同名变量。它们以后可能会给你带来麻烦。
4. 任何不包含 else 子句的 if 语句。它们是正确的吗?
5. 任何可能没有结束点的 while 循环。
6. 代码中任何你看不懂的部分。
接下来你需要通过注释的方式向自己解释代码的含义。解释各个函数的使用方法,多个变量的用途,以及任何其他方面的内容,只要能帮助你理解代码即可。
最后,在代码中比较难的各个部分,逐行或者逐个函数跟踪变量值。你可以再打印一份出来,在空白处写出要“追踪”的每个变量的值。
一旦理解了代码的基本功能,回到计算机前,在屏幕上重读一次,看看能不能找到新的问题点。然后继续找新的代码,用上述的方法去阅读理解,知道你不再需要纸质打印为止。
巩固练习:
1. 研究一下什么是“流程图”(flow chart),并学着画一下,
2. 如果在读代码的时候找到了错误,试着把它们改对,并把修改内容发给这段代码的作者。
3. 不用纸质打印时,可以用#注释在程序中加入笔记。