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()不能用于比较源字符串中任意一部分的子串。


苍之萤
20 声望0 粉丝

« 上一篇
Git入门