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