2017-10-04 12 views
-3

10のランダムな数学の問題を生成するPythonプログラムを作成する必要があります。 2つの乱数と演算子を生成する必要があります。これまでのコードです。Pythonでランダムな数学の問題を生成する

from random import * 

score = 0 
def math(): 
    num1 = randint(1, 10) 
    num2 = randint(1, 10) 
    symbol = randint(1,3) 

    if symbol == 1: 
     question = input("What is " + str(num1) + "+" + str(num2) + "?") 
     answer = num1 + num2 
     if question == answer: 
      score = score + 1 

    elif symbol == 2: 
     question = input("What is " + str(num1) + "-" + str(num2) + "?") 
     answer = num1 - num2 
     if question == answer: 
      score = score + 1 

    elif symbol == 3: 
     question = input("What is " + str(num1) + "*" + str(num2) + "?") 
     answer = num1 * num2 
     if question == answer: 
      score = score + 1 

for i in range(10): 
    math() 

print("Your score was " + str(score)) 

コードは機能し、構文エラーは発生しませんが、すべての質問に間違いがあるとマークされます。

ありがとうございます。

+4

文字列は、あなたはおそらく、あなたの関数の主要なPythonモジュールと同じ名前に名前を付けるべきではありません – Li357

+0

数を等しくすることはありません。 –

答えて

0

Python 3を使用していると仮定すると、inputは文字列を返します。したがって、変数questionint(またはあなたに合った数値データ型)としてキャストします。私。また

question = int(input(...)) 

global scoreであなたの関数を開始:に

question = input(...) 

:のすべてのインスタンスを変更します。

+0

ブレンデンに感謝、これはうまくいったようです –

+0

素晴らしい!満足している場合は正解としてください。 –

0

int()をinput()の周りに置くためのアドバイスに続いて、別のエラー、つまりscoreが関数内の変数ではなくscoreを割り当てているという事実が出てくるでしょう。

あなたはそれを割り当てる前に、関数内で

global score 

を追加し、これを回避します。たとえば:

... 
def math() 
    global score 
    num1 = randint(1,10) 
    ... 
+0

助けてくれてありがとう、私は変数スコアを作成するのを忘れていたとは信じられない。 –

+0

あなたはそれをグローバルにしなかったことを忘れなかった。 – Rob

+0

また、もし助けてくれればupvote – Rob

関連する問題