字符串

字符串,与元组相同,是一个不可变的数据类型,但是字符串的内置方法有很多
字符串、列表、元组属于序列

>>> str1 = "liang love wuning"
>>> str1[2]              #访问单个字符
'a'
>>> str1[:8]             #访问字符串
'liang lo'

>>> str1[:5] + "li" + str1[5:]   #由旧的字符串拼接而成的新字符串
'liangli love wuning'
>>> str1               	#旧的字符串依然存在,只是没有变量指向它
'liang love wuning'

>>> str1 = str1[:5] + "li" + str1[5:]
>>> str1
'liangli love wuning'
  1. 字符串的方法及注释

【1】capitalize() ——把字符串的第一个字符改为大写

>>> str1 = "love"
>>> str1.capitalize()      #返回一个新的字符串,原来的没有改变
'Love'
>>> str1
'love'

【2】casefold()——把整个字符串的所有字符改为小写

>>> str2 = "LOVE"
>>> str2.casefold()       #返回一个新的字符串,原来的没有改变
'love'
>>> str2            
'LOVE'

【3】center(width)——将字符串居中,并使用空格填充至长度 width 的新字符串>>> str2 = “LOVE”

>>> str2.center(50)
'           LOVE            '

【4】count(sub[, start[, end]])——返回 sub 在字符串里边出现的次数,start 和 end 参数表示范围,可选。

>>> str3 = "liang li wu ning"
>>> str3.count('li')
2

【5】encode(encoding=‘utf-8’, errors=‘strict’)——以 encoding 指定的编码格式对字符串进行编码。

【6】
endswith(sub[, start[, end]])——检查字符串是否以 sub 子字符串结束,如果是返回 True,否则返回 False。start 和 end 参数表示范围,可选。
startswith(prefix[, start[, end]])——检查字符串是否以 prefix 开头,是则返回 True,否则返回 False。start 和 end 参数可以指定范围检查,可选。

>>> str3 = "liang li wu ning"
>>> str3.endswith('li')
False

【7】expandtabs([tabsize=8])——把字符串中的 tab 符号(\t)转换为空格,如不指定参数,默认的空格数是 tabsize=8。

>>> str3 = "liang\tli\twu\tning"
>>> str3.expandtabs()      #空格数为8是包括字符在内的
'liang  li     wu   ning'

【8】
find(sub[, start[, end]])——检测 sub 是否包含在字符串中,如果有则返回索引值,否则返回 -1,start 和 end 参数表示范围,可选。
refind——类似于 find() 方法,不过是从右边开始查找。

>>> str3 = "liang li wu ning"
>>> str3.find('code')
-1
>>> str3.find('i')
1

【9】
index(sub[, start[, end]])——跟 find 方法一样,不过如果 sub 不在 string 中会产生一个异常。——index和find的不同之处
rindex(sub[, start[, end]])——类似于 index() 方法,不过是从右边开始。

【10】isalnum()——如果字符串至少有一个字符并且所有字符都是字母或数字则返回 True,否则返回 False。字母或者数字两者皆可以,其中一个也可以

【11】isalpha()——如果字符串至少有一个字符并且所有字符都是字母则返回 True,否则返回False。——只能是字母

【12】isdecimal()——如果字符串只包含十进制数字则返回 True,否则返回 False。

【13】isdigit()——如果字符串只包含数字则返回 True,否则返回False。——只能是数字

【14】islower()——如果字符串中至少包含一个区分大小写的字符,并且这些字符都是小写,则返回 True,否则返回 False。——如果是中文,也返回False

【15】isnumeric()——如果字符串中只包含数字字符,则返回 True,否则返回 False。

【16】isspace()——如果字符串中只包含空格,则返回 True,否则返回 False。

【17】istitle()——如果字符串是标题化(所有的单词都是以大写开始,其余字母均小写),则返回 True,否则返回 False。

>>> str4 = "Liang Li"
>>> str4.istitle()
True
>>> str4 = "Liang LI"
>>> str4.istitle()
False

【18】isupper()——如果字符串中至少包含一个区分大小写的字符,并且这些字符都是大写,则返回 True,否则返回 False。

【19】join(sub)——以字符串作为分隔符,插入到 sub 中所有的字符之间。

