Python 如果我取随机整数,如何不带余数进行除法?
我还是个编程新手。 我想编写一个完整的脚本,在这里我可以由操作符决定并得到2个随机数,以此类推。 它起作用了,但如果我想做点什么,有一些计算,比如59:6=逗号后面有9个数字。 我最终还是用分割部分的代码结束了Python 如果我取随机整数,如何不带余数进行除法?,python,python-3.x,math,random,divide,Python,Python 3.x,Math,Random,Divide,我还是个编程新手。 我想编写一个完整的脚本,在这里我可以由操作符决定并得到2个随机数,以此类推。 它起作用了,但如果我想做点什么,有一些计算,比如59:6=逗号后面有9个数字。 我最终还是用分割部分的代码结束了 def division(): x = randint(1, 100) y = randint(1, 10) a = int(input("Task: What is " + str(x) + ":" + str(y) +
def division():
x = randint(1, 100)
y = randint(1, 10)
a = int(input("Task: What is " + str(x) + ":" + str(y) + "?\n"))
b = x / y
g = round(b, 0)
if a == g:
print("Nice!")
start()
else:
print("Wrong! The right answer is " + str(g))
start()
这不是我所知道的最好的解决方案,但我只想进行没有任何余数的计算,但我不知道如何计算。
有什么建议吗
我的全部代码,如果你想测试它:
from random import randint
def plus():
x = randint(1, 1000)
y = randint(1, 1000)
a = int(input("Task: What is " + str(x) + "+" + str(y) + "?\n"))
b = x + y
if a == x+y:
print("Nice!")
start()
else:
print("Wrong! The right answer is " + str(b))
start()
def minus():
x = randint(1, 100)
y = randint(1, 100)
if x < y:
minus()
else:
print()
a = int(input("Task: What is " + str(x) + "-" + str(y) + "?\n"))
b = x - y
if a == x-y:
print("Nice!")
start()
else:
print("Wrong! The right answer is " + str(b))
start()
def multiplication():
x = randint(1, 10)
y = randint(1, 10)
a = int(input("Task: What is " + str(x) + "*" + str(y) + "?\n"))
b = x * y
if a == x*y:
print("Nice!")
start()
else:
print("Wrong! The right answer is " + str(b))
start()
def division():
x = randint(1, 100)
y = randint(1, 10)
a = int(input("Task: What is " + str(x) + ":" + str(y) + "?\n"))
b = x / y
g = round(b, 0)
if a == g:
print("Nice!")
start()
else:
print("Wrong! The right answer is " + str(g))
start()
def start():
v = input("Which operator do you wanna use? (+, -, *, :): ")
if v == '+':
plus()
elif v == '-':
minus()
elif v == '*':
multiplication()
elif v == ':':
division()
else:
print(">>> End . . .")
start()
来自随机导入randint
def plus():
x=randint(11000)
y=randint(11000)
a=int(输入(“任务:什么是“+str(x)+”+“+str(y)+”?\n”))
b=x+y
如果a==x+y:
打印(“很好!”)
开始()
其他:
打印(“错误!正确答案是”+str(b))
开始()
def减号():
x=randint(1100)
y=randint(1100)
如果x>>结束…”)
开始()
您正在寻找div运算符,在python中它是/
示例:5//2==2
编辑:
我再次阅读了你的问题,在这种情况下,你需要以稍微不同的方式生成随机数
g = randint(1, 10)
y = randint(1, 10)
x = g * y
所以答案g在x之前计算,然后用随机y,g计算x,它在(1100)中有界。随机选择除法的结果和一个除数,然后将它们相乘得到第一个数字。例如,如果生成6和4,则请求24/6
def division():
b = randint(1, 10)
y = randint(1, 10)
x = b * y
a = int(input("Task: What is " + str(x) + ":" + str(y) + "?\n"))
if a == b:
print("Nice!")
start()
else:
print("Wrong! The right answer is " + str(b))
start()
与所提供的选项相比,另一个选项(这里的用处要小得多)是使用分数
模块:您可以给它一个分子和分母(或字符串分数),它会自动简化分数:
分数。分数(32,8)
分数(4,1)
>>>分数。分数(32,9)
分数(32,9)
>>>分数。分数(32,10)
分数(16,5)
简化为分母
1
的分数是整数。请再读一遍问题,这根本不是OP想要的:他不想把商不是整数的数字用作问题。我是说,是的,但不是。。。有没有可能我说喜欢不是5/2=2。。。但是有一个逗号。。。我想让python不要做那样的计算,只有像54/9或32/8这样清晰的计算,这是现在所期望的,但这个答案已经给出了…@Thierry Lathuile是的,在你回答时正在编辑,所以我无法确定你想避免得到y,这不是x的一个因子(例如,如果x是100,那么y应该是100、50、25、20……)?随机选择除法的结果和其中一个除数,然后将它们相乘得到第一个数字。例如,如果你生成6和4,则要求24/6。是的,正是我想要做的。嘿,我想简化它,但另一方面,我希望没有逗号,所以除法必须干净,但感谢你的尝试。我做到了不知道你在说什么。如果分数的分母是1,你可以取分子,这就是你的结果。没有分数部分。