找到以5结尾的数字

时间:2011-06-22 22:45:38

标签: python

我正在尝试打印从1到100的所有数字,以5结尾。这就是我所拥有的:

 for i in range (1, 100):
      if (i/10) == 5:
           print(i)

为什么打印50?

4 个答案:

答案 0 :(得分:6)

你想使用modulo %来反对除法。 Modulo得到了余数。

for i in range (1, 100):
    if (i % 10) == 5:
        print(i)

答案 1 :(得分:6)

因为50/10是5.你真正想要的是:

for i in range(100):
    if i % 10 == 5:
        print i

%是模运算,并为您提供两个数的整数除法的余数。

答案 2 :(得分:5)

为什么要测试这些值?只需先生成你想要的那些。

for i in range(5, 101, 10):
    print (i)

答案 3 :(得分:0)

这是熟悉itertools

的好方法

来自IPython shell:

In [5]: import itertools

In [6]: fives = itertools.count(start=5, step=10)

In [7]: fives.next()
Out[7]: 5

In [8]: fives.next()
Out[8]: 15

In [9]: fives.next()
Out[9]: 25

In [10]: fives.next()
Out[10]: 35

In [11]: fives = itertools.count(start=5, step=10)

In [12]: tmp = itertools.takewhile(lambda x: x <= 100, fives)

In [13]: tmp
Out[13]: <itertools.takewhile at 0x171f65f0>

In [14]: list(tmp)
Out[14]: [5, 15, 25, 35, 45, 55, 65, 75, 85, 95]

这也是一个有趣的历史课,因为Python中的列表推导和生成器与他们来自Haskell的激励祖先有很多共同之处。在此页面中搜索无限列表以查看我的意思:(link)