Программирование на Python для абсолютного новичка: глава 3 ОШИБКА - PullRequest
0 голосов
/ 15 ноября 2018

Итак, в этой главе главы 3 подраздела «Создание преднамеренных бесконечных циклов» автор приводит такой пример:

# Finicky Counter
# Demonstrates the break and continue statements
count = 0
while True:
    count += 1
# end loop if count greater than 10
if count > 10:
    break
# skip 5
if count == 5:
    continue
print(count)
input("\n\nPress the enter key to exit.")

Но это не работает. Он только выплевывает ошибки «разрыв за пределами цикла» и «продолжить не правильно в цикле». Из того, что я прочитал, break / continue нельзя использовать для выхода из if - он может выходить только из циклов, и что я должен использовать sys.exit() или return. Возникает вопрос, что имел в виду автор и почему он допустил эту - основную? - ошибку? Или, может быть, это не ошибка, и я что-то упустил.

Не могли бы вы помочь мне понять эту концепцию прерывания / продолжения на довольно похожем и простом примере? :)

Ответы [ 2 ]

0 голосов
/ 15 ноября 2018

Отступы имеют значение в Python. Так и должно быть,

count = 0
while True:
    count += 1
    # end loop if count greater than 10
    if count > 10:
        break
    # skip 5
    if count == 5:
        continue
print(count)
input("\n\nPress the enter key to exit.")
0 голосов
/ 15 ноября 2018

Потому что вы пропустили отступ, так что сделайте:

# Finicky Counter
# Demonstrates the break and continue statements
count = 0
while True:
    count += 1
    # end loop if count greater than 10
    if count > 10:
        break
    # skip 5
    if count == 5:
        continue
print(count)
input("\n\nPress the enter key to exit.")

Итак, строки:

# end loop if count greater than 10
if count > 10:
    break
# skip 5
if count == 5:
    continue

Получил все дополнительные вкладки, поэтому он становится:

    # end loop if count greater than 10
    if count > 10:
        break
    # skip 5
    if count == 5:
        continue

Примечание: даже если вы удалите break и continue, все равно будет проблема, это будет бесконечный цикл.

...