字符串的基本使用
1.字符编码集
ASCII编码:外国人常用的大小写英文字母、数字和一些符号,一共127个字符,用1个字节(byte)可以涵盖完,也就是8个位,它将序列中的每个字节理解为一个字符。
Unicode编码: Unicode把所有语言都统一到一套编码里,避免乱码的出现
Unicode用2-4个字节(最少2个字节), 好,乱码解决了,可是看看英文字母吧?
Unicode编码只是文字在内存中的内在形式 。
utf-8编码:utf-8把Unicode一分为二,可以用一个字节表示的还是用一个字节,不能表示的用多个字节表示,ok,解决了乱码问题,又节省了空间,妙啊!
gbk编码:中国人民制定了GBK(GB2312的扩展)编码,这是一种兼容ASCII的不定长。
2.编码与解码
encode(encoding):将unicode转换为bytes
decode(encoding):将bytes转换为unicode
记住:如果没有特殊业务要求,一般都设置为utf-8
a = 'hello world'
print(type(a))
print(a)
b = a.encode(encoding='utf-8')
print(b)
c = b.decode(encoding='utf-8')
print(c)
x = '我是ben'.encode(encoding='gbk')
print(x)
y = x.decode(encoding='gbk')
print(y)
3.字符串内置函数
ord('a') print 97
chr(97) print a
len() ,字符串的长度
4.字符串去空格和特殊符号
a_str='my name is ben '
去左右两边的空格和特殊字符,用strip()
左边的字符lstrip,右边的字符rstrip
b_str = ',ben.'
print(b_str.lstrip(','))
print(b_str.rstrip('.'))
a=" .@eric#! "
b=a.lstrip(' .@').rstrip('#! ')
print(b)
字符串的+和*以及替换
a_str = ‘b’
b_str = ‘en’
c_str = a_str + b_str
print(c_str)
print(c_str*4)
print((c_str + ‘q’)*3)
d_str = 'my name is ben'
e_str = d_str.replace('name', 'age')
print(d_str)
print(e_str)
print(d_str.replace('tom', 'jim'))
字符串的查找:index和find
index找到第一个索引值
字符串的比较
from operator import eq,lt,gt,le,ge
a_str = ‘ben’
b_str = ‘bom’
print(eq(a_str,b_str)) # =
print(lt(a_str,b_str)) # <
print(gt(a_str,b_str)) # >
print(le(a_str,b_str)) # <=
print(ge(a_str,b_str)) # >=
字符中也包括in not in
字符串的大小写转换 lower,upper
string.capitalize() 将字符串的第一个字母大写
string.count() 获取字符串中某个字符串的数目
string.find() 获得字符串中某一个字符串的起始位置,无则返回-1
string.islanum() 检测字符串是仅包括0-9A-Za-z
string.isalpha() 检测字符串是仅包括A-Za-z
string.isdigit() 检测字符串是仅包括数字
string.islower() 检测字符串是仅包括小写字母
string.isspace() 检测字符串所有字符是否均为空白字符
string.istitle() 检测字符串中的单词是否为首字母大写
string.isupper() 检测字符串是否均为大写字母
string.join() 连接字符串
string.lower() 将字符串全部转换为小写
string.split() 分割字符串
string.swapcase() 将字符串小写转换大写,将字符串大写转换小写。
string.title 将字符串中的单词首字符大写
string.upper() 将字符串全部转换为大写
len(string) 获取字符串长度
from string import capwords
print(capwords(‘my name is ben’)
print(‘my name is ben’.lower().title()) 两个打印结果一样
字符串的切片,分割
a='my name is tom'
a[::-1] 反转
a.split(,maxsplit=1) ,指定分割的次数
字符的拼接 join
' '.join('12')
字符串的对齐方式:
a_str = 'python'
print(a_str.ljust(10, '='))
print(a_str.rjust(20, '+'))
print(a_str.center(22, '0'))
字符串的判断操作:是判断字符串的某种状态或者属性
print(‘ben’.startwith(‘b’)) #判断是否以什么字符或者字符串开头
print(‘ben’.startwith(‘n’))
print(‘ben’.endwith(‘o’))
print(‘ben’.endwith(‘n’))
print(‘ben‘.endwith(‘en’)) #这里指定的不是字符,而是字符串
字符串的计算总共的个数count
右对齐方式
print('ben'.zfill(10))
举例说明:
" 180 0010 1101 " ,输出'18000101101'
num_1 = " 180 0010 1101 "
num_2 =(num_1.strip()).replace(' ','')
print(''.join(num_1.split()))
print(num_2)
str_1 = "hello,I'am tom。use python i can fly。"
str_2=(str_1.replace(',',',')).replace('。','.')
print(str_2)
num = str_2.index('.')
print(str_2[num::-1])
print(str_2[num+1:].capitalize())