Найти - Пользователи
Полная версия: Помощь в понимании continue
Начало » Python для новичков » Помощь в понимании continue
1
Nedobolsky
Доброго времени суток, помоги понять такую вещь.
Почему при срабатывании условия (if), начинается новый цикл и print во второй строке не срабатывает?
Ведь в описании, continue начинает новый проход цикла, минуя оставшееся тело цикла. Но строка 2 относится уже к новому циклу? Или я что то не понимаю?
 for i in range(1, 6):
    print()
    print('i =', i)
    print('Привет, как', end=' ')
    if i == 3:
        continue
    print('твои дела')
xam1816
оформите код по правилам,рядом со смайлом в редакторе список тегов
xam1816
интерпретатор когда прочитает 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
Nedobolsky
xam1816
интерпретатор когда прочитает continue перебрасывает курсор в начало цикла,если бы была команда break, то закончил бы цикл,т.е курсор переведен после цикла.Понятно?
Это понятно, не понятно только одно, в новом цикле вторую строку он пропускает!
А вот например в таком примере:
 for i in 'hello world':
    if i == 'o':
        continue
    print('Не печатать')
    print(i * 2)
“Не печатать” выводится на экран во всех циклах, даже когда условие if выполняется, а в предыдущем примере, при выполнении условия if, программа игнорирует и не выводит “твои дела”. Почему? Ведь это же однотипные циклы, а работают по разному
Nedobolsky
 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)
Меня интересует, почему в первом случае программа не выводит на экран, а во втором случае выводит?
xam1816
Nedobolsky
“Не печатать” выводится на экран во всех циклах
 Не печатать
hh
Не печатать
ee
Не печатать
ll
Не печатать
ll
Не печатать
  
Не печатать
ww
Не печатать
rr
Не печатать
ll
Не печатать
dd

после буквы ‘o’ нет ‘не печатать’ и ‘oo’,дальше идет пробел ‘ ’ это тоже символ,просто вы его не видите,
Nedobolsky
xam1816
Все, понял, спасибо!
xam1816
Nedobolsky
print('твои дела') #Не печатается при срабатывании условия if
чтобы он напечатался,нужно чтобы интерпретатор прочитал эту команду,но не смог,потому что перед ним выполнилось условие для выполнения кода в блоке после if команда continue,которая говорит все что ниже не выполнять,а начать цикл заново
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB