在Python中,数据采用的是对象的形式,无论是Python所提供的内置对象,还是使用Python的工具和像C语言这样的其他语言所创建的对象。
Python的数字类型是相当典型的,它其实并不是一个真正的类型对象,而是一组类似对象的分类。Python不仅支持常规的数字类型(整形和浮点型),而且可以通过常亮去直接创建数字以及处理数字的表达式。
Python的数字类型一般包括:整数和浮点数、复数、固定精度的十进制数、集合、布尔值、无穷的整数精度、数字类型的内置函数和模块。
1.数字常量
在Python的基本数字类型中,拥有整数(正、负)、浮点数、还允许我们使用二进制、八进制和十进制常量来表示整数、复数以及允许整数拥有无穷的精度。
数字 | 常亮 |
12、-12、0、0.888888888888….. | 整数(无穷大小) |
2.12、2.、4.444e-10 | 浮点数 |
0o133、0x2d、0b1010101 | 八进制、十六进制、二进制 |
3+4j | 复数 |
2.变量和基本的表达式
在Python中:
- 变量在它第一次赋值时被创建
- 变量在表达式中使用时被替换为它们的值
- 变量在表达式中使用时必须被赋值
- 变量和对象一样不需要在一开始进行声明
这些特点总体的意思是说变量不需要预先声明,但是用之前必须要赋值。示例如下:
a = 3
b = 4
print(a + 1, b - 1)
结果:4 3
print(a * 3, b / 2)
结果:9 2.0
print(a % 2, b ** 2)
结果:1 16
print(a + 5.5, 2.4 ** b)
结果:8.5 33.1776
3. 数字的比较
print(1 < 2)
结果:True
print(1 < 2.0)
结果:True
print(1 < 2 < 3)
结果:True
print(2 > 1 and 2 < 3)
结果:True
4. 数字的除法
4.1 传统除法和真除法
在Python2.6以前的版本中,除法操作对于整数会隐去小数部分,对于浮点数会保留小数部分。但是在Python3.0中变成了真除法(都会保留小数部分)
print('真除法:',1 / 2)
真除法: 0.5
print('真除法:',1 / 3.0)
真除法: 0.3333333333333333
4.2 Floor除法
会忽略掉小数部分,只保留整数部分。
print('floor除法',10 // 4)
floor除法:2
print('floor除法',10 // 4.0)
floor除法:2.0
print('floor除法',10 // -4.0)
floor除法:-3.0
5. 复数
在Python中,复数是个不同的核心对象类型。复数表示两个浮点数(实部和虚部)并且在虚部增加了j或者J的后缀。
print(1j + 2J)
结果:3j
print(1 + 2j * 4)
结果:(1+8j)
6. 进制
a = 22
print('转化为8进制:',oct(a))
#转化为8进制: 0o26
print('转化为16进制:',hex(a))
#转化为16进制: 0x16
print('转化为2进制:',bin(a))
#转化为2进制: 0b10110
b = '22'
print('8转化10进制:',int(b,8))
#8转化10进制: 18
print('16转化10进制:',int('40',16))
#16转化10进制: 64
print('2转化10进制:',int('11000',2))
#2转化10进制: 24
7. 内置的数字相关函数
print('几次方:',pow(2,3))
#几次方: 8
print('绝对值:',abs(-8))
#绝对值: 8
print('计算和:',sum((1,2,3,4,5,5,6)))
#计算和: 26
print('最大值:',max(1,2,3,4))
#最大值: 4
print('最小值:',min(1,2,3,4))
#最小值: 1
print('将数字转化为字符串:',type(str(33)))
#将数字转化为字符串: <class 'str'>
import random
print('生成随机数:',random.random())
#生成随机数: 0.6469830797468936
print('生成指定范围的整数:',random.randint(1,5))
#生成指定范围的整数: 5
print('从序列(list,tuple,str)中获取一个随机的元素:',random.choice([1,2,3,4,5,6]))
#从序列(list,tuple,str)中获取一个随机的元素: 2
8.布尔类型
真值:True,假值:False
9.练习
(1)Python表达式2 * (3 + 4)的值是多少?
答:最后的结果是14,是2 * 7的结果。
(2)Python表达式2 * 3 + 4的值是多少?
答:最后的结果是10,是6 + 4的结果。
(3)求一个数字的平方根和平方?
平方根:math.sqrt(num)
平方:a ** 2,pow(a,2)
(4)表达式1 + 2.0对的结果是什么类型的数字?
答:浮点数类型。浮点数类型比整数类型复杂,会按照复杂的浮点数类型进行计算。
(5)怎样截断或者舍去浮点数的小数部分?
答:int(a)和math.trunc(a)函数省略小数部分,round(num,dight)做四舍五入。
(6)怎样将一个整数转化为浮点数?
答:float(a)将一个整数转化为浮点数
(7)如何将8进制、16进制、2进制的数转化为正常的整数。
答:int(num,dihgt),dight表示的是多少进制的数。