Python之内建函数与切片等案例,以及对for...in的补充

for...in的补充

在前面只说了for i in range()  只讲了range()函数,那么他只能依靠range循环吗? 并不是,他可以依据字符长度来进行循环,字符串是一个连续的序列,每一次会取一个字符,举例:

s1 = 'hello'
for i in s1:
    print(i,end='')
#这里面的i就是hello里面的字符,一个个的进行输出
#使用end的原因,每次循环会换行,那么我们可以通过该功能实现对字符的逐个排查,完成下题

题目1: 开发敏感词过滤程序,提示用户输入内存,如果输入内容中包含特殊字符,则替换成***,如'奥里给' 替换成***

#分析,这样就是进行字符替换,首先要创建一个敏感词列表,然后循环判断用户输入的词语是否
#是敏感词,是敏感词则使用replace内建函数替换
word = ['奥里给']
message = input('请输入您要输入的内容:')
for i in word:
    if i in message:          #这里判断的是i字符是否在用户输入里面,在的话则执行
        message = message.replace(i,'***')       #讲message重新替换,查找敏感词汇直接替换
print('过滤后的内容为:',message)
#输入,老八爱吃奥里给   输出,老八爱吃***

第二题:

输入两个字符串,从第一字符串中删除第二字符串中所有的字符
例如,输入How are you. 和 owar
则删除之后的第一个字符串变成“H e you”
#分析:首先用户输入两串字符,需要将字符串1的字符以此拿出来进行判断,是否和字符串2
#有相同的字符,有则丢弃,无则继续循环,所以这里需要用到for...in...字符串函数了

#第一种方法,使用replace替换成空字符输出
s1 = input('请输入第一串字符串')
s2 = input('请输入第二串字符串')
for i in s1:
    if i in s2:
        s1 = s1.replace(i,'')
print(s1)

#第二种方法,使用拼接进行输出,不符合则拼接,符合则丢弃
s1 = input('请输入第一串字符串')
s2 = input('请输入第二串字符串')
s3 = ''
for i in s1:
    if i not in s2:
        s3 += i
        s1 = s3
print(s1)

第三题: 

小明喜欢的单词具有以下特性:
1.单词每个字母都是大写字母
2.单词没有连续相等的字母
例如:
小明不喜欢ABBA,因为这里有两个连续的B
小明喜欢A,ABA,和ABCBA这些单词,给你一个单词,你要回答小明是否喜欢这个单词,不喜欢直接终止,喜欢则继续
#分析 首先都是大写字母,检测需要使用 字符 > 'A' and 字符 < 'Z' 这样可以检测是否在此
#连续相等的字母,则需要进行计算,比如需要比较几次,无非也就是前面的单词和后面的单词进行
#比较是否相等,例如HELLO,五个单词需要比较4次,如果比较5次,第五次是没有值比较,会有异常
#所以根据以上分析去写一个判断
word = input('请输入单词,判断是否喜欢:')
for i in range(len(word)):        #下面需要判断每个字母的大小写,可以使用切片进行判断
    if word[i] < 'A' or word[i] > 'Z':    #只要符合其中一项,则不是小明喜欢的单词
        print('这个单词小明不喜欢,因为非全大写单词')
        break     #终止循环,否则进入下次循环
    else:    #这里需要判断两个,首先是对比长度,为整数对比长度,第二个为单词对比,对比是否相等
        if i < len(word)-1 and word[i] == word[i+1]:
            print('这个单词小明不喜欢,因为他连续相等了')
            break
else:
    print('这个单词小明喜欢!')

第四题:

循环提示用户输入: 用户名,密码,邮箱(要求用户输入长度不超过20个字符,如果超过则只有前20个字符有效)
打印输出
  用户名   密码  邮箱
  Admin   123   hfjs@163.com
  Lily    111   yweuyr@163.com
  ....
  如果用户输入q或Q表示不再继续输入
#分析:首先需要循环提示输入,且直到用户输入q才表示不再输入,那么这里需要while循环
#每次用户输入完后,存储在一个变量中,到最后再打印,其次要求输入20字符,那么需要进行切片
#操作,只截取20以内的符号
s = ''
while True:
    username = input('请输入用户名:')
    password = input('请输入密码: ')
    email = input('请输入邮箱: ')
    username == username[0:20]
    password == password[0:20]
    email = email[0:20]
    msg = '{}\t{}\t{}\n'.format(username,password,email)
    s += msg
    if username == 'q' or username == 'Q' or password == 'q' or password == 'Q' or email == 'q' or email == 'Q':
        break
print('用户名\t\t密码\t\t邮箱')
print(s)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值