Python-检查数组中的值

时间:2017-06-10 19:06:31

标签: python

如何根据用户输入检查值是否在数组中。例如:

secret_word = ['h', 'a', 'n', 'g','m', 'a', 'n' ]

guess_word = input(str('enter your letter)

如何使用循环来检查数组中存在的用户输入值?如果不存在,我应该如何保存这些记录,以免用户输入字母。如果可能,你能写一个示例代码吗?

2 个答案:

答案 0 :(得分:0)

你可以使用这样的一套:

unavailablechars = set()
c = input("enter your letter")
while c in unavailablechars:
     c = input("enter a different letter")
if c in secretWord:
.
.
.
else:
     unavailablechars.add(c)

一个集合就像一个数组,除了你不能拥有相同的元素两次或更多次。

编辑以提供更准确的答案。由于你想制作一个刽子手游戏,最简单的方法是使用一个包含所有字符的集合,而该集合不是空的读取字符。

secret_word=set(['h', 'a', 'n', 'g','m', 'a', 'n' ])
unavail=set()
while len(secret_word)>0:
    c = input("enter your letter")
    while c in unavail:
        c = input("enter a different letter")
    unavail.add(c)
    secret_word.remove(c)
 print("You won")

答案 1 :(得分:0)

您可以获取一个空白的猜测列表并将其放入while循环中,其中guess_word不在secret_word中,它将附加在该guess_words列表中,如果在secret_word中找到它将退出并打印输入的guess_words。

secret_word = ['h', 'a', 'n', 'g', 'm', 'a', 'n']
guess_word = raw_input(str('enter your letter'))
guess_words = []
while guess_word not in secret_word:
    guess_words.append(guess_word)
    guess_word = raw_input(str('enter your letter'))
print guess_words