数据来源参考:(135条消息) 数据类型-基础语法-CSDNPython入门技能树
python的数据类型分为基本数据类型
和复合数据类型
基本数据类型
包含:数字
,字符串
复合数据类型
包含:列表
,元组
,字典
,集合
一,数字类型
数字类型就是用数字或数值表示的苏剧类型。
数字类型有:整型(int),浮点型(float),复数类型(complex)和布尔类型(bool)
tips:python可以用type()函数来查看变量的类型。
1.1 整数
整数一般使用二进制,八进制,十进制和十六进制表示。
整型不同形式的转换
- bin():十进制转换为二进制,输出形式是字符串
- oct():十进制转换为八进制,输出形式是字符串
- hex():十进制转换为十六进制,输出形式是字符串
- int() :接收一个符合整型规范的字符串,并将字符串转换为整型
tips1:Python中当多个变量的值相同时,这个值在内存中并没有被保存多次,只是多个变量都指向了同一内存
例如:
a = 6
b = 6
c = a
print(id(a),id(b),id(c))
# 输出
1643146464 1643146464 1643146464
id()可以取出变量的内存地址,从结果可以看出,a,b,c三个变量都指向了同一内存。但如果修改了a的值,那a的内存地址和b,c的内存地址及值有什么变化呢?举例如下:
a = 6
b = 6
c = a
print(id(a), id(b), id(c))
a = 8
print(id(a), id(b), id(c))
结果:
1643146464 1643146464 1643146464
1643146528 1643146464 1643146464
从上面可以看出,a的地址变了,b,c的地址没有变。
数字时Python中的不可变对象,当改变它的值时,并不是真的修改内存中变量的值,而是把新的值放入内存中,然后修改变量,使得变量指向新值的内存地址。浮点数、复数等其他数字类型及其他类型的变量具有同样的特点。
tips: Python具有自动内存管理功能,如果一个值没有任何变量指向,则Python自动将其删除,因此,一般Python程序员不需要太多考虑内存管理的问题(这就是Python与C语言最大的区别,自动内存回收机制!),但显式使用del命令删除不再使用的值,仍然是一个优秀程序员需要具备的基本素养!
1.2,浮点数
浮点数就是小数
可以使用flaot()函数将其他类型转换为浮点型。
a = 1.2
print(type(a))
b = 1e-2
print(type(b))
c = 2e3
print(c)
输出:
<class 'float'>
<class 'float'>
2000.0
1.3 复数
- 复数由“实部”和“虚部”两部分组成;
- 实数部分和虚数部分都是浮点型;
- 虚数部分后面必须有j或J
Python中表示复数的两种方法:
- a+bj
- complex(a,b)
其中a表示实部,b表示虚部
举例:
a = 2 + 6j
print(type(a))
b = complex(2, 6)
print(type(b))
print(id(a), id(b))
结果:
<class 'complex'>
<class 'complex'>
2718471372752 2718437554352
获取复数的实部、虚部、共轭复数等
a = 2 + 6j
print(a.imag) # .imag可以获取复数的虚部
print(a.real) # .real可以获取复数的虚部
print(a.conjugate()) # .conjugate()方法可以获取复数的共轭复数
结果:
6.0
2.0
(2-6j)
1.4 布尔类型
- Python中的布尔类型只有True和False两个取值;
- True对应整数1,False对应整数0。
- 常用的布尔运算包括 and、or、not 三种
等同于False的值:
- None;
- False;
- 任何为0的数字类型,如0、0.0、0j;
- 任何空序列,如’‘’'、()、[];
- 空字典,如{};
- 用户定义的类实例,如类中定义了__bool__()或者__len__()方法,并且该方法返回0或者布尔值False。
等同于True的值:
- 非零数值
- 非空字符串
and
和or
运算有一条重要的法则:短路法则
and举例:
a and b ,如果a是False,则整个结果必定为False,因此返回a的值,如果a是True,则表达式的结果取决于b,因此返回b (只有两个同为True是才为True,其它都是False)
a = 0
b = 2
print(a and b)
a = 1
b = 0
print(a and b)
a = 1
b = 3
print(a and b)
结果:
0
0
3
or举例:
a or b ,如果a是True,则整个结果必定为True,因此返回a的值,如果a是False,则表达式的结果取决于b,因此返回b &