Python006
数据在计算机中的存储
字节和字符串相关
内存:
00000000 00000000 00000000 01010100 unicode A
01010100 tf-8 A
01010100 01010100 gbk A
01010000 00000100 gb2312 A
...
硬盘:
01010100 utf-8 A
01010100 utf-8 A
01010100 gbk A
01010100 gb2312 A
...
本质上,内存中都是0101010,具体是什么样子的01001,需要根据编码来决定。
不同编码的01010,互相不认识。
在python3中:
utf-8 -> 010101010101
特殊的:
字符串: str
表现: a = "alex"
本质: 01010101,unicode
字节:bytes
表现: a = b"alex"
本质: 01010101,某种编码: utf-8,gbk,.....
总结:
python3:
str --> uniocde
bytes --> gbk,utf-8.....
在内存中:
str以Unicode形式存储。4个字节长度。
其他都是UTF-8形式。3个字节长度。
存储或传输时:
str要转换成其他编码形式,如UTF-8,GBK,GB2312等。
其他都是UTF-8、GBK、GB2312。
bit
bit.length()
to_bytes()
from_bytes()
int
#小端 val = 1 result1 = val.bit_length() print(result1) #输出:1 result2 = val.to_bytes(4,'little') #4可以替换为其他数字 print(result2) #输出:b'\x01\x00\x00\x00\x00\x00' result3 = val.from_bytes(result2,'little') print(result3) #输出:1 #大端 val = 1 result1 = val.bit_length() print(result1) #输出:1 result2 = val.to_bytes(5,'big') #5可以替换为其他数字 print(result2) #输出:b'\x00\x00\x00\x00\x00\x01' result3 = val.from_bytes(result2,'big') print(result3) #输出:1
bool
True
False
str
字符串长度的计算。
upper()
lower()
calitalize()
split()
content = 'what ...wrong!!! with you???' v = content.split('!') print(v) #输出:['what ...wrong', '', '', ' with you???'] content = 'what ...wrong!!! with you???' v = content.split('!',1) print(v) #输出:['what ...wrong', '!! with you???'] content = 'what ...wrong!!! with you???' v = content.split('!',2) print(v) #输出;:'what ...wrong', '', '! with you???'] content = 'what ...wrong!!! with you???' v = content.split('!',3) print(v) #输出:['what ...wrong', '', '', ' with you???'] content = 'what is\n...wrong!!! with you???' v = content.splitlines() print(v) #输出:['what is', '...wrong!!! with you???']
content = "middle\napi\nDisk" v = content.splitlines(keepends=True) print(v) #输出:['middle\n', 'api\n', 'Disk'] content = "middle\napi\nDisk" v = content.splitlines(keepends=False) print(v) #输出:['middle', 'api', 'Disk'] content = "middle\napi\nDisk" v = content.splitlines() print(v) #输出:['middle', 'api', 'Disk']
partition
rpartition
1 content = "5+9+2" 2 v = content.partition("-") 3 print(v) 4 # 输出('5+9+2', '', '') 5 6 content = "5+9+2" 7 v = content.rpartition("+") 8 print(v) 9 # 输出('5+9', '+', '2') 10 11 content = "5+9+2" 12 v = content.rpartition("-") 13 print(v) 14 # 输出('', '', '5+9+2')
1 content = 'what the.en!Yeah?' 2 v = content.rpartition('.') 3 print(v) 4 # 输出('what the', '.', 'en!Yeah?') 5 v = content.rsplit('.',1) 6 print(v) 7 # 输出['what the', 'en!Yeah?']
1 contest = "What's .wrong .with you ?" 2 v = contest.rpartition('.') 3 print(v) 4 5 contest = "What's .wrong .with you ?" 6 v = contest.rsplit('.',1) 7 print(v)
1 contest = 'who am i? I am J. I don't know what happened.' 2 v = contest.split('?') 3 print(v) 4 5 contest = "who am i? I am J? I don't know what happened." 6 v = contest.partition('?') 7 print(v) 8 9 contest = "who am i? I am J? I don't know what happened." 10 v = contest.rpartition('?') 11 print(v)
join()
startswith()
endswith()
isdecimal()
isdigit()
isnumeric()
1 name = '321' 2 print(name.isdicimal()) 3 print(name.isdigit()) 4 print(name.isnumeric()) 5 # True True True 6 7 name = '②' 8 print(name.isdicimal()) 9 print(name.isdigit()) 10 print(name.isnumeric()) 11 # False True True 12 13 name = '二十' 14 print(name.isdicimal()) 15 print(name.isdigit()) 16 print(name.isnumeric()) 17 # False False True
find()
1 name = 'Wang qingshuai' 2 val = name.find('p') 3 print(val) 4 # 结果-1 5 val = name.index('p') 6 print(val) 7 # 结果 报错 8 9 name = 'Wang qingshuai' 10 if name.find('a') != -1 : 11 print('I finded it!')
strip()
center()
join
name = '_'.join(['wang','qing','shuai']) print(name) #输出:wang_qing_shuai
ljust()
rjust()
name = 'Wang' val = name.center(20,'*') print(val) #********Wang******** name = 'Wang' val = name.ljust(20,'*') print(val) #Wang**************** name = 'Wang' val = name.rjust(20,'*') print(val) #****************Wang
lstrip()
rstrip()
name=' wang ' val=name.lstrip() print(val) #'wang ' name=' wang ' val=name.rstrip() print(val) #' wang' name='&*wang&*' val=name.lstrip('&') print(val) #*wang& name='&*wang&*' val=name.rstrip('*') print(val) #&*wang& name='&*wang&*' val=name.rstrip('&') print(val) #&*wang&*
count()
name = 'WangQingshuai' val = name.count('n') print(val) #2 name = 'WangQingshuai' val = name.count('n',0,3) print(val) #1
index()
name = 'alexaelx' val = name.find("f") print(val)# 没找到返回-1 val = name.index("a") print(val) #0 if name.find('ffffff') != -1: print('找到了')
casefold()
1 #支持多个语种 2 name = 'Wang' 3 result = name.casefold() 4 print(result) 5 6 #只支持英语 7 name = 'Wang' 8 result = name.lower() 9 print(result)
expandtabs()制表符
1 name = 'Wang\tQing\tshuai' 2 val = name.expandtabs(5) 3 print(val) 4 5 # \n 6 # name = "我是app,我\n怕\bug" 7 # # \n ,换行符 8 # # \t,制表符
encode()
1 name_str = "小王" 2 name_bytes = name_str.encode('utf-8') 3 print(name_bytes) 4 5 name_str = "小王" 6 name_bytes = name_str.encode('gbk') 7 print(name_bytes) 8 9 # name = "小王" 10 # 11 # # 把字符串(unicode),转换成字节(utf-8) 12 # v1 = name.encode('utf-8') 13 # # 把字符串(unicode),转换成字节(gbk) 14 # v2 = name.encode('gbk')
format
1 format四种写法: 2 第一种: 3 v = 'my name is {0},my age is {1}' 4 val = v.format('Peter',20) 5 print(val) 6 第二种: 7 v = 'my name is {0},my age is {1}' 8 val = v.format(*['peter',20]) 9 print(val) 10 第三种: 11 v = 'my name is {name},my age is {age}' 12 val = v.format(name = 'peter',age = 20) 13 print(val) 14 第四种: 15 v = ‘my name is {name}, my age is {age}’ 16 dic = {'name':'peter', 'age':20} 17 val = v.format(**dic) 18 print(val)
format_map
v = 'my name is {name}, my age is {age}' val = v.format_map({'name':'peter','age':20}) print(val) #my name is peter, my age is 20
isprinttable
name = 'WangQingshuai' print(name.isprintable()) #True name = 'Wang\nQingshuai' print(name.isprintable()) #False
title
istitle
name = 'wang qingshuai' print(name.title()) #Wang Qingshuai print(name.istitle()) #False
swapcase
1 name = 'Wang' 2 print(name.swapcase()) 3 # 输出 wANG
zfill
1 name = 'Wang' 2 print(name.zfill(10)) 3 #输出 000000Wang
maketrans
translate
table = str.maketrans("aeiou",'12345') msg = "asdefasdfjasdifw[kmnakjudfasdf" val = msg.translate(table) print(val) #1sd2f1sdfj1sd3fw[kmn1kj5df1sdf # 可以理解为加密
isidentifier ?
name = 'asde' print(name.isidentifier()) #True main = 'asde' print(main.isidentifier()) #True
list
append()
insert()
reverse()
del v[0]
tuple
dict
get()
items()
keys()
values()

浙公网安备 33010602011771号