首页 > 解决方案 > 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

标签: pythonpython-3.x

解决方案


问题是变量question没有像您期望的那样被分配,而是分配了返回值print(),(即None)。您需要将其拆分如下 -

question = myDict.get(random.randint(min, max))
print(question)

推荐阅读