Выполните операцию на первом экземпляре цикла, который повторяется навсегда - PullRequest
0 голосов
/ 06 июля 2018

Прямо сейчас у меня есть скрипт, который предназначен для зацикливания навсегда. Тем не менее, я хотел бы сделать что-то другое на первом «круге» в соответствии со следующим:

import math

for i in range(0,math.inf):
    if i == 0:
       print("I'm gonna start the first lap")
    print('this is one lap')

"I'm gonna start the first lap"
'this is a lap'
'this is a lap'

Обратите внимание, что этот код не работает, потому что math.inf - это число с плавающей точкой, а не целое число. И этот пост здесь говорит, что в Python нет способа представить бесконечность как целое число.

Использование while True: может иметь смысл в этой ситуации, но есть ли способ заставить функцию печатать что-то другое для первого (или x-го) повторения по этому вопросу?

Ответы [ 4 ]

0 голосов
/ 06 июля 2018

Если вы хотите использовать бесконечный цикл for при сохранении счетчика, вы можете использовать itertools.count:

from itertools import count

for i in count():
    if i == 0:
        print("I'm gonna start the first lap")
    print('This is one lap')
    # break
0 голосов
/ 06 июля 2018

Очевидный способ сделать это - поместить первую итерацию перед циклом:

print("I'm gonna start the first lap")
while True:
   print('this is one lap')

Но этот пример не определяет остальную часть проблемы.

0 голосов
/ 06 июля 2018

Просто посчитайте круг и сравните текущий круг с желаемым кругом. За x повторение:

counter = 0
while True:
    if counter == xth:
        print("This is the xth lap")
    print('this is one lap')
    counter += 1
0 голосов
/ 06 июля 2018
print("I'm gonna start the first lap")
while True:
    print('this is one lap')

Поместите это перед циклом.

...