Выведите числа от 1 до x, где x - бесконечность в python

Возможный дубликат:
Python Infinity - есть предостережения? < br> неограниченный xrange () Python

У меня вопрос относительно Python, где вы кодируете простой скрипт, который печатает последовательность чисел от 1 до x, где x - бесконечность. Это означает, что «x» может быть любым значением.

Например, если бы мы напечатали последовательность чисел, она напечатала бы числа от 1 до оператора «if», который говорит, что остановитесь на номере «10», и процесс печати остановится.

В моем текущем коде я использую такой цикл «for»:

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

Я пытаюсь понять, как можно заменить «100» в «диапазоне» на что-то еще, что позволит циклу непрерывно печатать последовательности без указания значения. Любая помощь будет оценена по достоинству. Спасибо


person Max Wayne    schedule 17.12.2012    source источник
comment
@Hedde Я не понимаю, как это дубликат или как другой вопрос вообще помогает.   -  person Lev Levitsky    schedule 17.12.2012


Ответы (4)


С помощью itertools.count:

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

С помощью простого while цикла:

x = 0
while True:
    print x
    x += 1
person Lev Levitsky    schedule 17.12.2012
comment
Большое спасибо. Это сработало как шарм. - person Max Wayne; 17.12.2012
comment
@MaxWayne Я рад, что это помогло. Тогда вы можете захотеть принять ответ. - person Lev Levitsky; 17.12.2012

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
... 
>>>
person Grijesh Chauhan    schedule 17.12.2012
comment
Я попробовал, но появилась ошибка: y не определено Спасибо за помощь - person Max Wayne; 17.12.2012
comment
Нет никаких ограничений на то, насколько большим может быть целое число python - оно незаметно преобразуется в long и продолжает работать, пока у вас не закончится память. - person mgilson; 17.12.2012
comment
@mgilson: Я поправил ответ. Я сказал python limit ... это нехватка памяти ... Я не думаю, что мой ответ вводит в заблуждение. Спасибо - person Grijesh Chauhan; 17.12.2012
comment
@MaxWayne вам нужно сначала присвоить значение y. например >>> y = 1000 затем для операторов цикла. - person Grijesh Chauhan; 17.12.2012

Вы можете сделать это с помощью генератора:

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

for x in infinity(1):
    print x
person martineau    schedule 17.12.2012

person    schedule
comment
Я считаю, что вы хотели получить приращение внутри цикла while. Я положил это туда. Я также изменил While на while, чтобы сделать его правильным синтаксисом. - person mgilson; 17.12.2012
comment
@mgilson да спасибо извините опечатка - person Jimmy Kane; 17.12.2012
comment
x = x +1 должно быть x+=1 - person Inbar Rose; 17.12.2012
comment
@InbarRose - s/should/could/g :-p - Оба будут работать, но ваше предложение, вероятно, немного более идиоматично. - person mgilson; 17.12.2012