首页 > 解决方案 > 使用python在列表中顺序输入

问题描述

我写了一个基于一些单词技巧的代码。我的代码中有一个预定义的单词。该代码要求用户输入。然后它在预定义词和用户输入之间进行比较。如果它们相同,它将产生输出。

我的代码:

letter_list=[]
words="admit"
i=0
while i< len(words):
  user = input("Letter: ")
  if user in words:
    letter_list.append(user)
    i=i+1
  else:
    i=i+1
if len(words)== len(letter_list):
  print("Same word")
else:
  print(letter_list)

输出(如果他们得到与单词相似的相同输入):

Letter: m
Letter: i
Letter: a
Letter: t
Letter: d
Same word

输出(当给定的字母与单词不相似时)

Letter: r
Letter: t
Letter: m
Letter: a
Letter: k
['t', 'm', 'a']

尽管代码给出了输出same word,但很容易理解它们不是。我在编译时给出了与用户输入相同的字母,但它们不按顺序排列。但我的代码说它们是一样的。在第二次输入的情况下,它只需要相似的单词字母。所以列表中的字母数是 3。

我想知道它怎么能按顺序输入?

我的意思是我什么时候给mi之后a它不会接受mi提示错误的字母直到它得到d

标签: pythonif-statementwhile-loop

解决方案


检查用户的字母是否是words. 如果不是,打印“wrong letter”并且不递增i,这样会一直等待用户输入正确的字母。

您不需要letter_list,因为在用户输入所有正确字母之前您不会退出循环。

while i < len(words):
    user = input("Letter: ")
    if user == words[i]:
        i=i+1
    else:
        print("Wrong letter")
print("Same word")

推荐阅读