在Python中打印从1到无穷大的数字

3
可能重复:

Python无穷大 - 有什么注意事项吗?
链接1
python无界限xrange()

我有一个关于Python的问题,您可以编写一个简单的脚本,该脚本打印从1到x的数字序列,其中x是无穷大。 也就是说,“x”可以是任何值。

例如,如果我们要打印数字序列,它将打印从1到一个“if”语句,该语句表示在数字“10”处停止打印过程。

在我的当前代码中,我使用了这样的“for”循环:

for x in range(0,100):
    print x

我正在尝试弄清楚如何用其他东西替换“range”中的“100”,以便循环可以连续打印序列而不需要指定一个值。任何帮助都将不胜感激。谢谢。

2
@Hedde 我不明白这是一个重复问题,也不明白其他问题如何有所帮助。 - Lev Levitsky
4个回答

14

使用 itertools.count:

import itertools
for x in itertools.count():
    print x

通过简单的while循环:

x = 0
while True:
    print x
    x += 1

2

y可以是一个数字。

for x in range(0,y):
    print x

您不能让y无限大或负数。以下示例可能会有所帮助。
>>> for y in range(0,):
...     print y
... 
>>> 
>>> for y in range(0,1000000000000000):
...     print y
... 
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
OverflowError: range() result has too many items
>>> for y in range(0,-1):
...     print y
... 
>>>

我尝试了一下,但出现了一个错误,提示说:"y未定义"。谢谢帮忙。 - Max Wayne
Python中的“整数”没有大小限制 - 它会自动转换为long类型,并且会一直增长,直到内存耗尽。 - mgilson
@mgilson :我改正了答案。我说了Python的限制..那是内存不足...我不认为我的回答会误导。谢谢 - Grijesh Chauhan
@MaxWayne 你首先需要给 y 赋一个值。例如 >>> y = 1000 然后使用 for 循环语句。 - Grijesh Chauhan

2
您可以使用生成器来完成这个任务:
def infinity(start=0):
    x = start
    while True:
        yield x
        x += 1

for x in infinity(1):
    print x

0
x=0
while True:
  print x
  x = x +1

1
我相信你想要在while循环内进行递增操作。我已经将其放在那里了。我还将While改为while,以使其成为有效的语法。 - mgilson
@mgilson 是的,谢谢,抱歉打错了。 - Jimmy Kane
x = x + 1 应该改为 x += 1 - Inbar Rose
1
@InbarRose -- s/should/could/g :-p -- 两者都可以,但你的建议可能更符合习惯用法。 - mgilson

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接