Python Day6
一 文件格式补充
在python3中,除字符串外,所有数据类型在内存中的编码格式都是utf-8,而字符串在内存中的格式是Unicode的格式。
由于Unicode的格式无法存入硬盘中,所以这里还有一种字节的数据类型(bytes)。而bytes的编码格式就是除Unicode以外的所有编码格式。
可以将字符串类型转换成bytes数据类型。转换方法如下
a='sadsa' a=a.encode('utf-8') print(a,type(a))
输出结果 b'sadsa' <class 'bytes'>
汉字用bytes数据类型表示是用十六进制的数字表示的
二 字符串的其他方法和功能
1 casefold:全部变成小写 ,包含小语种
a='sdFEFf' print(a.casefold())
输出结果
sdfeff
2 center :填充; ljust:右边填充 rjust:左边填充(注意
a.rjust(10,'=')
表示输出的总长度为零)
a='dss' print(a.ljust(10,'#')) #右边填充
输出结果 dss#######
a='dsf' print(a.rjust(10,'=')) #左边填充
输出结果
=======dsf
3 expandtabs:缩进,主要用于制表 \n:换行符 \t:空格符
a='name\tage\nfangjie\t18' print(a.expandtabs(10))
输出结果 name age fangjie 18
4.count:计算字符出现个数
a='dfsfffff' print(a.count('f')) #计算个数 输出结果 6
5 find :索引值,找到第一个位置的索引值过后就会再去找,没有该字符就会返回-1
a='effdf' print(a.find('f'))
输出结果
1
6 index :功能和find一样,但是没有该字符,就会报错
a='effdf' print(a.index('f')) 输出结果 1
7 format :占位符的功能,需要几个值就传几个值,还可以和* **同时使用,有四种用法
a='我叫{0}{0},爱{1}' print(a.format(柳','吃')) 输出结果 我叫柳柳,爱吃
8 format_map 占位符的功能,但是只能用于字典的格式
a='姓名:{name},年龄{age}' print(a.format_map({'name':'柳','age':18})) 输出结果 姓名:柳,年龄18
9 isalnum : 判断是否为数字,字母和文字
a='fan既然2132' print(a.isalnum()) 输出结果 True
10 isalpha:判断是否为字母和文字
a='fan既然' print(a.isalpha()) 输出结果 True
11 isdecimal:判断是否是数字,只能用于单纯的数字
issigit:判断是否是数字,可以用于符好的数字
isnumeric:判断是否是数字,不仅可以识别符号的数字,还剋有识别大写的文字数字
a='21' print(a.isdecimal()) a='332②' print(a.isdigit()) a='②21十八' print(a.isnumeric())
输出结果
True
True
True
12 isprintable:判断是否可以打印
a='sa\ndsf\tsdf' print(a.isprintable())
输出结果
False
13 isspace:判断是否全是空格
a=' ' print(a.isspace()) 输出结果 True
14 istitle:判断是否是标题,标题的每个单词首字母都认识大写
a='Is Am Fang' print(a.istitle()) 输入结果 Ture
15 isupper:判断是否全是大写
a='AJD' print(a.isupper()) 输入结果 True
16 partition:从左到右寻找分隔符分割,并打印分割的元素,但是找到了第一个就停止该功能
a='2+3+5' print(a.partition('+')) 输入结果
17 rpartition:从右到左寻找分隔符分割,并打印分割的元素,但是找到了第一个就停止该功能
a='2+3+5' print(a.rpartition('+')) 输出结果 ('2+3', '+', '5')
18 swapcase:大写变小写,小写变大写
a='sdDS' print(a.swapcase()) 输出结果 SDds
19 maketrans和translate:maketrans:字符的对应关系,translate:替换对应关系一般这两个是一起使用的
table=str.maketrans('dfag','1234') a='sdfsdgs' print(a.translate(table)) 输出结果 s12s14s
20 split:从开始寻找分割符;raplit:从右到左开始寻找分割符,都可以传两个参数,一个是以什么分割的参数,第二个是分个几次。默认按最多的分割
a='dfgsdfdsd' print(a.split('f')) a='dffgsdfdsd' print(a.rsplit('f',1))
输出结果
['d', 'gsd', 'dsd']
['dffgsd', 'dsd']
21 islower:判断是否全是小写
a='dsfas' print(a.islower())
输出结果
True
22 zfill:填充,只能用0填充,是从开始位置填充的
a='dsfa' print(a.zfill(20)) 输出结果 0000000000000000dsfa
三 数字类型补充
1 to_bytes:将数字转换成字节
a = 13 print(a.to_bytes(5, 'big')) # big 将转换的数字放在最后面 a = 13 print(a.to_bytes(5, 'little')) # little 将转换的数字放在最前面 输出结果 b'\x00\x00\x00\x00\r' b'\r\x00\x00\x00\x00'
2 from_bytes:将字节转换成数字
a = b'\x02\x00\x00\x00\x00\x00' print(int.from_bytes(a,'little')) #little:数字在开始位置使用 a = b'\x00\x00\x00\x00\x00\x02' print(int.from_bytes(a,'big')) #big:数字在最后位置使用 输出结果 2 2
四 列表的功能补充
列表在修改元素时,是不会更改内存地址的,而是在原有的内存地址上进行修改
a=[1,2,3]
a=[1,2,3] b=a print(a,b) a.append(4) print(a,b) b.append(5) print(a,b) 输出结果 [1, 2, 3] [1, 2, 3] [1, 2, 3, 4] [1, 2, 3, 4] [1, 2, 3, 4, 5] [1, 2, 3, 4, 5]
1 clear 清空列表
li=[1,2,3,4] li.clear() print(li) 输出结果 []
2 copy :拷贝 浅拷贝只拷贝第一层;深拷贝拷贝到最里面一层
li=[1,2,3,4]
l2=li.copy()
li.append(5)
print(li,l2) #拷贝
输出结果 [1, 2, 3, 4 5] [1, 2, 3, 4]
3 count :计算个数
a=[1,2,3,4,2,3,2] print(a.count(2)) 输出结果 3
4 extend :扩展
li=[1,2,3,4,5] l1=[5,6,7] li.extend(l1) #扩展 print(li) 输出结果 [1, 2, 3, 4, 5, 5, 6, 7]
5 index :索引
li=[1,2,3,4,5] print(li.index(4)) 输出结果 3
6 pop:按照索引删除
li=[1,2,3,4,5] li.pop(3) print(li)
输出结果
[1, 2, 3, 5]
7 remove :按照对象值删除
li=[1,2,3,45,6] li.remove(45) print(li) 输出结果 [1, 2, 3, 6]
8 sort :排序 True从大到小排序 ; False按照从大到小
li=[1,2,3,4,5,6] li.sort(reverse=True) #排序 True从大到小,False从小到大 print(li) 输出结果 [6, 5, 4, 3, 2, 1]
五 元组功能补充
1 index :索引
a=(1,2,3,4,5) print(a.index(4)) 输出结果 3
2 count : 计算个数
a=(1,2,3,2,1,2,2,) print(a.count(2)) 输出结果 4