python3基础02数值和字符串(二)

作者: pythonic生物人 | 来源:发表于2020-07-18 00:10 被阅读0次

上接"python3基础01数值和字符串(一)";
本篇详细梳理字符串方法,字符串格式化输出。

更好阅读体验请戳:

python3基础02数值和字符串(二)[1]

目录

  • 字符串处理方法

find方法
join方法
split方法
lower方法
upper方法
replace方法
strip,lstrip和rstrip方法
translate方法
startswith方法
endswith方法
is开头的诸多方法

  • 字符串格式化输出:format方法

调用参数
参数格式转换
python指定字符宽度,精度
指定字符千分位分隔符
对齐
指定填充字符
等号(=),指定将填充字符放在符号和数字之间

正文开始啦~~~~~~~~~~~~

字符串处理方法

字符串处理方法很多(如下),本文介绍常用的几种方法,详细可见链接:https://docs.python.org/zh-cn/3.7/library/stdtypes.html

In [23]: print(dir(str))#dir列出字符串所用方法

'capitalize', 'casefold', 'center', 'count', 'encode', 'endswith', 'expandtabs', 'find', 'format', 'format_map', 'index', 'isalnum', 'isalpha', 'isascii', 'isdecimal', 'isdigit', 'isidentifier', 'islower', 'isnumeric', 'isprintable', 'isspace', 'istitle', 'isupper', 'join', 'ljust', 'lower', 'lstrip', 'maketrans', 'partition', 'replace', 'rfind', 'rindex', 'rjust', 'rpartition', 'rsplit', 'rstrip', 'split', 'splitlines', 'startswith', 'strip', 'swapcase', 'title', 'translate', 'upper', 'zfill'

find方法

语法,str.find(sub_str,a,b)

字符串str中查找子字符串sub_str所在位置时使用,a,b分别制定从str中开始搜索的位置,默认从第一个字符开始,a,b均可忽略;如果找到sub_str,就返回sub_str的第一个字符的索引,没找到返回-1。可用来判断str中是否包sub_str以及位置。

In [32]: print("xiyangyang lanyangyang".find("huitanglang"))
 -1
In [33]: print("xiyangyang lanyangyang".find("yang"))
2

join方法

语法:sep.join(str),以sep为分隔符拼接字符串str。

In [36]: print("+".join("xiyangyang"))
x+i+y+a+n+g+y+a+n+g

split方法

语法:str.split(sep),以sep为分隔符,拆分字符串str为一个list。

In [37]: print("x+i+y+a+n+g+y+a+n+g".split("+"))
 ['x', 'i', 'y', 'a', 'n', 'g', 'y', 'a', 'n', 'g']

lower方法

语法:str.lower(),将字符串str转化为小写版本。

In [39]: print("Hello! Hi!".lower())
hello! hi!

upper方法

语法:str.upper(),将字符串str转化为大写版本。

In [41]: print("Hello! Hi!".upper())
HELLO! HI!

replace方法

语法:str.replace("sub_str1", "sub_str2", max)。将字符串str中的子字符串sub_str1替换为sub_str2,max为允许替换的最大次数,可忽略,默认替换所有。

In [48]: print("xiyangyang lanyangyang".replace("an","XX",2))
xiyXXgyXXg lanyangyang

strip,lstrip和rstrip方法

语法:三个方法类似,str.strip(sub_str)。strip方法去掉str开头和结尾的子字符串sub_str,sub_str可忽略,默认为空格。

