thomashuang 发表于 2022-12-2 21:41:46

30讲课后作业,求助

30讲课后作业,动手1里面。我的程序,过于怪异:假如出现一个剔除的单词,那么随后的一个单词,我的程序不去检测是否应该剔除,而是直接保留。如果程序输入的都是保留的单词,那么程序确实保留所有的单词。求大神指导,程序如下:

line1="qwertyuiop" #定义键盘字符串
line2="asdfghjkl"
line3="zxcvbnm"

words=input("输入英文单词以英文逗号隔开:")
words=words.split(",")


for each in words:
    print(each)                         #验证是否每个单词用来验证,发现如果前一个单词被剔除,随后的一个单词,跳过验证,无法它是否应该剔除。
   
    if each.lower() in line1:      #把第一个单词的首字母提取出来,变成小写,判断在键盘的哪里一行
      for i in each:            
            if i.lower() not in line1:#把这个单词的每个字母提取出来,变成小写,判断是否在这一行
                words.remove(each)      #如果不在这样则把这个单词,从列表剔除。
                print(words)            #验证是否剔除
                break

    elif each.lower() in line2:
      for i in each:
            if i.lower() not in line2:
                words.remove(each)
                print(words)
                break

    elif each.lower() in line3:
      for i in each:
            if i.lower() not in line3:
                words.remove(each)
                print(words)
                break
      
print(words)

suchocolate 发表于 2022-12-3 16:51:26

循环中不要被循环的迭代对象,
你直接看答案吧,并不推荐你这么写。
页: [1]
查看完整版本: 30讲课后作业,求助