Уведомления

Группа в Telegram: @pythonsu

#1 Сен. 15, 2016 02:32:34

aleks14
Зарегистрирован: 2016-04-08
Сообщения: 42
Репутация: +  0  -
Профиль   Отправить e-mail  

цикл фор

 i = 2
while i < 14:
	print(i)
подскажите как запустить такой же бесконечный цикл через for
думал как та так
 a=[2]
for i in a:
    if i<=2:
        print(i)

Офлайн

#2 Сен. 15, 2016 04:46:05

scidam
Зарегистрирован: 2016-06-15
Сообщения: 288
Репутация: +  35  -
Профиль   Отправить e-mail  

цикл фор

Можно попробовать так, но это плоховато, т.к. массив a растет:

 for i in a:
    a.append(i)
    print(i)

можно еще через генератор, но к while вернемся тогда неявно:

 def itera():
    while 1: yield 2
for i in itera():
    print(i)

Отредактировано scidam (Сен. 15, 2016 04:46:51)

Офлайн

#3 Сен. 15, 2016 06:50:54

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  253  -
Профиль   Отправить e-mail  

цикл фор

Сделть бесконечный итератор просто - реализуете next который никогда не дает stopiteration.

А тут по смыслу подойдет и itertools.cycle



Офлайн

#4 Сен. 15, 2016 08:42:00

ZerG
Зарегистрирован: 2012-04-05
Сообщения: 2627
Репутация: +  61  -
Профиль   Отправить e-mail  

цикл фор

Чото не понял вопрос

 while True:
    print('ololo')
Не то?



Влодение рускай арфаграфией - это как владение кунг-фу: настаящие мастира не преминяют ево бес ниабхадимости

Офлайн

#5 Сен. 15, 2016 13:05:21

aleks14
Зарегистрирован: 2016-04-08
Сообщения: 42
Репутация: +  0  -
Профиль   Отправить e-mail  

цикл фор

ZerG
Чото не понял вопрос
надо туже задачу решить через цикл фор

Офлайн

#6 Сен. 15, 2016 13:06:26

aleks14
Зарегистрирован: 2016-04-08
Сообщения: 42
Репутация: +  0  -
Профиль   Отправить e-mail  

цикл фор

есть врянт сделать тоже самое через if и булитовые операторы?

Офлайн

#7 Сен. 15, 2016 14:56:36

ZerG
Зарегистрирован: 2012-04-05
Сообщения: 2627
Репутация: +  61  -
Профиль   Отправить e-mail  

цикл фор

 from itertools import takewhile, count
for i in takewhile(lambda x : not thereIsAReasonToBreak(x), count()):
    pass # or something else



Влодение рускай арфаграфией - это как владение кунг-фу: настаящие мастира не преминяют ево бес ниабхадимости

Офлайн

#8 Сен. 16, 2016 13:34:39

oreol
Зарегистрирован: 2016-07-03
Сообщения: 19
Репутация: +  0  -
Профиль   Отправить e-mail  

цикл фор

Я понимаю, что есть задача через for, но какой в этом смысл. Цикл for нужен для перебора, а while работает пока булево значение TRUE.
К примеру while:

 i = 0
while i < 100:
    print('{0}: {1:5}'.format(i, i**100))
    i += 1
for:
 L = list(range(0, 100))
for i in L:
    print('{0}: {1:5}'.format(i, i**100))

Отредактировано oreol (Сен. 16, 2016 13:36:39)

Офлайн

#9 Сен. 16, 2016 14:42:57

ZerG
Зарегистрирован: 2012-04-05
Сообщения: 2627
Репутация: +  61  -
Профиль   Отправить e-mail  

цикл фор

oreol
ТС страдает походу.
Ему нужен ебсконечный цикл на форе
я даже и не знаю проще всего взять какойто range с диким числом перебор которого условно длинее жизни…



Влодение рускай арфаграфией - это как владение кунг-фу: настаящие мастира не преминяют ево бес ниабхадимости

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version