while循环确实打印出不同的问题,但是,它完全忽略了IF语句



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()方法将打印问题并获得用户输入

相关内容

最新更新