【学习资料】 - Python3基础之数据类型

Python3基础之数据类型

在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)

数字Number

数字类型内又分为整形int,浮点型float,布尔型bool,复数型complex。

整形,不带小数点的正整数和负整数都属于整形,python3的整形没有大小限制,但由于内存大小有限,所以并不是无限的。

整形

整形有4种表现形式:

二进制:以"0b"开头

八进制:以"0o"开头

十进制:正常显示

十六进制:以"0x"开头

有内置函数进行转换,如下:

a = 35

print(bin(a))

print(oct(a))

print(int(a))

print(hex(a))

image.png

浮点型

浮点型由整数点和小数点组合而成,分为float32,float64

a = 3/7

print(float(a))

image.png

布尔型

布尔型就True和False

整形 0,浮点型0.0,列表[],字典{}等都是False

其他的是True

复数型

 复数由实数部分和虚数部分构成,可以用a + bj,或者complex(a,b)表示, 复数的实部a和虚部b都是浮点型。

数字常量

image.png

字符串Str

字符串类型是最常用的基本类型,所有的字母,文字,带引号的数字都属于字符串。

a = "1"

b = "abs"

c = "中国"

凡是由引号括起来的都是字符串,这里再说下"\"转义字符,如下:

\n 代表换行

\t  代表TAB

如果不想在字符串内使用转义功能,则开头加个小r,如下:

a = "fakbj\nfakh"

b = r"fakbj\nfakh"

print(a)

print(b)

image.png

字符串前缀有哪些?:r,u,b

r之前说过了,使转义字符失效。

u一般加在中文字符串前面,转为Unicode编码,可以防止编译时候出现中文乱码。

b是将字符串转为btyes编码,前面会有个b。

元组Tuple

元组的格式是()圆括号括起来的数值,可多个用逗号隔开。

一维元组(1,2,3,5)

二维元组(("g","a"),("faj",),(1,5,4))

注意,如果元组内只有一个值,则后面必须加个“,”,如("faj",),不然会被当作str类型。

a = ("faj",)

b = ("faj")

print(type(a))

print(type(b))

image.png

元组内的内容不可修改,所以算做不可变类型。虽然python允许a=()赋值,但这种方式其实是错误的。

列表List

与元组tuple类似,只是用[]方括号括起来,且里面的内容是可以修改的。

也有一维列表和多维列表,格式与元组一样。

a = [1,2,3]

b = [[1,1],[2,3]]

扩展:列表内的每个值都占用一个内存地址,所以使用列表参与算法会比numpy.array()慢很多,虽然格式差不多,但numpy.array整体只占用一个内存地址空间。

字典Dict

字典的格式是{}花括号括起来的值,且每个值是由键值对(k:v)组成,多个用,隔开。

a = {"name":"python"}

b= {} # 定义一个空字典

扩展: json格式类似字典,但不是字典类型。

集合Set

集合的格式是用{}花括号括起来的值,类似列表和元组,值不是键值对组成。

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

猜你喜欢

转载自www.cnblogs.com/yingzidy/p/12335833.html