Python学习笔记:字符串

版权声明:转载请联系博主 https://blog.csdn.net/Watkins_OS/article/details/81610365

目录

1. 字符串基本操作

2. 设置字符串的格式

3. 字符串方法


1. 字符串基本操作

字符串是不可变的,因此所有的元素赋值和切片赋值都是非法的。所有标准序列操作都适用于字符串,比如索引、切片、乘法、成员资格检查、长度、最小值和最大值。

2. 设置字符串的格式

对字符串调用方法format,并提供要设置其格式的值。每个值都被插入字符串中,以替换用花括号括起的替换字段。替换字段由以下可选部分组成:字段名、转换标志和格式说明符。

最简单的情况,只需向format提供要设置其格式的未命名参数,并在格式字符串中使用未命名字段。此时,有两种方式,一种为按顺序将字段和参数配对,另一种是给参数指定名称。

>>> "That is an {adj} apple {} you {v} me yesterday.".format(that, adj = delicious, v = gave)
>>> 'That is an delicious that you gave me yesterday.'

指定要在字段中包含的值后,就可添加设置其格式的指令了。转换标志(s、r和a)指定分别使用str、repr和ascii进行转换。类型说明符则是在格式说明(即冒号后面)使用。

>>> "The number is {num:f}".format(num = 210)    # f:将小数表示为定点数
>>> 'The number is 210.000000'

>>> "The number is {num:b}".format(num = 210)    # b:将整数表示为二进制数
>>> 'The number is 11010010'

宽度、精度是使用整数指定的,但精度需要在前面加上一个表示小数点的句点。千位分隔符使用逗号,放在宽度和表示精度的句点之间。

>>> 'The other number is {flo:18,.2f}'.format(flo = 2017210.798)
>>> 'The other number is       2,017,210.80'

在指定宽度和精度的数前面。可添加一个标志(零、加号、减号或空格)作为填充字符。要指定左对齐、右对齐和居中,可分别使用<、>和^。可使用填充字符来扩充对齐说明符,而不是默认的空格来填充。说明符=指定将填充字符放在符号和数字之间。将说明符+放在对其说明符后面可以给正数加上符号。

>>> print("{:^12.2f} \n {:#^12}".format(210.798, "NAME"))
>>>   210.80    
>>> ####NAME####

井号(#)选项放在符号说明符和宽度之间,用于触发转换方式,随类型而异。对于二进制、八进制和十六进制的转换将加上一个前缀;对于各种十进制数则要求必须包含小数点。

>>> print("{:#b}".format(210))
>>> 0b11010010

3. 字符串方法

字符串的很多方法都是从模块string那“继承”而来的。

center:通过在两边添加填充字符(默认为空格)让字符串居中。

zfill:在字符串左边填充0(但将原来打头的+或-移到开头),使其长度为width。

find:在字符串中查找子串。如果找到,就返回子串的第一个字符的索引,否则返回-1。

index:返回找到的第一个子串的索引,如果没有找到这样的子串,将引发ValueError异常。

join:用于合并序列的元素。但所合并序列的元素必须都是字符串。

>>> names = ["joy", "ketty", "aliy"]
>>> ' '.join(names)    # 调用方式:分隔符.join(序列)
>>> 'joy ketty aliy'

lower:返回字符串的小写版本。

replace:将指定子串都替换为另一个字符串,并返回替换后的结果。

spilt:用于将字符串拆分为序列。如果没有指定分隔符,将默认在单个或多个连续的空白字符(空格、制表符、换行符等)处进行拆分。

>>> "you say that this is an apple.".split()
>>> ['you', 'say', 'that', 'this', 'is', 'an', 'apple.']

strip:将字符串开头和末尾的空白(但不包括中间的空白)删除,并返回删除后的结果。

translate:根据转换表对字符串中的所有字符都进行转换,并返回结果。

isdigit:检查字符串中的字符是否都是数字。

猜你喜欢

转载自blog.csdn.net/Watkins_OS/article/details/81610365