1、编码问题
Python3里面字符串在内存中统一表现为Unicode编码
ASCII编码:英文字母,数字,一些符号,一共127字符(全部一个字节表示)
Unicode编码:解决出现乱码的问题(全世界所有语言一些字符都包含进来)是2-4个字节(16-32位),最少2个字节,Unicode编码是文本字符串在内存中的内在形式
utf-8编码表:unicode编码表的基础上做的优化,节省了空间(能够用一个字节表示就用一个字节,不能用1个字节就用多个字节表示)
gbk编码:用双字节编码表示中文和中文符号
编码与解码:
s ='我是tom'
encode:把Unicode编码转换为字节流(bytes)
a = s.encode('utf-8')
print(a)
decode:把字节流还原为Unicode
b = a.decode('utf-8')
print(b)
2、字符串常用内置方法
将单个字符转换为整数:
ord函数:print(ord('A'))
将整数转换为单个字符:
chr函数:print(chr(65))
字符串的赋值操作:
a_str ='cunyu'
字符串去空格和特殊字符
a_str = ' hello python '
lstrip:print(a_str.lstrip()) #去左边空格
rstrip:print(a_str.rstrip()) #去右边空格
strip:print(a_str.rstrip()) #去所有空格
b_str ='.hello python*'
print(b_str.lstrip('.')) # 去除左边的符号
print(b_str.rstrip('*')) #去除右边的符号
print(b_str.strip('.*')) #去除所有符号
字符串的连接操作:
+:将两个字符串进行拼接
*:将字符串重复输出n次
a ='hello ' b ='python'
print(a+b) print(a*3)
hello python hello hello hello
替换操作(replace):
a_str = 'my name is tom'
a_str.replace('tom', 'marry') # 第一个为替换部分,第二部分为替换的内容
查找(index,find):
a_str = 'my name is tom'
a_str.index('is') # 查找is的索引,当找不到时会报错
a_str.find('is') # 查找is的索引,当找不到时会返回-1
字符串的比较(<,<=,>,>=,==,!=): 比较的值为布尔
in:在什么里面
a_str = 'abcdef'
print('ab' in a_str) # 判断ab是否在a_str里面
大小写转换(swapcase())
print('SIndy'.swapcase()) # 将大写转换为小写,小写转换为大写
首字母大写(capitalsize()):
print('sindy'.capitalsize())
标题化字符串(title()):
print('this is title'.title())
字符串切割(spilt):
print('my name is tom'.split(' ')) # 返回的是数组list[]
字符串的拼接(join):
print('+'.join(['my', 'name', 'is', 'tom'])) # join的参数为一个可迭代对象
对齐方式(ljust,rjust,center,zfill):
print('python'.ljust(10, '@')) # 第一个参数为宽度,第二个参数为当字符串长度不够固定的宽度时的填充方式
print('python'.rjust(10, '@'))
print('python'.zfill(20)) # 填充,拉伸,不够的补0
print('python'.center(10, '@'))
判断以字符开始或结束(startswith,endswith):返回布尔
print('abcdef'.startswith('ab'))
print('abcdef'.endswith('ef'))
判断字符类型(isalnum,isalpha,isdigit,isspace,islower,issupper):
print('ab99'.isalnum()) # 数字或字符
print('abc'.isalpha()) # 全是字符
print('888'.isdigit()) # 全是数字
print(' '.isspace()) # 是否为空格
print('tom'.islower()) # 是否为小写
print('tom'.isupper()) # 是否为大写
统计某个字符或者某部分字符出现的次数(count):
print('abcdef'.count('bc'))