6.1 常见的字符串操作
6.1.1 字符串的格式化
"%s" % str1
"%s %s" % (str1, str2)
使用%f
可以格式化浮点数的精度,根据指定的精度做“四舍五入”。
注意:
如果要在字符串中输出“%”,需要使用“%%”。
Python可以实现字符串的对齐操作,类似C语言中的“%[[+/-]n]s”。此外,还提供了字符串对齐的函数。
# 字符串对齐
word = "version3.0"
print(word.center(20))
print(word.ljust(0))
print(word.rjust(0))
print("%30s" % word)
6.1.2 字符串的转义符
Python中转义字符的用法和Java相同,都是使用“\”作为转义字符。
Python还提供了函数strip()、lstrip()、rstrip()去掉字符串中的转义符。
6.1.3 字符串的合并
与Java语言一样,Python使用“+”连接不同的字符串。Python会根据“+”两侧变量的类型,决定执行连接操作或加法运算。如果“+”两侧都是字符串类型,则进行连接操作;如果“+”两侧都是数字类型,则进行加法运算;如果“+”两侧是不同的类型,将抛出异常。
Python提供了函数join()和reduce()连接字符串。
6.1.4 字符串的截取
Python由于内置了序列,可以通过前面介绍的索引、切片获取子串,也可以使用函数split()来获取。
通过切片可以实现对字符串有规律的截取。切片的语法格式如下所示。
string[start : end : step]
通过切片可以实现对字符串有规律的截取。切片的语法格式如下所示。
string[start : end : step]
代码说明:
其中string表示需要取子串的源字符串变量。[start:end:step]
表示从string
的第start
个索引位置开始到第end
个索引之间截取子串,截取的步长是step。即每次截取字符string[start+step]
,直到第end
个索引。索引从0开始计数。
如果要同时截取多个子串,可以使用函数split()实现。函数split()的声明如下所示。
split([char] [,num])
代码说明:
• 参数char表示用于分割的字符,默认的分割字符是空格。
• 参数num表示分割的次数。如果num等于2,将把源字符串分割为3个子串。默认情况下,将根据字符char在字符串中出现的个数来分割子串。
• 函数的返回值是由子串组成的列表。
字符串连接后,Python将分配新的空间给连接后的字符串,源字符串保持不变。
6.1.5 字符串的比较
字符串的比较Java使用equals()比较两个字符串的内容,Python直接使用“==
”“!=
”操作符比较两个字符串的内容。如果比较的两个变量的类型不相同,比较的内容也不相同。
如果要比较字符串中的一部分内容,可以先截取子串,再使用“==”操作符进行比较。如果要比较字符串的开头或结尾部分,更方便的方法是使用startswith()
或endswith()
函数。startswith()
的声明如下所示。
startswith(substring, [,start [,end]])
代码说明:
• 参数substring是与源字符串开头部分比较的子串。
• 参数start表示开始比较的位置。
• 参数end表示比较结束的位置,即在start:end范围内搜索子串substring。
• 如果字符串以substring开头,则返回True;否则,返回False。
endswith()
的参数和返回值类似startswith()
,不同的是endswith()
从源字符串的尾部开始搜索。
注意:
startswith()
、endswith()
相当于分片[0:n],n是源字符串中最后一个索引。startswith()
、endswith()
不能用于比较源字符串中任意一部分的子串。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。