基本数据类型
一、数字类型
①整型int
整数与0b(二进制) 0o(八进制) 0x(十六进制)*都为整型
a = 3
②浮点型float
小数为浮点型
a = 3.1415926
③复数complex
如:10+4j
10为实数,4j为虚数
数字类型之间的转换
int(???) ()中转换为整型
float(???) ()中转换为浮点类型
complex(???) ()中转换为复数
当转换为复数时,complex只有在单个参数时才能转换字符串
如 a = 1 b =‘2’ complex(a,b)
这时结果为错误
如 a = 1 b =‘2’ complex(b)
这时结果为 2+0j
二、布尔值bool
Ture与False
三、字符串str
a = ‘a’ '???'引号中的值为字符串 str
a = '巧克力'
单引号,双引号,三引号都可以,但是在多行文本时必须使用三引号
常用方法
查看长度len()
a = 'chocolate'
b = len(a)
print(b)
结果为9
索引[下标]
a = 'chocolate'
b = (a[3])
print(b)
结果为c #因为第一位下标为0,第二位下标为1.所以c为第四位,下标为3
反向索引[下标]
a = 'chocolate'
反向索引时首字母c的下标为-9,尾字母e的下标为-1
切片[头下标:尾下标:步长]尾下标不包含在内
a = 'chocolate'
b = (a[0:3])
print(b)
结果为choc
print(a[0:9:2]) #2为步长,如果步长为负数则为逆序
结果为cooae
注意:切片不能交叉取值
移除空白两端strip()
a = ' chocolate ' #在c的前面与e的后面分别有两个空格
b = 'chocolate'
print(a.strip())
结果为chocolate
print(a.rstrip()) #r为right,意为移除右端空格,左端同理使用l
结果为 chocolate
print(b.strip("c")) #括号内添加字符可移除两端指定的字符,不能移除中间的字符
结果为hocolate
分割split:以某个字符为界限,把字符串切开,并返回一个列表
a = "hello,world"
a.split(",")
结果为['hello', 'world']
a.split("l", 1) #1为最大切割次数
结果为['he', 'lo,world']
被选中为分割界限的字符会消失
如果使用input()进行输入,则接收的数据一律为字符串
四、列表list
列表是有序的可变的元素集合
表示为[a ,b ,c ,d]即为列表
L = [1, '巧克力', True, [], (9,), {1, 2}, {'k1':'v1'}]
列表内所有数据类型都放置
列表可以通过下标被修改
L = [1, '巧克力', True, [], (9,), {1, 2}, {'k1':'v1'}]
L[1] = '汽水'
print(L)
结果为[1, '汽水', True, [], (9,), {1, 2}, {'k1':'v1'}]
常用方法
长度len()
与字符串同理
切片
与字符串同理
排序sort()
L = ['a', 'c', 'b', 'd']
L.sort()
prnit(L)
结果为['a', 'b', 'c', 'd']
L.sort(reverse=True)
print(L)
结果为['d', 'c', 'b', 'a']
增加append、批量追加extend、插入insert
L = ['a', 'c', 'b', 'd']
L.append('e')
print(L)
结果为L = ['a', 'c', 'b', 'd','e'] #append为在列表末尾加一个值
L = ['a', 'b', 'c', 'd']
L2 = ['e', 'f', 'g']
L.extend(L2)
print(L)
结果为['a', 'b', 'c', 'd', 'e', 'f', 'g'] #在列表末尾批量追加另一个列表
L = ['a', 'b', 'c', 'd']
L.insert(2, '1') #2表示在第几个元素后插入,引号内表示插入的值
print(L)
结果为['a', 'b', '1', 'c', 'd']
pop删除列表最后一个元素、remove删除左起第一个指定元素、clear清空列表内所有元素、del删除指定索引元素
L = ['a', 'b', 'c', 'd']
a = L.pop() #此时被删除的字符保留在L.pop中,可赋值给其他变量
print(a)
结果为d
print(L)
结果为['a', 'b', 'c']
L = ['a', 'b', 'c', 'd']
五、元组
元组是有序的不可变的元素集合
表示为(a ,b ,c ,d)即为元组
(1, [], {'k1': 'v1'}, {1, 2, 3}, '巧克力', (9,), True)
元组内所有数据类型都能放置
单元素元组需在元素后加逗号,如(a,)
a = ('hello') 此时a的类型是字符串
a = ('hello',) 此时a的类型是元组
常用方法
索引
同字符串
通过值取值.index()
T = ('a', 'b', 'c')
0 1 2
T.index(b)
此时结果为 1
统计.count()
T = ('a', 'b', 'c', 'b')
T.count(b)
此时结果为 2
切片
同字符串
包含
T = ('a', 'b', 'c')
a = 'c'
b = 'q'
a in T
此时结果为True
b in T
此时结果为False
六、字典
字典是由键值对构成(key、value)的无序集合
表示为{‘k1’=‘v1’ ,‘k2’=‘v2’ ,‘k3’=‘v3’}即为字典
键(key)的数据类型一般为数字或字符串,唯一且不能重复(不能为列表、字典)
值(value)可以是任意数据类型。
常用方法
列表转字典.fromkeys
D = {}
L = [1, 2, 3]
D.formkeys(L)
此时结果为{1:None, 2:None, 3:None}
Dformkeys(L, 'v')
此时结果为{1:'v', 2:'v', 3:'v'}
长度len()
同字符串
取键值对.items()
D = {'k1': 'v1', 'k2': 'v2', 'k3': 'v3'}
D.items()
结果为
取键.keys()
D = {'k1': 'v1', 'k2': 'v2', 'k3': 'v3'}
D.keys()
结果为
取值.values()
D = {'k1': 'v1', 'k2': 'v2', 'k3': 'v3'}
D.values()
结果为
获取值(通过key)
反之通过value可以获取key
D = {'k1': 'v1', 'k2': 'v2', 'k3': 'v3'}
D['k1']
此时结果为v1
获取值(通过.get)
指定的键如果有对应值返回对应值,否则返回None
D = {'k1': 'v1', 'k2': 'v2', 'k3': 'v3'}
D.get(k1)
此时结果为v1
D.get(k4)
此时结果为None
D.get(k4, fales) 如果给定参数就返回给定参数,否则默认为None
此时结果为false
获取值(通过.setdefault)
此方法会修改原字典
D = {'k1': 'v1', 'k2': 'v2', 'k3': 'v3'}
D.setdefault('k4')
此时结果为None
使用setdefault后,字典D将改变
此时字典D = {'k1': 'v1', 'k2': 'v2', 'k3': 'v3', 'k4': None}
D.setdefault('k5', 'v5')
此时结果为v5
此时字典D = {'k1': 'v1', 'k2': 'v2', 'k3': 'v3', 'k4': None, 'k5': 'v5'}
通过key修改与增加value
D = {'k1': 'v1', 'k2': 'v2', 'k3': 'v3'}
D['k1'] = 'w'
此时结果为{'k1': 'w', 'k2': 'v2', 'k3': 'v3'}
.pop获取并删除指定key值与key的value值
D = {'k1': 'v1', 'k2': 'v2', 'k3': 'v3'}
D.pop('k1')
此时结果为{'k2': 'v2', 'k3': 'v3'}
a = D.pop 被删除的项可被保留并赋值
.popitem删除字典最后一项
D = {'k1': 'v1', 'k2': 'v2', 'k3': 'v3'}
D.popitem()
此时结果为{'k1': 'v1', 'k2': 'v2'}
.clear清空
同列表
七、集合
一个包含唯一元素的可变和无序的集合数据类型。
与字典一样使用{}表示为{1, 2, 3, 4 }
a = {"a", (3,), 3, False, }
集合内不能包含列表、字典与集合
print的参数
print(end=’\n’) #默认为换行,可更改
字符编码
一、字符编码简介
计算机只能识别0和1两个字符
0/1=1bit (位)
8bit=1byte (字节) 计算机的最小存储单位 能放置 2**8-1的数值 (0-255)
ASCLL码,只考虑英文字符
对于中国来说,为了计算机能识别中文,创造了GBK编码
GBK使用两个字节(2bytes)代表一个字符
之后出现了Unicode编码,为了兼容多国语言,同样使用两个字节代表一个字符
最后出现了utf-8编码
utf-8编码对英文字符使用1byte表示,对中文使用3bytes表示
为了处理英文字符,产生了ASCLL码
为了处理中文字符,产生了GBK编码
为了处理多国字符,产生了Unicode编码
优点:数字转换速度快 缺点:空间占用打
为了提高存储与传输性能,产生了utf-8编码
优点:节省空间 缺点:转换速度慢
在python中字符编码的实际类型使用
1.在内存中使用Unicode 用大量空间换取运行时间,使其更快的运行
2.在硬盘中或者网络传输中用utf-8,用运行时间换取空间,节省带宽,保证稳定
二、编码(encode)与解码(decode)
编码:将Unicode转换为其他编码
解码:将原编码转换为Unicode编码
s = '中' #这时'中'这个字符为Unicode编码
a = s.encode('GBK') # 使用encode将Unicode码编为GBK码
此时a = b'\xd6\xd0'
b = a.decode #使用decode将GBK码转为Unicode
b = 中
c = b.encode(utf-8) #使用encode将Unicode码转为utf-8
c = b'\xe4\xb8\xad'
注意:在encode()中,括号内填写的是目标编码编码格式。而在decode()中,括号内填写的是原编码的编码格式
编码之间相互转换都是以Unicode为中转站
如:
GBK——》Unicode——》utf-8
这篇博客详细介绍了Python的基本数据类型,包括数字(整型、浮点型、复数)、布尔值、字符串(常见方法)、列表(常用操作)、元组、字典和集合。此外,还探讨了字符编码的概念,如ASCII、GBK、Unicode和UTF-8,并解释了编码(encode)和解码(decode)的过程。

被折叠的 条评论
为什么被折叠?



