编程语言通过一些复杂的计算机物理底层机制,创造不同类型的数据,用来表示现实世界中的不同信息,以便于计算机更好的存储和计算。
每种编程语言都会有一些基本的数据类型用来表示现实世界中的常见信息。
Python 中的常见数据类型如下
数值类型| 名称 | 描述 |
|---|---|
| int(整数) | 数学概念中的整数 |
| float(浮点数) | 数学概念中的小数 |
| complex(复数) | 数学概念中的复数 |
| 名称 | 描述 |
|---|---|
| str(字符串) | 字符串是字符的序列表示,用来表示文本信息 |
| list(列表) | 列表用来表示有序的可变元素集合。例如表示一个有序的数据组 |
| tuple(元组) | 元组用来表示有序的不可变元素集合 |
| 名称 | 描述 |
|---|---|
| set(集合) | 数学概念中的集合,无限不重复元素的集合 |
| dict(字典) | 字典是无序键值对的集合。用来表示有关联的数据,例如表示一个人的基本信息 |
| 名称 | 描述 |
|---|---|
| bool(布尔型) | bool 型数据只有两个元素,True 表示真,False 表示假。用来表示条件判断结果 |
| None | None 表示空 |
python 中整数类型用 int 表示,与数学中的整数概念一致
age = 18
其中 age 是变量名,= 是赋值运算符,18 是值。
上面的代码表示创建一个整数 18 然后赋值给变量 age。
1.变量在程序运行过程中会有一些中间值,在稍后的执行中会用到,这时可以将这些中间值赋值给变量,然后在后面的代码中通过调用这些变量名来获取这些值。可以简单的理解为给这些值取一个别名,这个别名就代表这个值。
变量的命名规则:
- 由大小写字母 A-Za-z,数字 0-9 和下划线 _ 组成
- 不能以数字开头
- 不能是关键字
- 变量名大小写敏感
# 正确的案例 lucky_num = 88 lucky_num2 = 888
# 错误的案例 1lucky_num = 88
上面的age 和 Age是两个不同的变量 Age = 19
python 官方占用了一些变量名作为程序的关键字,总共 35 个,这些关键字不能作为自定义变量名使用。
# 打印关键字 import keyword print(keyword.kwlist)
[‘False’, ‘None’, ‘True’, ‘and’, ‘as’, ‘assert’, ‘async’, ‘await’, ‘break’, ‘class’, ‘continue’, ‘def’, ‘del’, ‘elif’, ‘else’, ‘except’, ‘finally’, ‘for’, ‘from’, ‘global’, ‘if’, ‘import’, ‘in’, ‘is’, ‘lambda’, ‘nonlocal’, ‘not’, ‘or’, ‘pass’, ‘raise’, ‘return’, ‘try’, ‘while’, ‘with’, ‘yield’]
2.赋值运算符在 python 中 = 是赋值运算符,而不是数学意义上的等于号。python 解释器会先计算 = 右边的表达式,然后将结果复制给 = 左边的变量。
res = 1 # 定义变量res赋值为1 res = res + 1 # 先计算res + 1 再赋值给变量res print(res) # res的值为2
运行结果:
2
python 提供了内建函数 type 用来查看值或者变量的类型。
只需要将变量或者值作为参数传入 type 函数即可。
age = 18 type(age)
运行结果
int
type(18)
运行结果:
int
print 函数用来在屏幕上输出传入的数据的字符串表现形式,是代码调试最重要的函数。
print(age) print(type(age)) # 注意交互式输出和print函数输出的区别
运行结果:
18
在 python 中整数最常见的是 10 进制整数,也有二进制,八进制和十六进制。
a = 10 # 十进制
print('a的类型为:', type(a), a)
a 的类型为:
b = 0b1110 # 二进制
print('b的类型为:', type(b),b)
b 的类型为:
c = 0o57 # 八进制
print('c的类型为:', type(c),c)
c 的类型为:
d = 0xa5c # 十六进制
print('d的类型为:', type(d), d)
d 的类型为:
python 中整数类型的理论取值范围是[-无穷,无穷],实际取值范围受限于运行 python 程序的计算机内存大小。
2. 浮点数类型(float)python 中浮点数数用 float 表示,与数学中的实数概念一致,也可以理解为有小数。
1.浮点数的表现形式在 python 中浮点数可以表示为 a.b 的格式,也可以表示为小写或大写 E 的科学计算法。例如:
a = 0.0
print('a的类型为:', type(a))
a 的类型为:
# 小数部分为零可以省略不写
b = 76.
print('b的类型为:', type(b))
b 的类型为:
c = -3.1415926
print('c的类型为:', type(c))
c 的类型为:
d = 9.5e-2
print('d的类型为:', type(d))
d 的类型为:
浮点数可以表示所有的整数数值,python 为何要同时提供两种数据类型?
相同的操作整数要比浮点数快5-20倍2.数学运算符
与数学中的常用运算符一致
| 运算符 | 描述 |
|---|---|
| + | 加法运算符 1+1 |
| - | 减法运算符 3-2 |
| * | 乘法运算符 9*9 |
| / | 除法运算符 9/3,除法运算后的结果一定为 float 类型 |
| // | 整除运算符 10/3,也称为 地板除 向下取整 |
| % | 取模运算符 10%3,表示 10 除以 3 取余数 |
| ** | 幂次运算符 2**3,表示 2 的 3 次幂 |
| () | 括号运算符,括号内的表达式先运算 (1+2)* 3 |
注意一个浮点数和一个整数进行运算后的结果一定为浮点数
print(2+1.0)
3.0
print(9/3) # 除法运算的结果一定为float类型
3.0
print(9//2) # 地板除,向下取整
4
3.组合赋值运算符赋值运算符与算术运算符可以组合使用,注意算术运算符要写在前面且中间不能有空格。
| 运算符 | 描述 | 实例 |
|---|---|---|
| = | 等于 也就是简单的赋值 | c = a + b |
| += | 加等于 | c += a 等同于 c = c + a |
| -= | 减等于 | c -= a 等同于 c = c - a |
| *= | 乘等于 | c *= a 等同于 c = c * a |
| /= | 除等于 | c /= a 等同于 c = c/a |
| %= | 取余等于 | c%=a 等同于 c = c%a |
| **= | 幂等于 | c ** =a 等同于 c = c ** a |
| //= | 取整除等于 | c//=a 等同于 c = c//a |
体现了程序员的"懒惰",这种懒惰大力提倡,使得代码简洁和高效。
a = 1 a += 2 # a = a+2 print(a)
3
4. 浮点数的不精确性整数和浮点数在计算机中的表示不同,python 提供无限制且准确的整数计算,浮点数却是不精确的,例如:
print(0.2+0.1)
0.30000000000000004
根据 sys.float_info.dig 的值,计算机只能提供 15 个数字的准确性。浮点数在超过 15 位数字计算中产生的误差与计算机内部采用二进制运算有关。
import sys print(sys.float_info.dig)
15
思考:3.1415926535897924*1.23456789 的计算怎么准确
拓展:高精度浮点运算类型import decimal
a = decimal.Decimal('3.141952653')
b = decimal.Decimal('1.23456789')
print(a * b)
3.87895385729411217
5. 浮点数和整数的相互转化int,float 是 python 的内置函数,通过它们可以对浮点数类型和整数类型相互转化
a = 1.9 # 转化为整数 # 通过调用int函数,提取浮点数的整数部分 b = int(a) print(b, type(b))
1
c = 2 # 转化为浮点数 # 通过调用float函数,将整数转化为小数部分为0的浮点数 d = float(c) print(d, type(d))
2.0
科学计算中的复数。
a = 12.3+4j
print('a的类型为:', type(a))
print(a.real)
print(a.imag)
a 的类型为:
12.3
4.0
感谢心蓝老师!
原文分享:http://testingpai.com/article/1601273930894



