Python 中存储数据的结构分为两种,不可变的数据类型和可变的数据类型
其中,不可变的数据类型包括数值(整数、浮点数、布尔值)、字符串、元组
可变的数据类型包括列表、字典、集合
整形 int:由 0~9 的数字组成,表示方法有二进制、八进制、十进制、十六进制
二进制 BIN(Binary),开头为 0b,只有 01
八进制 OCT(Octal),开头为 0o,只有 01234567
十进制 DEC(Decimal),默认,只有 0123456789
十六进制 HEX(Hexadecimal),开头为 0x,只有 0123456789ABCDEF
print(10, bin(10), oct(10), hex(10)) # 10 0b1010 0o12 0xa
浮点数 float:由 0~9 的数字和小数点组成,表示方法有十进制、科学记数、正无穷数、负无穷数
十进制:含小数点的十进制
科学记数:举例 1e-6,表示以 10 为底的 -6 次方,即 0.000001
正负无穷数:float('inf')、float('-inf')
浮点数涉及到精度,计算并不准确,可以引入模块 decimal 解决这个问题
从 decimal 模块导入 Decimal 函数
from decimal import Decimal
print(2.1+3.2)
print(2.6+3.2)from decimal import Decimal # 从 decimal 模块导入 Decimal 函数
print(Decimal('2.1') + Decimal('3.2'))
print(Decimal('2.6') + Decimal('3.2'))
结果如下:

布尔值 bool(整数):逻辑值 True、False,当成 1 和 0 使用,逻辑值首字母必须大写
print(1 + True) # 2
print(False - 1) # -1
字符串 str:使用一对单引号、双引号、三个单引号、三个双引号
基本类型中的转换函数:int、float、str、chr、ord
int 整型转换(低精度):
num1, num2 = 1, 3.14
str1, str2 = '10', '9.9'# int 整型转换(低精度)
print(int(num2)) # 高精度转换低精度
print(int(str1))
print(int(float(str2))) # 浮点型的字符不能转成整数,即不能int(str2)
结果如下:

float 浮点数转换(高精度):
num1, num2 = 1, 3.14
str1, str2 = '10', '9.99999'# float 浮点数转换(高精度)
print(float(num1)) # 1.0
print(float(str1)) # 10.0
print(float(str2)) # 9.99999
str 字符转换:字符转换不受限制
num1, num2 = 1, 3.14
# str 字符转换
print(str(num1)) # 1
print(str(num2)) # 3.14
chr 将整数转换为字符,如果数值太大会导致溢出
# chr 将整数转换成字符
print(chr(23333))
print(chr(123456789)) # ValueError: chr() arg not in range(0x110000)
ord 将单个字符转换为整数:(包括汉字)
# ord 将单个字符转换为整数
print(ord('a')) # 97
print(ord('汉')) # 27721
其他类型:元组、列表、集合、字典
元组:小括号 (1, 2, 3)
列表:中括号 [1, 2, 3]
集合:大括号 {1, 2, 3}
字典:由一对大括号,键值对组成 {'name':'zhangsan', 'age':'18'}
