Уведомления

Группа в Telegram: @pythonsu

#1 Янв. 20, 2021 21:26:20

Nedobolsky
Зарегистрирован: 2021-01-20
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

Помощь в понимании continue

Доброго времени суток, помоги понять такую вещь.
Почему при срабатывании условия (if), начинается новый цикл и print во второй строке не срабатывает?
Ведь в описании, continue начинает новый проход цикла, минуя оставшееся тело цикла. Но строка 2 относится уже к новому циклу? Или я что то не понимаю?

 for i in range(1, 6):
    print()
    print('i =', i)
    print('Привет, как', end=' ')
    if i == 3:
        continue
    print('твои дела')

Отредактировано Nedobolsky (Янв. 20, 2021 21:29:06)

Офлайн

#2 Янв. 20, 2021 21:28:04

xam1816
Зарегистрирован: 2020-05-11
Сообщения: 1359
Репутация: +  119  -
Профиль   Отправить e-mail  

Помощь в понимании continue

оформите код по правилам,рядом со смайлом в редакторе список тегов

Офлайн

#3 Янв. 20, 2021 21:34:10

xam1816
Зарегистрирован: 2020-05-11
Сообщения: 1359
Репутация: +  119  -
Профиль   Отправить e-mail  

Помощь в понимании continue

интерпретатор когда прочитает continue перебрасывает курсор в начало цикла,если бы была команда break, то закончил бы цикл,т.е курсор переведен после цикла.
Понятно?

Nedobolsky
и print во второй строке не срабатывает?
в строке
 print('Привет, как', end=' ')
end = ‘ ’ означает оставить курсор консоли после символа,в вашем случае пробел

 for i in range(1, 6):
    print("новая строка")
    print('i =', i)
    print('Привет, как', end=' ')
    if i == 3:
        continue
    print('твои дела')

 новая строка
i = 1
Привет, как твои дела
новая строка
i = 2
Привет, как твои дела
новая строка
i = 3
Привет, как новая строка
i = 4
Привет, как твои дела
новая строка
i = 5
Привет, как твои дела
Process finished with exit code 0

Отредактировано xam1816 (Янв. 20, 2021 21:51:26)

Офлайн

#4 Янв. 20, 2021 21:49:47

Nedobolsky
Зарегистрирован: 2021-01-20
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

Помощь в понимании continue

xam1816
интерпретатор когда прочитает continue перебрасывает курсор в начало цикла,если бы была команда break, то закончил бы цикл,т.е курсор переведен после цикла.Понятно?
Это понятно, не понятно только одно, в новом цикле вторую строку он пропускает!
А вот например в таком примере:
 for i in 'hello world':
    if i == 'o':
        continue
    print('Не печатать')
    print(i * 2)
“Не печатать” выводится на экран во всех циклах, даже когда условие if выполняется, а в предыдущем примере, при выполнении условия if, программа игнорирует и не выводит “твои дела”. Почему? Ведь это же однотипные циклы, а работают по разному

Офлайн

#5 Янв. 20, 2021 21:55:43

Nedobolsky
Зарегистрирован: 2021-01-20
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

Помощь в понимании continue

 for i in range(1, 6):
    print("новая строка")
    print('i =', i)
    print('Привет, как', end=' ')
    if i == 3:
        continue
    print('твои дела') #Не печатается при срабатывании условия if
  for i in 'hello world':
    if i == 'o':
        continue
    print('Не печатать')#Печатается при срабатывании условия if
    print(i * 2)
Меня интересует, почему в первом случае программа не выводит на экран, а во втором случае выводит?

Офлайн

#6 Янв. 20, 2021 21:58:48

xam1816
Зарегистрирован: 2020-05-11
Сообщения: 1359
Репутация: +  119  -
Профиль   Отправить e-mail  

Помощь в понимании continue

Nedobolsky
“Не печатать” выводится на экран во всех циклах
 Не печатать
hh
Не печатать
ee
Не печатать
ll
Не печатать
ll
Не печатать
  
Не печатать
ww
Не печатать
rr
Не печатать
ll
Не печатать
dd

после буквы ‘o’ нет ‘не печатать’ и ‘oo’,дальше идет пробел ‘ ’ это тоже символ,просто вы его не видите,

Офлайн

#7 Янв. 20, 2021 22:02:11

Nedobolsky
Зарегистрирован: 2021-01-20
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

Помощь в понимании continue

xam1816
Все, понял, спасибо!

Офлайн

#8 Янв. 20, 2021 22:06:04

xam1816
Зарегистрирован: 2020-05-11
Сообщения: 1359
Репутация: +  119  -
Профиль   Отправить e-mail  

Помощь в понимании continue

Nedobolsky
print('твои дела') #Не печатается при срабатывании условия if
чтобы он напечатался,нужно чтобы интерпретатор прочитал эту команду,но не смог,потому что перед ним выполнилось условие для выполнения кода в блоке после if команда continue,которая говорит все что ниже не выполнять,а начать цикл заново

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version