数字是编程语言中最基础的数据类型。
数字分类
优先级问题
类型强制转换
1. 数字类型
Python中数字类型:
1)整数:例如:1, 100
2)布尔:True,False;
3)浮点数:例如3.14, 10.1;
>>> a = 20
>>> b = True
>>> pi = 3.14
>>>
2. 优先级问题
先看下面例子:
>>> r = 10
>>> pi = 3.14
>>> c = 2 * pi * r
>>> c
62.800000000000004
>>> r + True
11
>>> pi + True
4.140000000000001
整数和浮点数运算结果是浮点;
整数和布尔值运算结果是整数;
浮点和布尔值运算结果是浮点;
所以优先级顺序:浮点>整数>布尔。
不同数字类型进行算数运算过程:
内部强制转化数据类型,例如浮点和整数:
先将整数强制转化为浮点数,然后进行运算。
3. 数据类型强制转化:
- 数字之间转换
>>> pi = 3.14
>>> r = 10
>>> float(r) #整数转浮点
10.0
>>> int(pi) #浮点转整数
3
>>> bool(pi) #浮点转布尔
True
>>> bool(0) #整数转布尔
False
>>>
三个函数int,float,bool。
- 将字符串转化为数字
>>> s = '16'
>>> int(s) #强制转化为整数,10进制
16
>>> int(s, 16) #16进制,16:1 * 16 + 6 = 22
22
>>> int('0x16', 16) #16进制
22
>>> bool(s) #布尔值
True
>>> float(s) #浮点数
16.0
>>> int('a16') #10进制必须纯数字字符串,否则异常
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: invalid literal for int() with base 10: 'a16'
如何将数字转成字符串?根据前面内容可以使用格式化方式:
>>> '%d' % 10 #格式化的
'10'
>>>
另外一种方式我们在后面内容中详细介绍。