目录
-
运算符
链式赋值
x = y = 123 #相当于 x = 123; y = 123;
系列解包赋值
x, y, z = 1, 2, 3 #相当于 x = 1; y = 2; z = 3; 等号两边个数一致
应用:交换两个变量的值
x, y = 1, 2
x, y = y, x #简单粗暴,不讲道理
常量
理论上不支持常量,但是可以逻辑上认定某个变量为常量,整个编程过程中不改变它的值即可。(命名规则,一般全大写)
浮点数除法
>>> 7 / 7
1.0
整数除法
>>> 7 // 3 #这里的 // 中间不能有空格
2
0 不能作为被除数,会报错!
浮点数和整数计算,结果是浮点数!
幂
>>> 2 ** 3 # ** 中间不能有空格
8
增强型运算符
>>> i = 1 # 适用基本运算符
>>> i += 1 # 这里的 += 中间不能有空格(和C语言一样)!!!
>>> i
2
与或非
>>> a = True; b = False; c = 2
>>> a or c # 和C语言一致,当 or 前面的为真,直接返回,不执行 or 后面的代码
True
>>> a or 30/0 # 原来应该报错,但是没有执行,所以没有报错
True
>>> a or (c = 0) # 但是要注意,即使在 or 后面,依然不能违背语法规范
SyntaxError: invalid syntax
>>> c or a
2
>>> b or a
True
>>> a and c # 当 and 前面为假,不执行 and 后面的代码,直接返回False
2
>>> b and c
False
>>> not a
False
>>> not c
False
同一运算符
>>> a = 1; b = 1 # is 判断的是:是否引用了同一个对象,即比较的是对象地址
>>> a is b
True
>>> a = 258; b = 258 # 注意这里和下面的区别
>>> a is b
True
>>> a = 258
>>> b = 258
>>> a is b
False
>>> a is not b # is not 中间必须有空格
True
1. 整数缓存问题:Python命令行模式下,整数缓存范围是 [-5,256] ,也就是在这个范围内,值相同,调用的对象也相同。而在文本编辑器中的的范围是 [-5,无穷) 。
2. Python为了进一步优化,凡是在同一个代码块中的代码,如果出现两个值相同的整数,那么它们将被重用。
具体可以参考知乎 刘志军 老师的解答传送门!!!
-
进制
进制表示
# 所有的进制表示和后面的值中间不能有空格
>>> 0b0110 # 0B0110 也可以
6
>>> 0b2100 # 后面的值要满足前面的进制,注意
SyntaxError: invalid token
>>> 0o10 # 0O10 也可以
8
>>> 0o18 # 注意
SyntaxError: invalid syntax
>>> 0x14 # 0X14 也可以
20
-
简单数据类型
整数
Python3 中整数可以无限大,所以 Python 适合做科学运算!
浮点数
>>> 314E-2 # 浮点数的科学计数法表示
3.14
进制转换
>>> int (9.9) # 直接去掉小数点后的
9
>>> int (False) # 注意 F 大写
0
>>> int (True) # 注意 T 大写
1
>>> int ("1245") # 字符串类型不能有除数字外的字符
1245
>>> int ("124abc")
Traceback (most recent call last):
File "<pyshell#6>", line 1, in <module>
int ("124abc")
ValueError: invalid literal for int() with base 10: '124abc'
>>> float (3) # 这里并没有改变原对象中的 3 ,而是生成了一个类型为浮点型的新对象
3.0
四舍五入
>>> round (3.14) # 不改变原对象的值
3
>>> round (-3.14)
-3
>>> round (-3.56)
-4