我一直在做我自己的小程序,为输入的数字寻找除数。你知道吗
它判断一个数是否可以被另一个数除的方法是结果是否是整数。如果它是一个浮点数,它应该是负数。你知道吗
到目前为止我得到的是:
# Divider
Number = input("> ")
divider = 1
while True:
Number = int(Number)
divider = int(divider)
result = 0
result = int(result)
result = Number/divider
if isinstance(result, int):
print("{} Y".format(divider))
else:
print("{} N".format(divider))
divider = divider + 1
if divider == Number + 1:
break
问题是,当我运行程序并输入一个像“10”这样的数字时,它应该有一个以上的除数(1,2,5,10),结果完全是负数:
> 10
1 N
2 N
3 N
4 N
5 N
6 N
7 N
8 N
9 N
10 N
>>>
我不知道我做错了什么。你知道吗
除法运算符
/
在python3中总是产生一个浮点数,因此结果永远不会是整数的实例。你知道吗您应该改为使用模运算符来测试余数是否为0:
首先我要清理你的代码:
现在,它们都以负回报是什么?仅仅因为
/
除法返回一个float(即结果是一个float)。正确的解决方案是什么?使用%
模检查余数是否为0。你知道吗输出:
我会用模数来解。如果余数是0,那么它是可除的,否则它不是。不需要任何
int
或float
检查。你知道吗输出:
相关问题 更多 >
编程相关推荐