Python测验代码,在回答时打印不正确且不正确

时间:2015-02-12 09:02:00

标签: python iteration

有人可以帮助我使用此代码,因为在回答问题时它不会产生“正确”或“不正确”。我认为有人会做的是当每个答案产生并回答如果他们得到正确时它会说正确但如果他们弄错了它会说不正确。当你完成所有十个问题时,它只是说不正确。

num1=0
num2=0
numofq=0

while numofq <10:
    import random
    num1 = random.randint(1, 10)
    num2 = random.randint(1, 10)
    correctAns = num1 * num2
    question = str(num1) + "x" + str(num2)
    ans = input(question)
    numofq=numofq+1
if ans == correctAns:
   print ("Correct")
else:
   print ("Incorrect")

2 个答案:

答案 0 :(得分:4)

您的if - else块没有缩进,它们应该是while循环的一部分:

num1=0
num2=0
numofq=0

while numofq <10:
    import random
    num1 = random.randint(1, 10)
    num2 = random.randint(1, 10)
    correctAns = num1 * num2
    question = str(num1) + "x" + str(num2)
    ans = input(question)
    numofq=numofq+1
    if ans == correctAns:
       print ("Correct")
    else:
       print ("Incorrect")

但是,当我们参与其中时,您可以通过

即兴创作代码
  1. 使用更好的变量名称
  2. .format用于字符串格式化
  3. import放在顶部
  4. 使用换行符进行适当缩进
  5. 这样程序现在看起来像

    import random
    
    num1 = num2 = 0
    questions_asked = 0
    
    while questions_asked <10:
        num1 = random.randint(1, 10)
        num2 = random.randint(1, 10)
        answer = num1 * num2
        question = "{} x {}: ".format(num1, num2)
        user_answer = int(input(question))
        print("Correct" if user_answer == answer else "Incorrect")
        questions_asked += 1
    

    输出:

    6 x 4: 24
    Correct
    2 x 7: 14
    Correct
    3 x 4: 12
    Correct
    ...
    

答案 1 :(得分:0)

import random
num1 = 0
num2 = 0
numofq = 0
correct = 0
wrong = 0
while numofq < 10:
    num1 = random.randint(1, 10)
    num2 = random.randint(1, 10)
    correctAns = num1 * num2
    question = str(num1) + "x" + str(num2)
    ans = input(question)
    if correctAns == ans:
        print 'Correct'
        correct += 1
    else:
        wrong += 1
        print 'Incorrect'
    numofq = numofq + 1
print 'Correct :', correct, 'Incorrect :', wrong