p数字类型
int (整数), 如 1, 只有一种整数类型 int,表示为长整型,没有 python2 中的 Long。
bool (布尔), 如 True。 float (浮点数), 如 1.23、3E-2 complex (复数), 如 1 + 2j、 1.1 + 2.2j同一行显示多条语句
import sys; x = 'runoob'; sys.stdout.write(x + '\n')
类型转换
int(x [,base])将x转换为一个整数float(x)将x转换到一个浮点数complex(real [,imag])创建一个复数str(x)将对象 x 转换为字符串repr(x)将对象 x 转换为表达式字符串eval(str)用来计算在字符串中的有效Python表达式,并返回一个对象tuple(s)将序列 s 转换为一个元组list(s)将序列 s 转换为一个列表set(s)转换为可变集合dict(d)创建一个字典。d 必须是一个 (key, value)元组序列。frozenset(s)转换为不可变集合chr(x)将一个整数转换为一个字符ord(x)将一个字符转换为它的整数值hex(x)将一个整数转换为一个十六进制字符串oct(x)将一个整数转换为一个八进制字符串
不常用的操作符
// 取整除 - 向下取接近商的整数a = 60 # 60 = 0011 1100 b = 13 # 13 = 0000 1101 c = 0 c = a & b # 12 = 0000 1100print ("1 - c 的值为:", c) c = a | b # 61 = 0011 1101 print ("2 - c 的值为:", c) c = a ^ b # 49 = 0011 0001print ("3 - c 的值为:", c) c = ~a # -61 = 1100 0011print ("4 - c 的值为:", c) c = a << 2 # 240 = 1111 0000print ("5 - c 的值为:", c) c = a >> 2 # 15 = 0000 1111print ("6 - c 的值为:", c)in 如果在指定的序列中找到值返回 True,否则返回 False。 x 在 y 序列中 , 如果 x 在 y 序列中返回 True。not in 如果在指定的序列中没有找到值返回 True,否则返回 False。 x 不在 y 序列中 , 如果 x 不在 y 序列中返回 True。is is 是判断两个标识符是不是引用自一个对象 x is y, 类似 id(x) == id(y) , 如果引用的是同一个对象则返回 True,否则返回 Falseis not is not 是判断两个标识符是不是引用自不同对象 x is not y , 类似 id(a) != id(b)。如果引用的不是同一个对象则返回结果 True,否则返回 False。id(x)用于取x的内存地址
转义
\a 响铃 >>> print("\a")执行后电脑有响声。\b 退格(Backspace) >>> print("Hello \b World!")Hello World!\000 空 >>> print("\000")>>> \n 换行 >>> print("\n")>>>\v 纵向制表符 >>> print("Hello \v World!")Hello World!>>>\t 横向制表符 >>> print("Hello \t World!")Hello World!>>>\r 回车 >>> print("Hello\rWorld!")World!\f 换页 >>> print("Hello \f World!")Hello World!>>> \yyy 八进制数,y 代表 0~7 的字符,例如:\012 代表换行。 >>> print("\110\145\154\154\157\40\127\157\162\154\144\41")Hello World!\xyy 十六进制数,以 \x 开头,y 代表的字符,例如:\x0a 代表换行 >>> print("\x48\x65\x6c\x6c\x6f\x20\x57\x6f\x72\x6c\x64\x21")Hello World!\other 其它的字符以普通格式输出
字符串
python3中所有的字符串默认为Unicode字符串
yield
列表推导式
[3*x for x in vec][[x, x**2] for x in vec][3*x for x in vec if x > 3][[row[i] for row in matrix] for i in range(4)]del a[2:4]
集合运算
a = set('abracadabra')>>> b = set('alacazam')>>> a # a 中唯一的字母{'a', 'r', 'b', 'c', 'd'}>>> a - b # 在 a 中的字母,但不在 b 中{'r', 'd', 'b'}>>> a | b # 在 a 或 b 中的字母{'a', 'c', 'r', 'd', 'b', 'm', 'z', 'l'}>>> a & b # 在 a 和 b 中都有的字母{'a', 'c'}>>> a ^ b # 在 a 或 b 中的字母,但不同时在 a 和 b 中{'r', 'd', 'b', 'm', 'z', 'l'}
字典
>>> dict([('sape', 4139), ('guido', 4127), ('jack', 4098)]){'sape': 4139, 'jack': 4098, 'guido': 4127}>>> {x: x**2 for x in (2, 4, 6)}{2: 4, 4: 16, 6: 36}>>> dict(sape=4139, guido=4127, jack=4098){'sape': 4139, 'jack': 4098, 'guido': 4127}
遍历技巧
>>> knights = {'gallahad': 'the pure', 'robin': 'the brave'}>>> for k, v in knights.items():... print(k, v)...gallahad the purerobin the brave>>> for i, v in enumerate(['tic', 'tac', 'toe']):... print(i, v)...0 tic1 tac2 toe>>> questions = ['name', 'quest', 'favorite color']>>> answers = ['lancelot', 'the holy grail', 'blue']>>> for q, a in zip(questions, answers):... print('What is your {0}? It is {1}.'.format(q, a))...What is your name? It is lancelot.What is your quest? It is the holy grail.What is your favorite color? It is blue.
name属性
一个模块被另一个程序第一次引入时,其主程序将运行。如果我们想在模块被引入时,模块中的某一程序块不执行,我们可以用__name__属性来使该程序块仅在该模块自身运行时执行。