【问题标题】:Print numbers from 1 to x where x is infinity in python [duplicate]打印从 1 到 x 的数字,其中 x 在 python 中是无穷大[重复]
【发布时间】:2012-12-17 13:00:02
【问题描述】:

可能重复:
Python Infinity - Any caveats?
python unbounded xrange()

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

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

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

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

我试图弄清楚如何将“范围”中的“100”替换为其他可以让循环在不指定值的情况下连续打印序列的内容。 任何帮助,将不胜感激。谢谢

【问题讨论】:

  • @Hedde 我看不出它是如何重复的,或者其他问题甚至有什么帮助。

标签: python infinity


【解决方案1】:

itertools.count:

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

使用简单的while 循环:

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

【讨论】:

  • 非常感谢。这就像魅力一样。
  • @MaxWayne 我很高兴它有帮助。那么你可能想accept the answer
【解决方案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 is not defined” 感谢您的帮助
  • python“整数”的大小没有限制——它会默默地转换为long并继续运行,直到内存不足。
  • @mgilson :我更正了答案。我说python限制……那是内存不足……我不认为我的回答会误导。谢谢
  • @MaxWayne 你必须先给 y 赋值。例如&gt;&gt;&gt; y = 1000 然后 for 循环语句。
【解决方案3】:

你可以用生成器来做:

def infinity(start=0):
    x = start
    while True:
        yield x
        x += 1

for x in infinity(1):
    print x

【讨论】:

    【解决方案4】:
    x=0
    while True:
      print x
      x = x +1
    

    【讨论】:

    • 我相信您希望在 while 循环内进行递增。我已经把它放在那里了。我还将While 更改为while 以使其语法有效。
    • @mgilson 是的,谢谢,抱歉,错字
    • x = x +1 应该是x+=1
    • @InbarRose -- s/should/could/g :-p -- 两者都可以,但你的建议可能更惯用。
    猜你喜欢
    • 2018-02-09
    • 2012-04-10
    • 2021-08-17
    • 1970-01-01
    • 1970-01-01
    • 2017-01-19
    • 1970-01-01
    • 2012-10-06
    • 1970-01-01
    相关资源
    最近更新 更多