python——基础教程——10

Python第十节课


本节内容

Mon 06 12:00 Tue 07 12:00 Wed 08 12:00 Thu 09 12:00 Fri 10 字符串 查找和替换 切割 涉及范围 基础教程——10
查找
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()

​ 我们将以指定的字符对序列中的元素进行连接,变成一个字符串

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值