>>> str4 = "Liang LI"
>>> str4.join('1234')
'1Liang LI2Liang LI3Liang LI4'

【20】
ljust(width)——返回一个左对齐的字符串,并使用空格填充至长度为 width 的新字符串。
rjust(width)——返回一个右对齐的字符串,并使用空格填充至长度为 width 的新字符串。

>>> str5 = "to be or not to be"
>>> str5.ljust(50)
'to be or not to be


【21】lower()——转换字符串中所有大写字符为小写。

【22】
lstrip()——去掉字符串左边的所有空格
rstrip()——去掉字符串右边的所有空格

>>> str6 = "       i love you"
>>> str6.lstrip()
'i love you'

【23】partition(sub)——找到子字符串 sub,把字符串分成一个 3 元组 (pre_sub, sub, fol_sub),如果字符串中不包含 sub 则返回 (‘原字符串’, ‘’, ‘’)

>>> str6 = "i love you"
>>> str6.partition("ov")
('i l', 'ov', 'e you')

【24】replace(old, new[, count])——把字符串中的 old 子字符串替换成 new 子字符串,如果 count 指定,则替换不超过 count 次。

>>> str6 = "i love you"
>>> str6.replace("love","dou\'t love")
"i dou't love you"

【25】rfind(sub[, start[, end]])——类似于 find() 方法,不过是从右边开始查找。

【26】rindex(sub[, start[, end]])——类似于 index() 方法,不过是从右边开始。

【27】rjust(width)——返回一个右对齐的字符串,并使用空格填充至长度为 width 的新字符串。

【28】rpartition(sub)——类似于 partition() 方法,不过是从右边开始查找。

【29】rstrip()——删除字符串末尾的空格。

【30】split(sep=None, maxsplit=-1)——不带参数默认是以空格为分隔符切片字符串,如果 maxsplit 参数有设置,则仅分隔 maxsplit 个子字符串,返回切片后的子字符串拼接的列表。

>>> str6 = "i love you"
>>> str6.split()
['i', 'love', 'you']      #分成三个元素的列表
>>> str6.split('o')
['i l', 've y', 'u']       #以o为分隔符,切片字符串

【31】splitlines(([keepends]))——在输出结果里是否去掉换行符\n,默认为 False,不包含换行符;如果为 True,则保留换行符。。

【32】startswith(prefix[, start[, end]])——检查字符串是否以 prefix 开头,是则返回 True,否则返回 False。start 和 end 参数可以指定范围检查,可选。

【33】strip([chars])——删除字符串前边和后边所有的空格,chars 参数可以定制删除的字符,可选。

>>> str7 = "    ssssaaaaaassss    "
>>> str7.strip()
'ssssaaaaaassss'
>>> str7 = str7.strip()
>>> str7
'ssssaaaaaassss'
>>> str7.strip('s')     #可以指定删除的字符
'aaaaaa'

【34】swapcase()——翻转字符串中的大小写。

>>> str= "Liang Li and Wu Ning"
>>> str.swapcase()
'lIANG lI AND wU nING'

【35】title()——返回标题化(所有的单词都是以大写开始,其余字母均小写)的字符串。

>>> str9= "liang li and wu ning"
>>> str9.title()
'Liang Li And Wu Ning'

【36】translate(table)——根据 table 的规则(可以由 str.maketrans(‘a’, ‘b’) 定制)转换字符串中的字符。

>>> str7
'ssssaaaaaassss'
>>> str7.translate(str.maketrans('a', 'b'))
'ssssbbbbbbssss'
>>> str.maketrans('a', 'b')    #97和98分别是a和b的ASCII码
{97: 98}

【37】upper()——转换字符串中的所有小写字符为大写。
【38】zfill(width)——返回长度为 width 的字符串,原字符串右对齐,前边用 0 填充。

>>> str8 = "liang li and wu ning"
>>> str8.zfill(50)
'000000000000000000000000000000liang li and wu ning'
  1. 字符串格式化函数

replacement字段在字符串中用{}表示
.format()由关键字参数和位置参数组成

