我(非常)对所有这些编程工具都很陌生,我需要帮助我在Python 3中制作的程序。目前,它设计的目的是找到1到10之间的数字可以被1整除这是我的方法:
def five():
a = 0
b = 0
c = 0
while a <= 9:
a = a + 1
b = a / 5
if type(b) == int and b is not 0:
c = c + 1
else:
pass
print c
在这种情况下,它打印“6”。
问题是,正如您可能已经知道的那样,在Python中,数字1.0不是整数。我唯一想要的是让Python在整数之后知道所有带0的数字,或找到一个交互式编程语言,或者找到另一种方法。
谢谢!
答案 0 :(得分:6)
在Python中询问值的type()
并不会告诉你它是否是一个圆整数。根据答案,计算的结果类型不会更改类型。 (但在Python 2中,除法的答案类型取决于输入的类型。在Python 3中,/
之后的类型始终为float
,而//
之后的类型取决于输入的类型。)
要测试可被5整除的整数,请使用模运算符:
if a % 5 == 0:
c = c + 1
另外,避免将is
运算符与整数一起使用。使用b != 0
与零进行比较,而不是b is not 0
(有关详细信息,请参阅Python “is” operator behaves unexpectedly with integers。)
答案 1 :(得分:2)
我建议你使用
if x % 5 == 0
...
找到那些可以被5整除的东西。 %是模运算符,它给出整数除法的余数,这个余数只有0,其中除法是精确的。
答案 2 :(得分:1)
您需要使用mod'%'运算符。实施例
10%5 = 0
6%5 = 1
既然你是新手,这里有一个简短的片段,因为你可能需要帮忙。
count = 0
for i in range(1,10):
if i % 5 == 0:
count += 1
print count
答案 3 :(得分:1)
执行此操作的方式略有不同:
def five():
count = 0
for i in range(1, 10):
if i%5 == 0:
count += 1
print (count, end='')
答案 4 :(得分:1)
有一种方法可以判断 float 是否是整数(即x == int(x)
):
>>> (1.0).is_integer()
True
>>> (1.1).is_integer()
False
因此,您可以将type(b) == int
替换为b.is_integer()
,您的脚本将正常运行。
答案 5 :(得分:0)
一个班轮怎么样:
sum([0 if x%5 else 1 for x in range(1,10)])