2012-01-24 31 views
1

私は基本的に、どのタイプの質問を回答したいのか、また何人に答えたいのか、何を質問しないのかという質問を人々に聞いています。私は、特に加算、乗算、減算などのランダムな数学演算をどうやって解くかという問題を抱えています。ここで私の全体のコードですが、私が助けを求めているのは、3つの操作をどのようにミックスするかを理解する必要があるため、「混在」と言います。数学的操作をランダムにする方法

import random 
correct = 0 

while True: 
    questions = int(input("Enter the amount of questions would you like to answer: ")) 
    difficulty = input("Enter the difficulty of questions you would like: Beginner, Intermediate, or Advanced: ") 
math = input("Would you like to do addition, subtraction, multiplication, or mixed: ") 

if difficulty == "Beginner": 
    for i in range(questions): 
     if math == "multiplication": 
      beg1 = random.randint(1, 10) 
      beg2 = random.randint(1, 10) 
      prod = beg1 * beg2 

      begAns = input("What is " + str(beg1) + " times " + str(beg2) + "? ") 

      if int(begAns) == prod: 
       print("That's right -- well done.\n") 
       correct += 1 
      else: 
       print("No, I'm afraid the answer is ",prod) 

     elif math == "subtraction": 
      beg1 = random.randint(1, 10) 
      beg2 = random.randint(1, 10) 
      prod = beg1 - beg2 

      begAns = input("What is " + str(beg1) + " minus " + str(beg2) + "? ") 

      if int(begAns) == prod: 
       print("That's right -- well done.\n") 
       correct += 1 
      else: 
       print("No, I'm afraid the answer is ",prod) 

     elif math == "addition": 
      beg1 = random.randint(1, 10) 
      beg2 = random.randint(1, 10) 
      prod = beg1 + beg2 

      begAns = input("What is " + str(beg1) + " plus " + str(beg2) + "? ") 

      if int(begAns) == prod: 
       print("That's right -- well done.\n") 
       correct += 1 
      else: 
       print("No, I'm afraid the answer is ",prod) 

     elif math == "mixed": 
      beg1 = random.randint(1, 10) 
      beg2 = random.randint(1, 10) 
      prod = beg1 * beg2 

      begAns = input("What is " + str(beg1) + " times " + str(beg2) + "? ") 

      if int(begAns) == prod: 
       print("That's right -- well done.\n") 
       correct += 1 
      else: 
       print("No, I'm afraid the answer is ",prod) 

elif difficulty == "Intermediate": 
    for i in range(questions): 
     if math == "multiplication": 
      intermediate1 = random.randint(1, 25) 
      intermediate2 = random.randint(1, 25) 
      prod = intermediate1 * intermediate2 

      intAns = input("What is " + str(intermediate1) + " times " + str(intermediate2) + "? ") 

      if int(intAns) == prod: 
       print("That's right -- well done.\n") 
       correct += 1 
      else: 
       print("No, I'm afraid the answer is ",prod) 

     elif math == "subtraction": 
      intermediate1 = random.randint(1, 25) 
      intermediate2 = random.randint(1, 25) 
      prod = intermediate1 - intermediate2 

      intAns = input("What is " + str(intermediate1) + " minus " + str(intermediate2) + "? ") 

      if int(intAns) == prod: 
       print("That's right -- well done.\n") 
       correct += 1 
      else: 
       print("No, I'm afraid the answer is ",prod) 

     elif math == "addition": 
      intermediate1 = random.randint(1, 25) 
      intermediate2 = random.randint(1, 25) 
      prod = intermediate1 + intermediate2 

      intAns = input("What is " + str(intermediate1) + " plus " + str(intermediate2) + "? ") 

      if int(intAns) == prod: 
       print("That's right -- well done.\n") 
       correct += 1 
      else: 
       print("No, I'm afraid the answer is ",prod) 

     elif math == "mixed": 
      intermediate1 = random.randint(1, 25) 
      intermediate2 = random.randint(1, 25) 
      prod = intermediate1 + intermediate2 

      intAns = input("What is " + str(intermediate1) + " times " + str(intermediate2) + "? ") 

      if int(intAns) == prod: 
       print("That's right -- well done.\n") 
       correct += 1 
      else: 
       print("No, I'm afraid the answer is ",prod) 

elif difficulty == "Advanced": 
    for i in range(questions): 

     if math == "multiplication": 
      adv1 = random.randint(1, 100) 
      adv2 = random.randint(1, 100) 
      prod = adv1 * adv2 

      advAns = input("What is " + str(adv1) + " times " + str(adv2) + "? ") 

      if int(advAns) == prod: 
       print("That's right -- well done.\n") 
       correct += 1 
      else: 
       print("No, I'm afraid the answer is ",prod) 

     elif math == "subtraction": 
      adv1 = random.randint(1, 100) 
      adv2 = random.randint(1, 100) 
      prod = adv1 - adv2 

      advAns = input("What is " + str(adv1) + " minus " + str(adv2) + "? ") 

      if int(advAns) == prod: 
       print("That's right -- well done.\n") 
       correct += 1 
      else: 
       print("No, I'm afraid the answer is ",prod) 

     elif math == "addition": 
      adv1 = random.randint(1, 100) 
      adv2 = random.randint(1, 100) 
      prod = adv1 + adv2 

      advAns = input("What is " + str(adv1) + " plus " + str(adv2) + "? ") 

      if int(advAns) == prod: 
       print("That's right -- well done.\n") 
       correct += 1 
      else: 
       print("No, I'm afraid the answer is ",prod) 

     elif math == "mixed": 
      adv1 = random.randint(1, 100) 
      adv2 = random.randint(1, 100) 
      prod = adv1 + adv2 

      advAns = input("What is " + str(adv1) + " times " + str(adv2) + "? ") 

      if int(advAns) == prod: 
       print("That's right -- well done.\n") 
       correct += 1 
      else: 
       print("No, I'm afraid the answer is ",prod) 

else: 
    print("Please enter Beginner, Intermediate, or Advanced.\n") 


print("\nI asked you", questions, "questions. You got ", correct, " of them right.") 

if correct/questions > 2/3: 
    print("Well done.\n") 
elif correct/questions > 1/3: 
    print("You need more practice.\n") 
else: 
    print("Please ask your math teacher for help!\n") 

restart = input("Would you like to play again? Y/N: ") 
if restart == "Y": 
    continue 
elif restart == "N": 
    break 
else: 
    print("Please Enter Y or N") 
+1

、あなたが欲しい、特定の部分にあなたのコードをダウン削り取っが困難に試してみてくださいヘルプ。私はdownvoteしなかったが、それはおそらく他の誰かがした理由です。 –

+0

あなたのコードは、2つの機能を使用する利点もあります。あなたは1つの場所で多すぎます。 –

答えて

7

ランダムに、+のいずれかを選択するには - 、または*と二つの数値に適用:今後の参考のため

import random 
from operator import add, sub, mul 

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

beg1, beg2 = random.randint(1,10), random.randint(1,10) 

ans = op(beg1, beg2) 
関連する問題