A-08-字符串练习
本帖最后由 高渐飞 于 2018-7-16 15:25 编辑常用字符串操作
[*]capitalize()把字符串的第一个字符改为大写
[*]casefold() 把整个字符串的所有字符改为小写
[*]swapcase()翻转字符串中的大小写。
[*]lower() 转换字符串中所有大写字符为小写。
[*]upper() 转换字符串中的所有小写字符为大写。
[*]center(width) 将字符串居中,并使用空格填充至长度 width 的新字符串
[*]count(sub[, start[, end]]) 返回 sub 在字符串里边出现的次数,start 和 end 参数表示范围,可选。
[*]encode(encoding='utf-8', errors='strict') 以 encoding 指定的编码格式对字符串进行编码。
[*]endswith(sub[, start[, end]]) 检查字符串是否以 sub 子字符串结束,如果是返回 True,否则返回 False。start 和 end 参数表示范围,可选。
[*]expandtabs() 把字符串中的 tab 符号(\t)转换为空格,如不指定参数,默认的空格数是 tabsize=8。
[*]find(sub[, start[, end]]) 检测 sub 是否包含在字符串中,如果有则返回索引值,否则返回 -1,start 和 end 参数表示范围,可选。
[*]rfind(sub[, start[, end]]) 类似于 find() 方法,不过是从右边开始查找。
[*]index(sub[, start[, end]]) 跟 find 方法一样,不过如果 sub 不在 string 中会产生一个异常。
[*]rindex(sub[, start[, end]]) 类似于 index() 方法,不过是从右边开始。
[*]isalnum() 如果字符串至少有一个字符并且所有字符都是字母或数字,返回 True,否则返回 False。
[*]isalpha() 如果字符串至少有一个字符并且所有字符都是字母,返回 True,否则返回 False。
[*]isnumeric()如果字符串中只包含数字字符,则返回 True,否则返回 False。
[*]isspace() 如果字符串中只包含空格,则返回 True,否则返回 False。
[*]isdigit() 如果字符串只包含数字,返回 True,否则返回 False。
[*]isdecimal() 如果字符串只包含十进制数字,返回 True,否则返回 False。
[*]istitle() 如果字符串是标题化(所有的单词都是以大写开始,其余字母均小写),则返回 True,否则返回 False。
[*]islower() 如果字符串中至少包含一个区分大小写的字符,并且这些字符都是小写,返回 True,否则返回 False。
[*]isupper() 如果字符串中至少包含一个区分大小写的字符,并且这些字符都是大写,则返回 True,否则返回 False。
[*]lstrip() 去掉字符串左边的所有空格
[*]rstrip() 删除串末尾的空格。
[*]strip() 删除字符串前边和后边所有的空格,chars 参数可以定制删除的字符,可选。
[*]join(sub) 字符串作为分隔符,插入到 sub 中所有的字符之间。
[*]ljust(width) 返回一个左对齐的字符串,并使用空格填充至长度为 width 的新字符串。
[*]rjust(width) 返回一个右对齐的字符串,并使用空格填充至长度为 width 的新字符串。
[*]zfill(width) 返回长度为 width 的字符串,原字符串右对齐,前边用 0 填充。
[*]partition(sub) 找到子字符串 sub,把字符串分成一个 3 元组 (pre_sub, sub, fol_sub),如果字符串中不包含 sub 则返回 ('原字符串', '', '')
[*]rpartition(sub) 类似于 partition() 方法,不过是从右边开始查找。
[*]replace(old, new[, count]) 把字符串中的 old 子字符串替换成 new 子字符串,如果 count 指定,则替换不超过 count 次。
[*]split(sep=None, maxsplit=-1) 默认是以空格为分隔符切片字符串,如果 maxsplit 参数有设置,分隔 maxsplit 个子字符串,返回切片后的子字符串拼接的列表。
[*]splitlines(()) 结果里是否去掉换行符,默认为 False,不包含换行符;如果为 True,则保留换行符。。
[*]startswith(prefix[, start[, end]]) 字符串是否以 prefix 开头,是则返回 True,否则返回 False。start 和 end 参数可以指定范围检查,可选。
[*]title() 返回标题化(所有的单词都是以大写开始,其余字母均小写)的字符串。
[*]translate(table) 根据table 的规则(可以由 str.maketrans('a', 'b') 定制)转换字符串中的字符。
以上来源于 [扩展阅读] 字符串的方法及注释 ttp://bbs.fishc.org/forum.php?mod=viewthread&tid=38992&extra=page%3D1%26filter%3Dtypeid%26typeid%3D403
str1="hello,daniel"
print(str1[:6])
print(str1) #对元素进行索引时必须为中括号[]
#元素的修改
str2=str1[:5]+",insert"+str1 #直接使用引号插入即可
print(str2) #在元组中插入元素时,还需小括号和逗号,三者缺一不可
#字符串格式化符号
"""
%c 格式化字符及其ASCII码
%s 格式化字符串
%d 格式化整数
%o 格式化无符号八进制数
%x 格式化无符号十六进制数
%X 格式化无符号十六进制数(大写)
%f 格式化浮点数字,可指定小数点后的精度
%e 用科学计数法格式化浮点数
%E 作用同%e,用科学计数法格式化浮点数
%g 根据值的大小决定使用%f或%e
%G 作用同 %g,根据值的大小决定使用%f或%E
"""
a1='%c' % 97 # 格式化字符及其ASCII码
a2='%c %c %c' % (97, 98, 99) #元组的形式
a3='%d + %d = %d' % (4, 5, 4+5) # %s为格式化字符串;%d为格式化整数
a4='%f' % 27.658 #默认精确到小数点后六位,用0补充
print(a1,a2,a3,a4,"\n")
#格式化操作符辅助命令
#在m.n中,m是总长度,n是小数点后的位数
b1= '%5.1f'% 27.658 #以总长度为5,小数一位格式化输出,不足时左侧空格补位
b2= '%.2e' % 27.658
b3= '%-5d'% 5 #输出左对齐的整数,总长度为5; 默认右对齐
b4= '%+5d'% 5 #输出时,在正数前面显示加号(+)
b5= '%+5d'% -5
b6= '%#o'% 111#符号#可以在八进制数前面显示'0o',在十六进制数前面显示'0x'或'0X'
b7= '%#x'% 111
b8= '%010d'% 5 #符号0可以使0来替代前面的空格
print(b1,b2,b3,"\n",b4,b5,b6,b7,b8,"\n")
#format()
#格式化字符串即 按照统一的规格输出成一个字符串
str2='{} {}'.format('hello', 'world') #不设置指定位置,按默认顺序
str3="{0} loves {1}".format("Daniel","Python1") #位置参数,以中括号为轮廓
str4="{a} loves {b}".format(a="Daniel",b="Python2")#关键字参数
str5="{0} loves {b}".format("Daniel",b="Python3") #位置和关键字参数一起使用时,位置在前,否则error
print(str2,"\n",str3,"\n",str4,"\n",str5,"\n")
str6="{{0}}".format("Daniel")#两个反斜杠相互抵消,0未被daniel替换
str7="{0:.1f}{1}".format(27.899," GB")#使用.1f控制定点数格式,保留一位小数,四舍五入
str8="{0:.2e}{1}".format(27.899," GB")#指数形式,小数保留两位
print(str6,"\n",str7,"\n",str8,"\n") #其中:表示格式化符号的开始
a='{:10d}'.format(12) #默认右对齐(宽度为10)
b='{:<10d}'.format(12) #以<左对齐(宽度为10)
c='{:^10d}'.format(12) #以^中间对齐(宽度为10)
print("a:",a,"b:",b,"c:",c)
d="{:0>5d}".format(5) #左边补零,总长度为5
e='{:x<5d}'.format(5) #右边补x,总长度为5
f='{:x>5d}'.format(10) #左边补x,总长度为5
print("d:",d,"e:",e,"f:",f)
g='{:,}'.format(1000000) #以逗号分隔,三位一分
h='{:.3%}'.format(0.25) #百分比形式,小数点后三位(默认6位)
i='{:.3e}'.format(1000000000) #指数形式,小数点后3位(默认6位)
print("g:",g,"h:",h,"i:",i,"\n")
a='{:b}'.format(11) #二进制
b='{:d}'.format(11) #十进制
print("11的2进制:",a, "11的10进制:",b)
c='{:o}'.format(11) #八进制
d='{:x}'.format(11) #十六进制
print("11的8进制:",c,"11的16进制:",d)
e='{:#x}'.format(110) #在前面加0x,且所有字符小写
f='{:#X}'.format(110) #在前面加0X,且所有字符大写
print("11的2进制:",e,"11的2进制:",f,"\n")
页:
[1]