文章目录
三、数据类型
1. 基本的数据类型
- 在
Python
中定义变量是 不需要指定类型(在其他很多高级语言中都需要) Python
可以根据=
等号右侧的值,自动推导出变量中存储数据的类型- 每个对象都有类型
- 按照数字类型分类
-
数字类型
int
:整数类型float
:浮点类型(小数,实数)complex
:复数, 如 1 + 2j、 1.1 + 2.2j- 主要用于科学计算,例如:平面场问题、波动问题、电感电容等问题
bool
:布尔类型True
或非 0 数
—— 非零即真
False
或0
-
非数字类型
-
str
:字符串类型-
''
:空字符串 -
' '
:包含一个空格的字符串 -
' 艺术硕士 '
-
""
-
" "
-
'''asdf'''
:多行字符串 -
"""asdf"""
-
-
tuple
:元组 -
list
:列表 -
dict
:字典 -
set
:集合
-
- 按照可变不可变分类
-
不可变类型:
int
:整数类型
1, 2 ,3,100,55,23466float``:浮点类型(小数,实数) 1.0 3.14 23423.4234234
- 其他数字类型:
complex
,long(2.x)
str
:字符串类型
-
bool
:布尔类型tuple
:元组
特点: 这些数据都是不可以直接修改的,如果在修改或赋值时,都会开辟一个新空间
- 可变类型:
list
:列表dict
:字典set
:集合
特点: 这个些数据类型,是可以直接在原对象上进行修改数据,修改完成后,并不影响原对象地址
eg.
cl=[]
print(id(cl)) # 2458227593800
cl.append(1)
print(id(cl)) # 2458227593800
原因:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XEiawcJ7-1609329308932)(Media/无标题.png)]
变量指向了列表,而列表的每个元素分别指向不同对象,因此改变元素并不影响列表对象的地址
- 自定义类型:
class
2. 相关函数
type(数据)
:用来测试数据的类型【重点】round(value)
:可以返回四舍五入的值 (了解)- 注:但不会改变原有值,而是产生新的值
3. 数据类型转换函数
- 转换函数
函数 | 适用对象 | 说明 | 注意点 |
---|---|---|---|
int(x) | x:整数,浮点数,整数型字符串 (注:浮点数型字符串不可以) | 将 x 转换为一个整数 | 1. 浮点数直接舍去小数部分。 2. 布尔值 True 转为 1,False 转为 0 3. 字符串符合整数格式(浮点数格式不行)则直接转成对应整数,否则报错。 |
float(x) | x:整数,浮点数,整数型字符串,浮点数型字符串 | 将 x 转换为一个浮点数 | 1. 类似于 int(),我们也可以使用 float()将其他类型转化成浮点数。 |
str(x) | x:所有基本数据类型 | 将对象x转换为字符串 | |
chr(x) | x:整数类型 | 将ASCII整数x转换为一个字符 | |
ord(x) | x:字符类型 | 将字符x转换为ASCII整数值 |
注意:
- 转换函数并不是对原对象数据进行修改,而是创建一个新的对象
- 自动转型(数字运算时)
整数和浮点数混合运算时,表达式结果自动转型成浮点数。比如:2+8.0 的结果是 10.0
- ASCII
- 0 --> 48
- A --> 65 (Z --> 90)
- a --> 97
print(int('456'))
print(int(1))
print(int(1.1))
# print(int('1.1')) #不能转换
# print(int('abc')) #不能转换
# print(int('a')) # 不能转换
print(int(True)) # True
4. 整数 int
- 进制
Python中,除10进制,还有其他三种进制:
- 0b 或 0B,二进制 0 1
- 0o 或 0O,八进制 0 1 2 3 4 5 6 7
- 0x 或 0X,十六进制 0 1 2 3 4 5 6 7 8 9 a b c d e f
这三种进制可以非常方便的进行“位运算”操作
# 二进制
print(0b10) # 2
# 八进制
print(0o10) # 8
# 十六进制
print(0x1a) #26
- 位运算(待补充)
- 整数大小
- Python2 中
- int 是 32 位,可以存储从-2147483648 到 2147483647 的整数(约± 21 亿)。
- Long 类型是 64 位,可以存储:-263–263-1 之间的数值。
- Python3 中
- int 可以存储任意大小的整数
- long 被取消
Python3 中可以做超大数的计算,而不会造成“整数溢出”,这也是 Python 特别适 合科学运算的特点。
googol = 10**100
Googol 也是 Google 最初的名字,这也是 Google 最初的含义。
5. 浮点数
浮点数,称为 float
浮点数用 10 ab 形式的科学计数法表示。
eg. 3.14,表示成:314E-2 或者 314e-2。
这些数字在内存中也是按照科学计数法存储。
6. 布尔值
- Python2 中没有布尔值,直接用数字 0 表示 False,用数字 1 表示 True。
- Python3 中,把 True 和 False 定义成了关键字,但他们的本质还是 1 和 0,甚至可以和数 字相加。