Python 如何进行随机数学运算

Python 如何进行随机数学运算,python,Python,所以我正在创建一个游戏,基本上它会问人们一些问题,关于他们想回答什么类型的问题,他们想回答多少,什么不想回答。我遇到了一个问题,如何处理随机的数学运算,比如加法、乘法和减法。这是我的全部代码,但我唯一需要帮助的部分是它在哪里显示“混合”,因为我需要弄清楚如何混合这三个操作 import random correct = 0 while True: questions = int(input("Enter the amount of questions would you like to

所以我正在创建一个游戏,基本上它会问人们一些问题,关于他们想回答什么类型的问题,他们想回答多少,什么不想回答。我遇到了一个问题,如何处理随机的数学运算,比如加法、乘法和减法。这是我的全部代码,但我唯一需要帮助的部分是它在哪里显示“混合”,因为我需要弄清楚如何混合这三个操作

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")

要随机选择+、-或*中的一个,并将其应用于两个数字:

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)

为了将来的参考,您应该更努力地将代码缩减到需要帮助的特定部分。我没有投反对票,但这可能是其他人投反对票的原因。你的代码也可以从使用几个函数中获益,你在一个地方做了太多的事情。