一、基本数据类型
1.什么是数据类型?
编程语言通过一些复杂的计算机物理底层机制,创造不同类型的数据,用来表示现实世界中的不同信息,以便于计算机更好的存储和计算。
数值类型
名称 | 描述 |
---|---|
int | 整数 0、1、2 |
float | 浮点数,也叫小数 0.1、1.0、-1.9、2.3e-7等 |
complex | 复数 1.2+2j |
序列类型
名称 | 描述 |
---|---|
str(字符串) | 字符串是字符的序列表示,python中用单引号或双引号表示 |
list(列表) | 有序的可变元素集合,python中用[]表示 |
tuple(元祖) | 有序的不可变元素集合,python中用()表示,单元素元祖(1,)需要加个逗号 |
a = (1,) #元祖
b = (1) #整数int型
print(a,type(a))
print(b,type(b))
输出结果:
(1,) <class ‘tuple’>
1 <class ‘int’>
散列类型
名称 | 描述 |
---|---|
set集合 | 无序不重复元素的集合,python中用{}表示 |
dict字典 | 无序键值对,python中用{}里面包含键值对 key:value |
举例:
dic = {'name':'xiaoming','age':8,'grade':'3年级'}
print(dic)
其他类型
名称 | 描述 |
---|---|
bool布尔型 | True表示真,False表示假 |
None | 表示空 |
2.数值类型
2.1整数类型int
age = 10
创建一个整数10,然后赋值给变量age
2.1.1变量
在程序运行过程中会有一些中间值,在稍后的执行中会用到,这时可以将这些中间值赋值给变量,然后在后面的代码中通过调用这些变量名来获取这些值。可以简单的理解为给这些值取一个别名,这个别名就代表这个值。
变量的命名规则:
-大小写字母、数字、下划线组成
-不能以数字开头
-不能是关键字
-大小写敏感
python关键字:
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.1.2赋值运算符
<变量> = <表达式>
2.1.3 type函数和print函数
内建函数type 用来查看值或者变量的类型
type()
print函数在屏幕上输出传入数据的字符串表现形式;
2.1.4 整数的常见表现形式
常见的是10进制,还有2进制,8进制,16进制
a = 10 # 10进制 0,1,2,3,4,5,6,7,8,9组成
print(a,type(a))
10 <class ‘int’>
a = 0b1101 # 2进制 0,1组成 以0b开头
print(a,type(a))
13 <class ‘int’>
a = 0o072 # 8进制 0,1,2,3,4,5,6,7组成,以0o开头
print(a,type(a))
58 <class ‘int’>
a = 0xaf019 # 16进制 0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f组成 ,以ox开头
print(a,type(a))
716825 <class ‘int’>
2.1.5 整数的取值范围
python中理论取值范围是负无穷到正无穷,实际取值受内存大小限制。
2.2 浮点数类型float
2.2.1 浮点数的表现形式
在python 中浮点数可以表示为a.b的格式,也可以表示为e或E的科学计数法
a = 0.0
print('a的类型是',type(a))
a的类型是 <class ‘float’>
# 小数部分为零可以省略不写
a = 12.
print('a的类型是',type(a))
a的类型是 <class ‘float’>
a = -2.4345956
print('a的类型是',type(a))
a的类型是 <class ‘float’>
a = 2.3e-3 # e/E表示科学计数
print(a,'的类型是',type(a))
0.0023 的类型是 <class ‘float’>
注意:相同的操作整数比浮点数快5-20倍
2.2.2 数学运算符
与数学中一致
运算符 | 描述 |
---|---|
+ | 加 |
- | 减 |
* | 乘 |
/ | 除,运算结果为float数据类型 |
// | 整除,向下取整,10//3 结果是3 |
% | 取余 10%3 结果是1 |
** | 幂运算 2**3结果是8 |
() | 括号运算符 优先级高 |
注意:一个整数与一个浮点数运算后结果是浮点数。
a = 1/2
print(a,'的类型是',type(a))
0.5 的类型是 <class ‘float’>
2.2.3 组合赋值运算符
赋值运算符与算术运算符组合使用,算术符在前面
运算符 | 描述 | 实例 |
---|---|---|
= | 等于-简单的赋值 | c = a + b print© # 30 |
+= | 加等于 | 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 |
2.2.4 浮点数的不精确性
整数和浮点数在计算机中的表示不同,python 提供无限制且准确的整数计算,浮点数却是不精确的
>>>0.1+0.2
>>>0.30000000000000004
根据 sys.float_info.dig 的值,计算机只能提供 15 个数字的准确性。
可以使用高精度浮点类型:decimal
a = 0.123233333333333333333333333
b = 1.111211113222222222222
c = a * b
print(c)
0.13693824951941852
import decimal
a = decimal.Decimal('0.123233333333333333333333333')
b = decimal.Decimal('1.111211113222222222222')
c = a * b
print(c)
0.1369382495194185185184911330
2.2.5 浮点数和整数的相互转换
int 内置函数,通过提取浮点数的整数部分,转换为整数
a = 1.34
print(int(a)) # 输出结果是1
float内置函数,将整数的转换为小数部分为0的浮点数
a = 1
print(float(a)) # 输出结果是1.0
3. 复数
科学计算中的复数:
a = 1.34-7j
print('a的类型为:', type(a))
print(a.real)
print(a.imag)
a的类型为: <class ‘complex’>
1.34
-7.0