Уведомления

Группа в Telegram: @pythonsu

#1 Сен. 22, 2014 11:49:02

in
Зарегистрирован: 2013-09-11
Сообщения: 68
Репутация: +  0  -
Профиль   Отправить e-mail  

Бесконечные циклы

У меня вопрос почему в определенных случаях бесконечные циклы останавливают свои бесконечные иттерации.

Например, есть бесконечный цикл:

while True:
     print 'Hi'

Он как ему и положено будет до бесконечности заваливать своими сообщениями командную строку.

Но если мы например в цикле добавим raw_input, то цикл зависнет и перестанет заваливать строку до тех пор пока мы что-нибудь не напечатаем
while True:
     print 'Hi'
     reply = raw_input ('Enter text, [type "stop" to quit]: ')

Аналогичная ситуация будет и с сокетом
def serve(listen_socket):
while True:
        sock, addr = listen_socket.accept()
        print 'Somebody at %s wants poetry!' % (addr,)

Я не понимаю почему цикл условно ставится на паузу вместо того чтобы по аналогии с первым примером заваливать строку свои принтом.

Отредактировано in (Сен. 22, 2014 11:50:39)

Офлайн

#2 Сен. 22, 2014 12:23:44

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10012
Репутация: +  857  -
Профиль   Отправить e-mail  

Бесконечные циклы

in
Но если мы например в цикле добавим raw_input, то цикл зависнет
Он вызывает функцию raw_input(), передавая ей управление. Когда она завершается, управление возвращается обратно.



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version