2015-02-12 58 views
1

有人可以幫我解決這個問題,因爲當問題得到解答時,它不會產生「正確」或「不正確」。我認爲某人會做什麼是每個答案產生和回答,如果他們得到它的正確它會說正確的,但如果他們錯了,它會說錯誤。目前,當你完成所有十個問題時,它只是說不正確。Python測驗代碼,在回答時不打印正確和不正確

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

剛爲你的添加一個額外的縮進'if ... else'部分,因此它在'while'塊的範圍內。 – zehnpaard 2015-02-12 09:04:32

+0

您的縮進是錯誤的。在'while'中移動if/else塊。在這個過程中,將'import random'移動到文件的頂部,不需要每次迭代都導入它。 – favoretti 2015-02-12 09:04:56

回答

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. 正確的縮進打破

,使程序現在看起來像

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 
... 
+0

mu你的代碼仍然不起作用,它每次仍然打印不正確 – 2015-02-12 09:20:21

+0

@Bobdylan你在python3或2上嗎?如果python 2,這將工作,如果python 3,用'user_answer = int(輸入(問題))'替換'user_answer = input(question)''。 – 2015-02-12 09:46:07

+0

@Bobdylan如果有幫助,不要忘記接受答案,選擇左側的答案:) – 2015-04-15 19:56:32

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