字符串是不可变的。
因此所有的元素赋值和切片赋值都是非法的,会引起TypeError
异常。
字符串方法
模块string
中几个很有用的常量。
-
string.digits
:包含数字0~9
的字符串 -
string.ascii_letters
:包含所有ASCII字母(大写和小写)的字符串 -
string.ascii_lowercase
:包含所有小写ASCII字母的字符串 -
string.ascii_uppercase
:包含所有大写ASCII字母的字符串 -
string.printable
:包含所有可打印的ASCII字符的字符串 -
string.punctuation
:包含所有ASCII标点字符的字符串
import string
print(string.punctuation) # !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~
方法 | 描述 | 说明 |
---|---|---|
center | 通过在两边添加填充字符让字符串居中 | 默认为空格 |
find | 在字符串中查找子串 | 如果找到就返回子串的第一个字符的索引,不存在则返回-1。 可指定搜索的起点和终点 |
join | 合并序列的元素 | 所合并的元素必须都是字符串,否则会引起TypeError 异常 |
lower | 返回字符串的小写版本 | title 方法将字符串转换为词首大写。使用模块string中的函数 capwords |
replace | 将指定子串都替换为另一个字符串,并返回替换后的结果 | 不存在就直接返回初始状态的字符串 |
split | 将字符串拆分为序列 | 没有指定分隔符将默认在单个或多个连续的空白字符处进行拆分 |
strip | 将字符串开头和末尾的空白删除,并返回删除后的结果 | 不包括中间的空白 可在一个字符串参数中指定要删除哪些字符 |
translate | 替换字符串的特定部分 | 只能进行单字符替换 |
判断字符串是否满足特定的条件:isalnum
、isalpha
、isdigit
、islower
、isprintable
、isspace
、isupper
。
# 起点和终点值指定的搜索范围包含起点,但不包含重点
words = 'watkins loves pjing.'
print(words.find('in', 2, 17)) # 4
dirs = ['', 'usr', 'bin', 'env']
print('/'.join(dirs)) # /usr/bin/e
print(words.split()) # ['watkins', 'loves', 'pjing.']
import string
messy = "[@&bubby/\!!]"
print(messy.strip(string.punctuation)) # bubby
# 使用translate前必须创建一个转换表指出不同Unicode码点之间的转换关系
# 要创建转换表可对字符串类型str调用方法maketrans
# 两个必选的参数:两个长度相同的字符串、可选的第三个参数:指定要将哪些字母删除
table = str.maketrans('it', 'iz')
print(table) # {105: 105, 116: 122}
para = 'give it up or not give it up'
print(para.translate(table)) # give iz up or noz give iz up
(最近更新:2019年04月11日)