我是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.'
答案 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
在附加到您的列表之前