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)