0

ランダムな数学の問題を作成するプログラムを作成する必要があります。

各問題は次の形式である必要があります。

    <num> <op> <num>  = ?

各 num は -50 から 50 までの乱数を表し、op は 4 つの基本的な数学演算子 (+、-、​​/、*) からランダムに選択されます。

プログラムはこの問題をユーザーに提示し、回答を待ちます。答えが正しければ、プログラムはユーザーを祝福して終了します。答えが正しくない場合、プログラムはユーザーが再試行できるようにする必要があります。ユーザーは、正しい答えが与えられるまで試行を続けることができます。

コードがコンパイルされるたびに、構文の「フラグ」でエラーが発生しますが、修正方法がわかりません。

    def main(): 

        import random
        from operator import add, sub, mul, div

        random.seed()

        ops = (add, sub, mul, div)
        op = random.choice(ops)

        num1 = random.randint(-50,50)
        num2 = random.randint(-50,50)    

        answer = op(num1, num2)

        print("Welcome! Here is your practice problem:\n")

        print(num1, op ,num2,"=?\n")

        guess = int(input("What is your answer?\n")

        flag = True

        while flag:
            guess = int(input("I’m sorry, that is not correct.  Please try again.\n"))

            if guess == answer:
                flag = False
        print("Congratulations! You have answered the problems correctly!\n)


    main()
4

2 に答える 2

2

あなたは親密な関係を失っています。

int(input("What is your answer?\n")) # < here

また、インポートステートメントをメソッドブロックの外に移動することをお勧めします。

于 2013-02-09T01:18:22.177 に答える
0

行方不明の括弧 (Makoto が言及) に加えて、以下の引用符も欠落しています:

print("Congratulations! You have answered the problems correctly!\n")

また、breakフラグを使用する代わりに、インポートを関数宣言の外側に配置することguess == answerをお勧めします。ループに入る前にif をテストする必要がありop.__name__、単に op.

于 2013-02-09T13:14:52.560 に答える