Python 字符串操作
在 Python 中,有一个标准库,称为 **string**。在 string 模块中,提供了各种与字符串相关的常量、方法和类。
要使用这些模块,我们需要在代码中导入 **string 模块**。
import string
一些字符串常量及其对应值如下:
序号 | 字符串常量及值 |
---|---|
1 | string.ascii_lowercase ‘abcdefghijklmnopqrstuvwxyz’ |
2 | string.ascii_uppercase ‘ABCDEFGHIJKLMNOPQRSTUVWXYZ’ |
3 | string.ascii_letters ascii_lowercase 和 ascii_uppercase 的连接 ‘abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ’ |
4 | string.digits ‘0123456789’ |
5 | string.hexdigits ‘0123456789abcdefABCDEF’ |
6 | string.octdigits ‘01234567’ |
7 | string.punctuation ‘!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~’ |
8 | string.printable 所有可打印的 ASCII 字符。它是 ascii_letters、punctuation、digits 和 whitespace 的集合。‘0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~ \t\n\r\x0b\x0c’ |
9 | string.whitespace ‘\t\n\r\x0b\x0c’ |
示例代码
import string print(string.hexdigits) print(string.ascii_uppercase) print(string.printable)
输出
0123456789abcdefABCDEF ABCDEFGHIJKLMNOPQRSTUVWXYZ 0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~
字符串格式化
Python 中内置的字符串类通过 `format()` 方法支持不同的复杂变量替换和值格式化。
要格式化字符串,基本语法如下:
‘{} {}’.format(a, b)
变量 a 和 b 的值将被放置在用 ‘{}’ 包裹的位置。我们也可以在括号内提供位置参数。或者在括号内写入一些变量名也是有效的。
使用此格式化选项,我们还可以设置文本的填充。要在文本中添加填充,语法如下:
‘{: (character) > (width)}’.format(‘string’)
使用指定的 **字符**、**宽度** 值,使用 > 符号向右填充“字符串”。我们可以使用 < 向左填充,使用 ^ 设置到中间。
format() 方法还可以使用给定的长度截断字符串。语法如下:
‘{:.length}’.format(‘string’)
字符串将被截断到给定的长度。
示例代码
print('The Name is {} and Roll {}'.format('Jhon', 40)) print('The values are {2}, {1}, {3}, {0}'.format(50, 70, 30, 15)) #Using positional parameter print('Value 1: {val1}, value 2: {val2}'.format(val2 = 20, val1=10)) #using variable name #Padding the strings print('{: >{width}}'.format('Hello', width=20)) print('{:_^{width}}'.format('Hello', width=20)) #Place at the center. and pad with '_' character #Truncate the string using given length print('{:.5}'.format('Python Programming')) #Take only first 5 characters
输出
The Name is Jhon and Roll 40 The values are 30, 70, 15, 50 Value 1: 10, value 2: 20 Hello _______Hello________ Pytho
字符串模板
字符串模板用于以更简单的方法替换字符串。模板支持使用 $ 字符进行替换。当找到 **$标识符** 时,它将用标识符的新值替换它。
要在字符串中使用模板,基本语法如下:
myStr = string.Template(“$a will be replaced”) myStr.substitute(a = ‘XYZ’)
字符串中的 a 值将被字符串中的 'XYZ' 替换。我们可以使用字典来执行此类操作。
示例代码
my_template = string.Template("The value of A is $X and Value of B is $Y") my_str = my_template.substitute(X = 'Python', Y='Programming') print(my_str) my_dict = {'key1' : 144, 'key2' : 169} my_template2 = string.Template("The first one $key1 and second one $key2") my_str2 = my_template2.substitute(my_dict) print(my_str2)
输出
The value of A is Python and Value of B is Programming The first one 144 and second one 169
广告