数字 number
“数字”就是我们常见的阿拉伯数字,但在 Python 里,数字又分成“整数”、“浮点数”( 小数 ) 和“底数”,数字可以进行各种数学式的运算,也可以进行各种逻辑比较、时间表达等以数字为主的运算。
本篇使用的 Python 版本为 3.7.12,所有范例可使用 Google Colab 实作,不用安装任何软件 ( 参考:使用 Google Colab )
整数
整数 integer,表示没有分数或小数点的十进制数字,使用 type 查看整数的“型别”,可以得到“int”的型别。
type(5) # int
整数可以透过下方数学式进行一般的算数计算,并依循“先乘除后加减”的规则。
| 运算子 | 说明 | 范例 | 结果 |
|---|---|---|---|
| + | 加法 | 1+2 | 3 |
| - | 减法 | 20-12 | 8 |
| * | 乘法 | 2*3 | 6 |
| / | 除法 | 9/2 | 4.5 |
| // | 除法取整数 ( 无条件舍去 ) | 9//2 | 4 |
| % | 余数 | 9%2 | 1 |
| ** | 次方 | 2**3 | 8 |
3 + 2 # 5
3 + 2 * 2 # 7
( 3 + 2 ) * 2 # 10
如果整数的运算会产生小数点,结果就会转换成浮点数。
type(3/2) # float
进行整数的运算时,需要注意数字的“开头”不能为 0 ( 除非是“底数” ),如果整数开头为 0,执行时会出现错误。
如果要让一个数值等于“整数”,可以使用“int 函数”来进行型态的转换,int 函数也会将小数点的部分无条件舍弃、将数字字串转换成数字,或将布尔值转换成 1 或 0。
int(5.1) # 5
int(9/2) # 4
int('5') # 5
int('+2') # 2
int(True) # 1
int(False) # 0
int 函数也可以进行二进制、八进制、十六进制的转换。
- 十进制:0~9,当 10 的时候会进一位。
- 二进制:只有 1 和 0,当 2 的时候会进一位,变成 10,3 则是 11。
- 八进制:0~7,当 8 的时候会进一位,变成 10,9 则是 11。
- 十六进制:0~15 ( 10~15 由 A~F 表示 ),当 16 的时候会进一位,变成 10,11 则是 17。
int('101', 2) # 5 二進制
int('101', 8) # 65 八進制
int('101', 16) # 257 十六進制
注意,如果 int 转换的是“字串”或“有小数点数字的字串”,就会发生错误。
浮点数
浮点数 float,表示包含小数点的十进制数字,使用 type 查看整数的“型别”,可以得到“float”的型别,从下方的程序可以看到,只要数值包含了小数点,就算是 1.0 或 0.0,都会是“浮点数 float”的型别 ( 注意,由于计算机有比特数限制,有小数点的数字最多只有 15 位有效数字 )。
type(5.1) # float
type(1.0) # float
type(0.0) # float
如果使用浮点数和整数进行运算 ( 或和布尔值运算 ),得到的结果会是浮点数。
1.0 + 5 # 6.0
1.0 + True # 2.0
1.0 + False # 1.0
浮点数可以透过“float 函数”将整数、数字文字或布尔值,转换成浮点数的数字。
float(5) # 5.0
float('5') # 5.0
float('5.1') # 5.1
float(True) # 1.0
float(False) # 0.0
底数
底数是在数字的前方,加入 0b、0o 或 0x 的底数,来表示二进制、八进制或十六进制的数字,在“比特级”的模式下,往往是使用二进制、八进制或十六进制进行操作。
| 底数 | 代表 |
|---|---|
| 0b 或 0B | 二进制 |
| 0o 或 0O | 八进制 |
| 0x 或 0X | 十六进制 |
0b1111 # 15 ( 二進制 )
0o1111 # 585 ( 八進制 )
0x1111 # 4369 ( 十六進制 )
布尔
“布尔 Bool”只有 True 和 False 两个值,通常 True 可以表示为 1,Fasle 可以表示为 0,透过特殊函示 bool() 可以将任何数据型态转换成布尔,布尔主要运用在逻辑判断中,可以根据得到的布尔值,作出对应的动作,在之后的许多范例中,都可以看见布尔的应用。
下列“非 0 数字”会转换为 True:
bool(True) # True
bool(1) # True
bool('ok') # True
bool(-1) # True
下列“0 值数字”会转换为 False:
bool(False) # False
bool(0) # False
bool(0.0) # False
微信扫码关注
抖音扫码关注