«Разрыв» внешнего цикла

Я новичок в python, и я использую книгу под названием «Автоматизация скучных вещей с помощью Python». Я вводил следующий код (тот же самый, что и в книге):

    while True:
        print('Please type your name.')
        name = input()
        if name == 'your name':
            break
     print('Thank you!') 

И я получил ошибку «разрыв вне цикла». Я узнал, что разрыв можно использовать только внутри циклов.

Затем я попытался ввести следующее:

while True:
   print('Please type your name.')
   name = input()
   while name == 'your name':
    break
print('Thank you!')

Но это не сработало, он продолжал спрашивать имя.

Как вы думаете, в книге была ошибка или что-то в этом роде?


person puchileo    schedule 28.01.2021    source источник
comment
Я тоже только что попробовал, и он отлично работает, как написано   -  person BeanBagTheCat    schedule 28.01.2021
comment
Отлично работает дружище.   -  person Vincentino    schedule 28.01.2021
comment
Добавленный код не имеет ничего общего с ошибкой, о которой вы спрашиваете.   -  person Sayse    schedule 28.01.2021


Ответы (4)


Я думаю, это из-за ошибки отступа. скопируйте и вставьте код ниже и проверьте, решает ли он вашу проблему или нет.

while True:
  print('Please type your name.')
  name = input()
  if name == 'your name':
    break
print('Thank you!')

отступы очень важны в программировании на Python. вы всегда должны проверять их точно.

person Mahrad Hanaforoosh    schedule 28.01.2021
comment
О, глупый я, ты так прав, это был отступ, я просто все усложнял. Большое спасибо! - person puchileo; 28.01.2021
comment
Пожалуйста. не волнуйтесь вообще. это распространено среди программистов на питоне на первых шагах :) - person Mahrad Hanaforoosh; 28.01.2021

Это прекрасно, просто проверьте свой отступ

person Community    schedule 28.01.2021

Замените строку your name своим настоящим именем в if name == 'your name':Это имя вы вводите в качестве входных данных, поскольку ваш ввод не соответствует условию if, оно не будет выполнено, а оператор break никогда не будет выполняться.

while True:
    print('Please type your name.')
    name = input()
    if name == 'ajay':
        break
print('Thank you!') 

Выход

Please type your name.
ajay
Thank you!
person Ajay Rawat    schedule 28.01.2021

Код правильный. Пока условие if не будет выполнено, он будет продолжать просить вас ввести свое имя. Как только имя, которое вы ввели в качестве входных данных, совпадет с именем в условии if, цикл завершится.

Вход

while True:
        print('Please type your name.')
        name = input()
        if name == 'your name':
            break
print('Thank you!') 

Выход

Please type your name.
hello 
Please type your name.
hi 
Please type your name.
your name
Thank you!
person Sivaranjani    schedule 28.01.2021