在python中,变量不需要声明,变量就是变量,没有类型,这里说的数据类型指的是内存中的对象类型。
等号(=)给变量赋值。
等号(=)运算符左边是一个变量名,等号(=)运算符右边是存储在变量中的值。
允许多个变量赋值:
a = b = c = 0 # 等同a=0,b=0,c=0
a,b,c = 1.1,True,"a" # 等同a=1.1,b=True,c="a"
上面其实我们已经看到了很多数据类型。接下来详细介绍下python的数据类型。
python3有6大标准数据类型,按可变与不可变分为:
可变类型: 列表(List),字典(Dict),集合(Set)
不可变类型: 数字(Number),字符串(String),元组(Tuple)
数字类型内又分为整形int,浮点型float,布尔型bool,复数型complex。
整形,不带小数点的正整数和负整数都属于整形,python3的整形没有大小限制,但由于内存大小有限,所以并不是无限的。
整形有4种表现形式:
二进制:以"0b"开头
八进制:以"0o"开头
十进制:正常显示
十六进制:以"0x"开头
有内置函数进行转换,如下:
a = 35
print(bin(a))
print(oct(a))
print(int(a))
print(hex(a))
浮点型由整数点和小数点组合而成,分为float32,float64
a = 3/7
print(float(a))
布尔型就True和False
整形 0,浮点型0.0,列表[],字典{}等都是False
其他的是True
复数由实数部分和虚数部分构成,可以用a + bj,或者complex(a,b)表示, 复数的实部a和虚部b都是浮点型。
字符串类型是最常用的基本类型,所有的字母,文字,带引号的数字都属于字符串。
a = "1"
b = "abs"
c = "中国"
凡是由引号括起来的都是字符串,这里再说下"\"转义字符,如下:
\n 代表换行
\t 代表TAB
如果不想在字符串内使用转义功能,则开头加个小r,如下:
a = "fakbj\nfakh"
b = r"fakbj\nfakh"
print(a)
print(b)
字符串前缀有哪些?:r,u,b
r之前说过了,使转义字符失效。
u一般加在中文字符串前面,转为Unicode编码,可以防止编译时候出现中文乱码。
b是将字符串转为btyes编码,前面会有个b。
元组的格式是()圆括号括起来的数值,可多个用逗号隔开。
一维元组(1,2,3,5)
二维元组(("g","a"),("faj",),(1,5,4))
注意,如果元组内只有一个值,则后面必须加个“,”,如("faj",),不然会被当作str类型。
a = ("faj",)
b = ("faj")
print(type(a))
print(type(b))
元组内的内容不可修改,所以算做不可变类型。虽然python允许a=()赋值,但这种方式其实是错误的。
与元组tuple类似,只是用[]方括号括起来,且里面的内容是可以修改的。
也有一维列表和多维列表,格式与元组一样。
a = [1,2,3]
b = [[1,1],[2,3]]
扩展:列表内的每个值都占用一个内存地址,所以使用列表参与算法会比numpy.array()慢很多,虽然格式差不多,但numpy.array整体只占用一个内存地址空间。
字典的格式是{}花括号括起来的值,且每个值是由键值对(k:v)组成,多个用,隔开。
a = {"name":"python"}
b= {} # 定义一个空字典
扩展: json格式类似字典,但不是字典类型。
集合的格式是用{}花括号括起来的值,类似列表和元组,值不是键值对组成。
a = {1,2,3}
b = set() # 定义一个空集合,而不是使用{}
查看变量,参数,对象是什么数据类型,可以通过type函数。
python3之后,bytes数据类型从字符串类型中脱离出来,独立为一个数据类型,多数的网络数据传输、二进制图片和文件的保存都是转换成bytes类型进行。两者间的转换如下:
string = b‘xxxxxx‘.decode()
直接以默认的utf-8编码解码bytes成string
b = string.encode()
直接以默认的utf-8编码string为bytes
原文:https://www.cnblogs.com/yingzidy/p/12335833.html