#位置参数
>>> "{0} love {1} {2}".format("i","you","very much")     
#字段{0}、{1}、{2}分别用{}括起来表示字段; 通过位置参数将("i","you","very much")传递给format方法:通过format方法对这个字符串进行格式化处理
'i love you very much'
           
#关键字参数
>>> "{a} love {b} {c}".format(a = "i",b = "you",c = "very much")
'i love you very much'

位置参数可以放在关键字参数前,但是反过来就会报错

>>> "{0} love {b} {c}".format("i",b = "you",c = "very much")
'i love you very much'

如何输出{}——双层{}作用类似于\取消原字符的转义

>>> "{{0}}".format("不不不")         #"不不不"不会被打印; 因为0被{}解释了,与"\\"类似
'{0}'

在替换域中,:表示格式化符号的开始
.1——表示保留一位小数,四舍五入
f——打印出定点数(定点数和浮点数差不多,都是打印小数)

>>> "{0:.1f}{1}".format(26.658,"GB")
'26.7GB'

.如果想要显示Pi = 3.14,format前边的字符串应该怎么填写呢?
‘’.format('Pi = ', 3.1415)

>>> '{0}{1:.2f}'.format('Pi = ',3.1415)
'Pi = 3.14'
  1. 字符串格式化符号及其意义

%c——格式化字符及其 ASCII 码

>>> '%c' % 100
'd'
>>> '%c %c %c' % (100,105,107)   #如果有多个参数,要写成元组的形式;括号不写会报错
'd i k'                          #格式化字符串,就是按照'%c %c %c'的要求合并输出

%s——格式化字符串(用一个字符串去格式化另外一个字符串)

>>> '%s' % 'I love you'
'I love you'

%d——格式化整数

>>> '%d + %d = %d' % (4,5,4+5)
'4 + 5 = 9'

%o——格式化无符号八进制数

>>> '%o' % 124
'174'

%x——格式化无符号十六进制数

>>>'%x' % 124
'7c'

%X——格式化无符号十六进制数(大写)

>>> '%X' % 124
'7C'

%f——格式化浮点数字,可指定小数点后的精度(精确到六位小数)

>>> '%f' % 3.14159265
'3.141593'

%e——用科学计数法格式化浮点数

>>> '%e' % 26.789
'2.678900e+01'

%E——作用同 %e,用科学计数法格式化浮点数

>>> '%E' % 26.789
'2.678900E+01'

%g——根据值的大小决定使用 %f 或 %e

>>> '%g' % 26.789
'26.789'

%G——作用同 %g,根据值的大小决定使用 %f 或者 %E

>>> '%G' % 3.14159265
'3.14159'

十进制转二进制——使用bin()函数

>>> bin(10)
'0b1010'
  1. 格式化操作符辅助命令
符号说明
m.nm 是显示的最小总宽度,n 是小数点后的位数
-用于左对齐
+在正数前面显示加号(+)
#在八进制数前面显示 ‘0o’,在十六进制数前面显示 ‘0x’ 或 ‘0X’
0显示的数字前面填充 ‘0’ 取代空格

m.n——m 是显示的最小总宽度,n 是小数点后的位数

>>> '%5.1f' % 3.67
'  3.7'
>>> '%20e' % 3.14159265
'        3.141593e+00'
>>> '%10d' % 3.14159265
'         3'

— ———用于左对齐

>>> '%-10d' % 3.14159265
'3  

+——在正数前面显示加号(+)

>>> '%+10d' % 3.14159265
'        +3'
>>> '%+10d' % -3.14159265
'        -3'

#——在八进制数前面显示 ‘0o’,在十六进制数前面显示 ‘0x’ 或 ‘0X’

>>> '%#o' % 12
'0o14'
>>> '%#x' % 124
'0x7c'

#后面默认都为十进制数
>>> '%#d' % 124
'124'

0 显示的数字前面填充 ‘0’ 取代空格

>>> '%010d' % 5
'0000000005'
>>> '%-010d' % 5
'5         '

5、Python 的转义字符及其含义

符号说明
\’单引号
\"双引号
\a发出系统响铃声
\b退格符
\n换行符
\t横向制表符(TAB)
\v纵向制表符
\r回车符
\f换页符
\o八进制数代表的字符
\x十六进制数代表的字符
\0表示一个空字符
\\反斜杠
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值