习题1:一个句子中的所有数字和标点符号删除
方法1:
#encoding=utf-8
s="i am a boy, my age is 19 years."
import string
result=""
for letter in s:
if not letter.isdigit() and letter not in string.punctuation:
result+=letter
print(result)
方法2:
#encoding=utf-8
import string
s="i am a boy, my age is 19 years."
result=""
for letter in s:
if letter in string.ascii_letters or letter==" ":
result+=letter
print(result)
方法3:
#encoding=utf-8
import string
s="i am a boy, my age is 19 years."
for letter in s:
if letter in "0123456789":
s=s.replace(letter,"")
if letter in string.punctuation:
s=s.replace(letter,"")
print(s)
方法4:
#encoding=utf-8
import re
s="i am a boy, my age is 19 years."
print(" ".join(re.findall(r"\b[a-z]+\b",s)))
方法5:
#encoding=utf-8
import re
s="i am a boy, my age is 19 years."
print("".join(list(filter(lambda x : re.match(r"\b[a-z]+\b",x),s.split(" ,. ")))))
习题2:自定义实现str. capitalize()
知识点:
Python capitalize()将字符串的第一个字母变成大写,其他字母变小写。对于 8 位字节编码需要根据本地环境。该方法返回一个首字母大写的字符串。
def capitalize(s):
first_letter=s[0]
if first_letter>="a" and first_letter<="z":
first_letter=chr(ord(first_letter)-32)
return first_letter+s[1:]
print(capitalize("abc"))
</