In [49]: print(" Hello ".strip())
Hello
In [50]: print(" Hello ".lstrip())
Hello
In [51]: print(" Hello ".rstrip())
Hello
In [52: print(" Hello ".rstrip("o "))
Hell

translate方法

语法:str.translate(table),该方法同时替换str中多个字符,replace一次只能替换一个。

In [56]: old = "axy"
    ...: new = "123"
    ...: #调用字符串str的maketrans方法制作转换表
    ...: table = str.maketrans(old, new)
    ...:
    ...: str1 = "xiyangyang lanyangyang"
    ...: print (str1.translate(table))
2i31ng31ng l1n31ng31ng

startswith方法

语法:str.startswith(sub_str, a, b)。判断str是否以sub_str开头,是则返回True,否则返回False,a,b指定检索开始和结束( 默认是字符串的长度,表示结束搜索的位置)为止,默认从第一个字符开始。

In [64]: print("Hello".startswith("H"))
True

endswith方法

使用类似startswith,判断str是否以sub_str结尾。

is开头的诸多方法
'isalnum', 'isalpha', 'isascii', 'isdecimal',
'isdigit', 'isidentifier', 'islower', 'isnumeric',
'isprintable', 'isspace', 'istitle', 'isupper'

分别为判断字符时否是字母或数字、字母、ASCII等,详细参考https://docs.python.org/zh-cn/3.7/library/stdtypes.html,结果返回True或者False。

  • 字符串格式化输出:format方法

调用参数

按顺序将字段和参数配对输出

#按顺序将字段和参数配对输出
In [79]: "{} {} {} {}".format(1, 2, 4, 3)
Out[79]: '1 2 4 3'

#给参数指定名称,通过参数名称调用输出
In [80]: "{a} {a} {b} {b}".format(a=1, b=2)
Out[80]: '1 1 2 2'

#以上两种方法混用
In [81]: "{} {a} {} {b}".format(0, 3, a=1, b=2)
Out[81]: '0 1 3 2'

#未命名参数通过索引调用输出
In [82]: "{1} {a} {0} {b}".format(0, 3, a=1, b=2)
Out[82]: '3 1 0 2'

参数格式转换

指定要转换的值是哪种类型,如下例中的f b。

In [85]: "The number is {:f}".format(42)#f将小数表示为定点数
Out[85]: 'The number is 42.000000'

In [86]: "The number is {:b}".format(42)#b将整数表示为二进制数
Out[86]: 'The number is 101010'

常用转化类型

b             将整数表示为二进制数
c             将整数解读为Unicode码点
d             将整数视为十进制数进行处理,这是整数默认使用的说明符
e             使用科学表示法来表示小数(用e来表示指数)
E             与e相同,但使用E来表示指数
f             将小数表示为定点数
F            与f相同,但对于特殊值(nan和inf),使用大写表示
g            自动在定点表示法和科学表示法之间做出选择。这是默认用于小数的说明符,但在默认情况下至少有1位小数
G            与g相同,但使用大写来表示指数和特殊值
n            与g相同,但插入随区域而异的数字分隔符
o            将整数表示为八进制数
s            保持字符串的格式不变,这是默认用于字符串的说明符
x            将整数表示为十六进制数并使用小写字母
X            与x相同,但使用大写字母
%            将数表示为百分比值(乘以100,按说明符f设置格式,再在后面加上%)

python指定字符宽度,精度

In [96]: "Pi is {pi:10.2f}".format(pi=math.pi)#指定字符快读为10,精度为2个小数位 
Out[96]: 'Pi is       3.14'

指定字符千分位分隔符

In [101]: 'Oh gold banknote is {:,} yuan'.format(100000000000)
Out[101]: 'Oh gold banknote is 100,000,000,000 yuan'

对齐

分别使用<、>和^指定左对齐,右对齐和居中。

In [107]: print('{0:<10.2f}n{0:^10.2f}n{0:>10.2f}'.format(math.pi))

指定填充字符

默认为空格

In [113]: print('{0:$<10.2f}n{0:@^10.2f}n{0:&>10.2f}'.format(math.pi))
3.14$$$$$$
@@@3.14@@@
&&&&&&3.14

等号(=),指定将填充字符放在符号和数字之间

此处=类似于<、>和^

In [127]: print('{0:$>10.2f}n{1:$=10.2f}'.format(math.pi, -math.pi))
$$$$$$3.14
-$$$$$3.14

3、参考资料

[https://www.cnblogs.com/f-ck-need-u/p/9127699.html#21-isalphaisdecimalisdigitisnumericisalnum][6]
[https://docs.python.org/zh-cn/3.7/library/stdtypes.html#str.join][7]

关注公众号食用,更香

相关文章

网友评论

    本文标题:python3基础02数值和字符串(二)

    本文链接:https://www.haomeiwen.com/subject/damohktx.html