2016-06-28 14 views
-2

私が現在持っている最高の数学のクイズは、次のとおりです。Python 2で乱数を使って数学クイズを書くにはどうしたらいいですか?

answer = '' 
while not (answer == '75'): 
answer = raw_input('What is 5 x 15? ') 
if answer == '75': 
    print ' ' 
    print 'You are correct' 

    answer1 = '' 
    while not (answer1 == '72'): 
     answer1 = raw_input('What is 8 x 9? ') 
     if answer1 == '72': 
      print ' ' 
      print 'You are correct' 

      answer2 = ' ' 
      while not (answer2 == '0'): 
       answer2 = raw_input('What is 5 x 0? ') 
       if answer2 == '0': 
        print' ' 
        print'You are correct' 

        answer3 = '' 
        while not (answer3 == '18'): 
         answer3 = raw_input('what is 6 x 3? ') 
         if answer3 == '18': 
          print '' 
          print 'You are correct' 
         else: 
          print 'You are incorrect' 
       else: 
        print'You are incorrect' 
     else: 
      print 'You are incorrect' 
      continue 
else: 
    print 'You are incorrect' 
    continue 

は私には、少なくとも、それがこのコードはあまりにも長い間回答するだけで4の質問のためであることを感じています。私は乱数を使って数学クイズを作る簡単な方法があるかどうか疑問に思っています。だから、それぞれの質問を作成する必要はありません。あなたが動的にこのような質問を生成することができます

+1

**作業コード**が改善できると思われる場合は、[codereview.se]を参照してください。あなたは間違いなくそれを単純化することができ、ランダムな質問を絶対に生成することができます。 – jonrsharpe

+2

あなたはおそらくあなたがここに解決策を与えることは明らかに学んでいます。それで方向性を指摘するだけで、代わりに質問と回答のリストがないのはなぜですか? –

+0

ヒント@ tomasz-plaskotaは、これを1トン上げて解決するための鍵です。 – Jeff

答えて

1

:3つしか物事が変更されているクイズで

from random import randint 
q = '' 
while not q.capitalize() == 'N': 
    num1 = randint(0, 100) 
    num2 = randint(0, 100) 
    answer = input("What is " + str(num1) + " x " + str(num2) + " ? ") 
    if answer == (num1 * num2): 
     print "Correct" 
    else: 
     print "Incorrect" 

    q = raw_input("Do you want to continue: Y/N? ") 

を、彼らは結果としてanswerを変更num1num2です。つまり、他のすべてを再利用し、ランダムにnum1num2を生成することができます。

関連する問題