是否有任何交互式编程语言,其中1.0是整数?

时间:2011-11-05 02:24:44

标签: python

我(非常)对所有这些编程工具都很陌生,我需要帮助我在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的数字,或找到一个交互式编程语言,或者找到另一种方法。

谢谢!

6 个答案:

答案 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='')
  1. 使用生成器生成数字
  2. 使用模数运算符检查除法后的余数
  3. Python 3使用括号进行打印。

答案 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)])