If语句不归咎于用户输入

时间:2017-05-25 00:34:20

标签: python list if-statement

我是Python和编码的新手。我试图创建一个空白填空的测验来练习。第一部分要求用户选择难度。输入后,代码会附加一个空列表。我将使用该列表加载问题和答案。但是,我遇到的问题是if语句不能识别用户输入。我想确保用户只输入简单,中等或难度。为了查看代码是否有效,我使用了打印功能。但是,我的代码直接进入else语句并打印“再试一次”。'有什么想法吗?

这是我的代码。

choice = []

new_choice = raw_input('Select your quiz difficulty: Easy, Medium, Hard: ')
choice.append(new_choice)
print choice

if choice == 'easy':
    print 'True'
elif choice == 'medium':
    print 'True'
elif choice == 'hard':
    print 'True'
else:
    print 'Try again.'

3 个答案:

答案 0 :(得分:2)

当前表单choice是一个列表,而您尝试将其与字符串/文本进行比较。相反,试试这个:

choices = []

new_choice = raw_input('Select your quiz difficulty: Easy, Medium, Hard: ')
choices.append(new_choice)
print choices

if choices[-1] == 'easy':
    print 'True'
elif choices[-1] == 'medium':
    print 'True'
elif choices[-1] == 'hard':
    print 'True'
else:
    print 'Try again.'

我将您的列表重命名为choices,表示它包含多个对象。 -1让您访问添加到该列表中的最后一件事。因此,如果您计划将所有用户响应存储到列表choices,则可以对最后一个答案进行比较并继续。

答案 1 :(得分:1)

choice是一个包含输入的列表,而不是输入。用户输入您存储到new_choice变量中。试试这个

choice = raw_input('Select your quiz difficulty: Easy, Medium, Hard: ')
print choice

if choice == 'easy':
    print 'True'
elif choice == 'medium':
    print 'True'
elif choice == 'hard':
    print 'True'
else:
    print 'Try again.'

答案 2 :(得分:0)

您正在将列表与变量进行比较。

也许使用:

variable = choice[0]
if variable == 'easy':
    # rest of program

另外,请确保“简单”,“中等”,“难以”和“hard”没有大写字母。

您可以使用:

new_choice.lower() # converts to lowercase

在附加到您的列表之前