Python 动手练:字符串 3¶
字符串是 Python 中最常用的数据类型。我们可以使用引号( ' 或 " )来创建字符串。
Python 访问字符串,可以利用索引号,使用方括号 [] 来截取字符串。
建议:根据提示完成练习后,再参考文末示例代码。
练习 1:查找指定字符串¶
编写一个程序来查找给定子字符串的最后一个位置。
例:
查找字符串:zbxx
s1="Welcome to Zbxx.net. https://www.zbxx.net."
输出:
33
提示
使用字符串函数 rfind()。
rfind()返回字符串最后一次出现的位置,如果没有匹配项则返回-1。
语法:
str.rfind(str, beg=0 end=len(string))
参数:
str -- 查找的字符串
beg -- 开始查找的位置,默认为 0
end -- 结束查找位置,默认为字符串的长度。
练习 2:拆分字符串¶
编写一个程序,以给定的连接符拆分字符串并输出每个子字符串。
例:
使用“-”拆分以下字符串。
s1="Welcome-to-Zbxx.net"
输出:
Welcome
to
Zbxx.net
提示
使用字符串函数 split()。
split() 通过指定分隔符对字符串进行切片。
语法:
str.split(str="", num=string.count(str))
参数:
str -- 分隔符,默认为所有的空字符,包括空格、换行(\n)、制表符(\t)等。
num -- 分割次数。默认为 -1, 即分隔所有。
练习 3:删除字符串中的特殊符号¶
编写一个程序,从字符串中删除特殊符号、标点符号。
例:
s1="Welc@ome% to Zb#xx."
输出:
Welcome to Zbxx
提示
使用 string 模块。在 Python 中,string.punctuation 将给出所有的特殊符号、标点符号。
使用字符串函数 translate()和 maketrans()。
translate() 方法根据给出的表转换字符串的字符。
maketrans() 方法用于创建字符映射的转换表。
练习 4:查找同时包含字母和数字的单词¶
编写一个程序来查找同时包含字母和数字的单词。
s1="Welcome99 to Zbxx.net88"
输出:
Welcome99
Zbxx.net88
提示
将函数any()、isalpha()、isdigit()。
any() 函数用于判断给定的可迭代参数是否全部为 False,则返回 False,如果有一个为 True,则返回 True。
isalpha() 方法用于检测字符串是否只由字母或文字组成。
isdigit() 方法用于检测字符串是否只由数字组成。
练习 5:替换指定字符串¶
编写一个程序,将以下字符串中的每个特殊符号替换为“#”。
s1="Welc@ome% to Zbxx!!"
输出:
Welc#ome# to Zbxx##
提示
使用常量string.punctuation获取所有标点符号的列表。
使用字符串函数replace()将替换特殊符号。
# 练习 1
s1="Welcome to zbxx.net. https://www.zbxx.net."
n = s1.rfind("zbxx")
print("最后一次出现的位置:", n)
# 练习 2
s1 = "Welcome-to-Zbxx.net"
s2 = s1.split("-")
for s in s2:
print(s)
# 练习 3
import string
s1="Welc@ome% to Zb#xx."
s2 = s1.translate(str.maketrans('', '', string.punctuation))
print(s2)
# 练习 4
s1="Welcome99 to Zbxx.net88"
res = []
temp = s1.split()
for item in temp:
if any(char.isalpha() for char in item) and any(char.isdigit() for char in item):
res.append(item)
for i in res:
print(i)
# 练习 5
import string
s1="Welc@ome% to Zbxx!!"
r = '#'
for i in string.punctuation:
s1 = s1.replace(i,r)
print(s1)
文章创作不易,如果您喜欢这篇文章,请关注、点赞并分享给朋友。如有意见和建议,请在评论中反馈!