while循环确实打印出不同的问题,但是,它完全忽略了IF语句。
代码:
import random
min = 1
max = 4
myDict = {1: "What is the name of the world's tallest tower?" ,
2: "What is the best youtube channel ever?" ,
3: "When did Queen Victoria die?" ,
4: "What is the world's most active volcano?"}
while True:
question = print(myDict.get(random.randint(min, max)))
answer = input("ANSWER: ")
if question == myDict.get(1):
if answer == "Burg Khalifa":
print('Correct!')
else:
print('Incorrect!')
continue
continue
if question == myDict.get(2):
if answer == "Vat19" :
print('Correct!')
else:
print('Incorrect!')
continue
continue
if question == myDict.get(3):
if answer == "1901" :
print('Correct!')
else:
print('Incorrect!')
continue
continue
if question == myDict.get(4):
if answer == 'Mount Kilauea':
print('correct!')
else:
print('Incorrect!')
continue
continue
问题是,变量question
并没有像您预期的那样被赋值,而是被赋值为print()
的返回值(即None
(。你需要将其拆分如下-
question = myDict.get(random.randint(min, max))
print(question)
我认为您必须删除print()
,并将question
变量作为input()
的参数,如下所示:
while True:
question = myDict.get(random.randint(min, max))
answer = input(question)
input()
方法将打印问题并获得用户输入