数字类型
浮点数:
1.23
,1.
,.3
,3.14e-10
,4E10
,4.0e+10
- 八/十六/二进制整数:
0o177
(小写的字符o
或者大写的O
),0x9ff
,0b101010
- 复数:
3+4j
,3.0+4.0j
,3j
,3J
2.数字类型转换:
hex(intx)
、oct(intx)
、bin(intx)
、str(intx)
将整数intx
转换成十六/八/二/十进制表示的字符串int(strx,base)
将字符串strx
根据指定的base
进制转换成整数。base
默认为10float(strx)
将字符串strx
转换成浮点数complex(num_real,num_imag)
创建一个复数,实部为数字num_real
,
虚部为数字num_imag
3.混合类型表达式中,Python先将被操作对象转换成其中最复杂的操作对象的类型。
- 整数与浮点数混合操作时,将整数自动转换成浮点数
a<b<c
结果等同于a<b and b<c
a<b>c
结果等同于a<b and b>c
5.Python的除法x/y
在Python3和Python2.7中不同
- Python3中的除法保留小数部分,无论是整数除法还是浮点除法
- Python2.7中的除法:对整数除法会截取整数部分放弃小数部分,对小数除法会保留小数部分
Python中还有一种除法:Floor除法x//y
,它会将结果向下取整到不大于它的最大整数
6.将字符串转为整数除了用int()
函数外,也可以通过eval()
函数将字符串转为整数;
整数转字符串除了用str()/hex()
等函数外,也可以用格式化字符串。
7.Python支持将整数当作二进制位串对待的位操作。
8.Python支持许多对数字处理的内置函数与内置模块:
math
模块:如math.pi
,math.e
,math.sqrt
….- 内置函数,如
pow()
,abs()
,…
9.random
模块提供的工具可以生成0~1之间的随机浮点数、两个数字之间的任意整数、
序列中的任意一项。
10.浮点数缺乏精确性,因为存储浮点数的空间有限(这是硬件相关的内存缺陷),
可以用Decimal
对象解决精度问题。
Decimal
对象来自于decimal
模块,它类似于浮点数,但是有固定的位数和小数点,
因此是固定精度的小数。相对于浮点数,它带来了微小的精度损失。
- 设置全局的精度和舍入模式:
decimal.getcontext().prec=5
,将全局精度设置为小数点后5位 - 可用整数、浮点数、字符串初始化
Decimal
对象
11.Python中的分数类型是Fraction
对象,来自于fractions
模块。
- 对象能保证精确性,且能自动简化结果
从浮点数产生分数有两个方法:
- 调用
Fraction
的构造函数:Fraction(0.25)
- 用
Fraction.from_float()
函数:Fraction.from_float(0.25)
从浮点产生分数时,可以通过
.limit_denominator()
限制分母的最大值。- 调用
12.浮点数有个as_integer_ratio()
方法,能生成(分子,分母)
的元祖。
13.整数、浮点数、Fraction
、Decimal
可以混合运算
graph LR
id1(整数)-->|提升|id2(浮点数);
id2(浮点数)-->|提升|id3(Fraction);
id2(浮点数)-->|提升|id4(Decimal);
15.真
和假
是Python中每个对象的固有属性:每个对象不是真
就是假
。
该属性可以用于任何需要
bool`值的地方。
- 其他对象如果非空,则为真;如空字符串
""
为假
,空字典{}
为假
,
空列表[]
为假
,None
对象为假