Python第十节课
本节内容
查找
find() str.find(substring, beg, end) substring:查找的子字符串 beg:查找的开始位置 end:查找的结束位置
rfind() str.rfind(substring, beg, end) # 表示查找默认是从右向左的
index() str.index(substring, beg, end) # 从右至左的查找
两者的区别 find()函数,在查找的元素不存在的时候 返回-1,不会报错 index(),当查找的元素不存在的时候,报错
练习:
请判断用户输入的邮箱是都是正确的格式
提示:邮箱中必须含有@,且仅可以有一个@
# 参考方法 def test(a): if '@' in a: if a.count('@') > 1: print("输入了错误邮箱格式") else: print("正确") else: print("缺少邮箱符号@") # test('123456789@qq.com') def test_1(a): aa = ['@163.com', '@163.net', '@188.com', '@yeah.net', ' @gmail.com', '@googlemail.com', '@hotmail.com', '@yahoo.com', '@yahoo.com.cn', '@sina.com', '@sohu.com', '@tom.com', '@21cn.com', '@qq.com', '@263.net'] if a[a.index('@'):] in aa: if '@' in a: if a.count('@') > 1: print("输入了错误邮箱格式") else: print("正确") print("验证通过!") else: print("缺少邮箱符号@") else: print("邮箱验证失败!请检查") # test_1('123456789@qq.com')
替换
语法格式:str.replace(old, new, max)
表示将str中的old使用新的new来进行替换
如果没有指定max的值的话,那么就会将所有的old元素全部替换
如果指定了max的值,那么就会替换max次
a = 'helloa' b = a.replace('a', 'A') print(b)
而想要替换全部符合该条件的在a.replace(‘a’, ‘A’, max)中max进行设置,替换多少次,就将max设置为多少。
练习:
01:已知用户现在输入一串字符,请将其中的敏感字符‘b j’查找到
如果敏感字符的出现频率占据整篇文章的5%,那么将这个文章清除
如果出现敏感只读的频率不足5%,那么就将敏感字符串替换为*
02:如果现在敏感字符是‘beijing’那么我们可以使用replace么?
03:如果字符中并不存在old字符,那么我们可以替换成功么?
def test2(a): if 'b' or 'j' in a: q = 0 for i in a: if i == 'b' or i == 'j': q += 1 if q / len(a) < 0.05: aa = a.replace('b', '*') cc = aa.replace('j', '*') print(cc) elif q / len(a) >= 0.05: a = None print(a) else: print("审核通过!") test2('b今天是金山成立30周年') # 思考补充 # 02:如果敏感字符是"beijing",是可以使用replace,因为存在old的对象 # 03:如果文章不存在old对象,也就是程序判断所需要的敏感字符条件不存在,那么便无法进行判别。 # 可以理解为文章不存在敏感字 # 请注意!如果01中不存在b,那么将会在 aa = a.replace('b', '*')这一行出错。 # 因为,03解释道:不存在old对象~~~
切割
str.split()
如果没有指定的参数,那么就是默认使用空格来进行切割
如果指定了参数,那么就是第一指定的参数来进行切割
返回值:是切割之后的字符,放置到列表中
原来的字符串不会被改变
str.splitlines()
我们将会识别到换行符
讲义换行符为切割点进行切割
str.strip()
默认是切割字符串开头和结尾的两个位置的空格
如果存在指定的序列的话,那么就会将指定的序列删除掉
str.rstrip()从右至左删除一个元素
str.join()
我们将以指定的字符对序列中的元素进行连接,变成一个字符串