2016-03-29 12 views
2

私は現在学校での仕事のためのプログラムを作っており、数学のクイズプログラムを作成する必要があります。私は単純な乗算クイズをしています。ランダムな整数を生成しますが、毎回異なる必要があります

質問に2つの乱数を生成できる必要がありますが、質問ごとに異なる必要があります。

import random 
correct = wrong = num1 = num2 = 0 
questionNum = 1 
num1 = random.randint(1,49) 
num2 = random.randint(50,100) 

for i in range(0, 8): 
    print("\nQuestion", questionNum) 
    print("What is", num1, "mulitplied by", num2, "?") 
    answer = int(input("Answer: ")) 
    if answer == num1*num2: 
     print("Correct.") 
     correct = correct + 1 
     questionNum = questionNum + 1 
    else: 
     print("Incorrect. The correct answer is", answer) 
     wrong = wrong + 1 
     questionNum = questionNum + 1 

質問にはそれぞれ同じ番号が付けられます。これを変更する方法はありますか?

答えて

4

だけforループの内でごrandom.randint割り当てを移動:あなたが唯一のループの前にrandintを呼び出した場合

for i in range(1, 9): 
    num1 = random.randint(1, 49) 
    num2 = random.randint(50, 100) 

を、num1num2の値は、各反復を通じて同じ彼らが滞在します。それを内部に移動すると、毎回新しい乱数が得られます。

も注意してください。

  • あなたはあなただけiを使用することができ、別々のquestionNum変数は必要ありません。手動でそれを増やす必要はありません。
  • num1またはnum2を最初にゼロに初期化する必要はありません。
  • 増分はそうのように書くことが少しクリーナーです:あなたはおそらくprint('the correct answer is', num1*num2)か、他を言いたいcorrect += 1
  • あなただけの彼らの誤入力を印刷します。
関連する問題