Python基本数据类型

这篇博客详细介绍了Python的基本数据类型,包括数字(整型、浮点型、复数)、布尔值、字符串(常见方法)、列表(常用操作)、元组、字典和集合。此外,还探讨了字符编码的概念,如ASCII、GBK、Unicode和UTF-8,并解释了编码(encode)和解码(decode)的过程。
基本数据类型
一、数字类型

①整型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

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值