首先需要:
import string
test1 = 'he cheated me!'
print(test1.capitalize())
print(test1)
运行结果:
He cheated me!
he cheated me!
输出两次的目的主要是验证该方法能否改变字符串本身,输出结果证明capitalize()方法不可以
代码还同时引入了其他方法(字符串句子是根据需求随便编的)
test2 = 'I word word word time time we we I.'
print(test2.strip(string.punctuation)) # 去掉字符串中的标点符号
words = [word for word in test2.strip(string.punctuation).split()]
print(words)
words_set = set(words)
print(words_set)
word_count_dict = {single_word: test2.strip(string.punctuation).count(single_word) for single_word in words_set}
print(word_count_dict)
该代码完成了:
编码和解码字符串,对字符串编码后,得到bytes对象,对bytes解码后,得到字符串对象。
bytes的编码方式有UTF-8, GBK等等,需要选择编码的方式。
find(str, beg=0, end=len(string))
在字符串string中找str的位置,beg和end指定搜索范围。“位置”指的是从0开始数
test2 = 'I word word word time time we we I.'
print(test2.find('I'))
输出结果:0
还有rfind()从右边开始找
检测这个字符串里是否只有该种字符,如果是,返回True。
isalnum():都是字母或数字
isalpha():都是字母
isdigit():都是数字
islower():都是小写字母
isupper():都是大写字母
isspace()都是空格
istitle()是标题(title的意思是每个词首字母大写),而且title()方法即是将字符串的每个单词首字母大写,转化成标题的形式。
str.join(sequence),把许多字符串用str分隔后连接在一起。
seq = ('I', 'love', 'you')
test3 = '~'
print(test3.join(seq))
输出:
找最大和最小的字母。使用方法:
str.max()
max(str) ✔
什么是最大的字母?小写的,在字母表顺序后面的。
替换。str.replace(old_str, new_str),备选参数:最大替换次数
# replace(),2指替换次数不超过两次
test2 = 'I word word word time time we we I.'
print(test2.replace('word', 'world', 2))
输出:
让字符串左/右对齐,并用某指定字符(默认空格)来填充字符串长度到要求长度。
(l/r)just(width),width:要求字符串长度。可选参数:指定填充字符
test4 = 'I love you'
print(test4.ljust(15, '*'))
print(test4.rjust(15, '*'))
lstrip(),rstrip(),strip()各自为:去掉左边,右边,左右两边指定字符(默认空格)
test5 = '****#*I love you*#****'
print(test5.lstrip('*'))
print(test5.rstrip('*'))
print(test5.strip('*'))
upper()
lower()
swapcase():把大写转小写,把小写转大写
一定要有的参数:密码本(两个字符串用str.maketrans()形成一一映射)
可选参数:需要删掉的字符列表
test6 = 'I hate you'
str1 = 'hateyou'
str2 = 'loveme '
password = str.maketrans(str1, str2)
print(test6.translate(password))
输出:
关于str.maketrans(),如果里面只有一个参数,那么它应该是字典,如果里面有2个参数,应该是长度相等的字符串,否则映射不了。
这个不用说了。