2.3 【基础】整数与浮点数
Python 支持的数字类型有三种:整数、浮点数和复数。
1. 整数(Int)
通常被称为整型,是正或负整数,不带小数点。例如:1,100,-8080,0,等等。
>>> a = 100
>>> type(a)
<class 'int'>
>>>
>>> b = -100
>>> type(b)
<class 'int'>
表示数字的时候,有时我们还会用八进制或十六进制来表示:
- 十六进制:用0x前缀和0-9,a-f表示,例如:0xff00,0xa5b4c3d2。
- 八进制:用0o前缀和0-7表示,例如0o12
>>> a = 0x0001 # 十六进制
>>> a
1
>>> type(a)
<class 'int'>
>>>
>>> b = 0o01 # 八进制
>>> b
1
>>> type(b)
<class 'int'>
2. 浮点数(Float)
浮点数也就是小数,如1.23,3.14,-9.01,等等。
>>> a = 1.23
>>> a
1.23
>>> type(a)
<class 'float'>
之所以称为浮点数,是因为按照科学记数法表示时,一个浮点数的小数点位置是可变的,比如,1.23x10^9和12.3x10^8是完全相等的。浮点数可以用数学写法,如1.23,3.14,-9.01,等等。但是对于很大或很小的浮点数,就必须用科学计数法表示,把10用e替代,1.23x109就是1.23e9,或者12.3e8,0.000012可以写成1.2e-5,等等。
>>> 1.23e9
1230000000.0
>>> 12.3e8
1230000000.0
3. 复数(Complex)
复数由实数部分和虚数部分构成,可以用a + bj,或者 complex(a,b) 表示,复数的实部a和虚部b都是浮点型。关于复数,不做科学计算或其它特殊需要,通常很难遇到,这里不做过多解释。
>>> a = 10 + 0.2j
>>> a
(10+0.2j)
>>> type(a)
<class 'complex'>
>>>
>>> b = complex(10, 0.2)
>>> b
(10+0.2j)
>>> type(b)
<class 'complex'>
4. 常用方法
两数运算
两数相加减
>>> a = 10
>>> b = 20
>>> a + b
30
>>> b - a
10
两数相乘除
>>> a = 10
>>> b = 20
>>> a * b
200
>>> b / a
2.0
取模取余
>>> a = 10
>>> b = 3
>>> a // b
3
>>> a % b
1
计算绝对值
>>> a = -10
>>> abs(a)
10
数值直接取整
>>> a = 3.14
>>> int(a)
3
>>> b = 3.78
>>> int(b)
3
数值四舍五入
>>> a = 3.14
>>> round(a)
3
>>> b = 3.78
>>> round(b)
4
2.4 【基础】布尔值:真与假
1. 什么是布尔值
但在Python语言中,布尔类型只有两个值
True:表示真值False:表示假值
请注意,首字母要大写,不能是其它花式变型。
所有的计算结果,判断表达式调用返回值是True或者False的过程都可以称为布尔运算,例如比较运算。
布尔值通常用来判断条件是否成立。
age = 16
if age >= 18:
print("你是个成年人")
else:
print("你还未成年")
在 Python Shell 的模式下,很容易看出表达式返回的是真值还是假值。
>>> True
True
>>> False
False
>>> 3 > 2
True
>>> 3 > 5
False
>>> 3 in [1,2,3]
True
>>> 3 == 9/3
True
2. 布尔类型的转换
Python内置的 bool() 函数可以用来测试一个表达式的布尔值结果。
>>> bool(1)
True
>>> bool(0)
False
>>> bool([])
False
>>> bool(())
False
>>> bool({})
False
>>> bool(-1)
True
>>> bool('')
False
>>> bool(None)
False
>>> bool("False")
True
>>> bool("True")
True
>>> bool(0.0)
False
>>> bool(1.0)
True
>>> bool(-0.0)
False
看完上面的例子,可以总结出
下面这些值经过 bool 转换后是假值:
- 0、0.0、-0.0
- None:这个后面会讲到
- 空字符串、空列表、空元组、空字典
而这些会转换成真值
- -1、1或者其他非0数值
- 所有非空字符串,包括
"False" - 所有非空字典、非空列表、非空集合,非空元组
3. 布尔运算
布尔类型可以进行 and、or和 not运算。
and 运算是与运算,只有所有都为True,and运算的结果才是True:
>>> True and True
True
>>> True and False
False
>>> False and False
False
>>> 5 > 3 and 3 > 1
True
or运算是或运算,只要其中有一个为True,or运算结果就是True:
>>> True or True
True
>>> True or False
True
>>> False or False
False
>>> 5 > 3 or 1 > 3
True
not运算是非运算,它是单目运算符,把True变成False,False变成True:
>>> not True
False
>>> not False
True
>>> not 1 > 2
True
再开下脑洞,布尔类型还能做别的运算吗?试试就知道了!
>>> True > False
True
>>> True < False
False
>>> True >=False
True
>>> True -1
0
>>> True + 1
2
>>> True *3
3
>>> False -1
-1
真的可以!比较运算,四则运算都没有问题。并且在做四则运算的时候,明显把True看做1,False看做0。往往是我们不知道的细节,有时候给我们带来巨大的困扰和疑惑。更多的运算种类支持,请大家自行测试。
4. 空值:None
空值不是布尔类型,严格的来说放在这里是不合适的,只不过和布尔关系比较紧密。
空值是Python里一个特殊的值,用None表示(首字母大写)。None不能理解为 0,因为0是整数类型,而None是一个特殊的值。
None也不是布尔类型,而是NoneType。
>>> bool(None)
False
>>> type(None)
<class 'NoneType'>