Skip to main content
 首页 » 编程设计

python之如何进行随机数学运算

2025年05月04日15me-sa

所以我正在创建一个游戏,基本上它会问人们一些问题,比如他们想回答什么类型的问题,有多少他们想回答,什么不想回答。我在弄清楚如何随机进行数学运算(例如加法、乘法和减法)时遇到了问题。这是我的整个代码,但我唯一需要帮助的部分是它说“混合”的地方,因为我需要弄清楚如何混合这三个操作。

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)