2017-02-03 12 views
-2
# pede pelo nome do aluno, ou termina o programa, se "fim". 
while(True): 
    aluno = input("\nInsira o nome do aluno: ") 
    while(aluno == "" or aluno == None): 
     aluno = input("Por favor insira o nome do aluno: ") 
    if (aluno == "Fim" or aluno == "fim"): 
     print(bold + "Fechando o programa...\n" + bold_end) 
     sys.exit() 
    if (aluno.istitle() != True): 
     qst = input("\nEste não parece ser um nome regular. Tem certeza que deseja prosseguir?") 
     if (qst == 'N' or qst == 'No' or qst== 'Não' or qst == "n"): 
      continue 

Это небольшой фрагмент программы, которую я сделал, чтобы помочь мне исправить тесты моих учеников. Он делает именно то, что я хочу, но последние четыре строки, которые я выставил на работу, и я не знаю, почему.Как продолжать работать в этом коде? (python)

Если вставлено имя, которое составлено не только из прописных и строчных букв, программа должна задать вопрос, хочу ли я продолжить это имя. Если я наберу «N» или что-нибудь подобное, программа перезапустится и снова спросит меня об имени ученика. Если я ввожу любую другую вещь, программа будет действовать так, как должна. Вопрос в том, почему?

+2

у вас есть что-нибудь внутри 'while (True)' ниже 'continue'? – furas

+0

@furas да я. Код продолжает запрашивать у пользователя количество правильных ответов. Я хочу, чтобы после отрицания код возвращался к началу цикла while, и, если бы я сказал «да», это продолжалось бы. Он делает именно это, но я сделал это случайно. –

+0

Не используйте '! = True'. Вместо этого используйте 'not ''. –

ответ

1

Вы, кажется, перепутали continue и break.

break завершает цикл. continue начинает следующую итерацию (продолжает петля сверху).

+0

Спасибо. Поэтому я предполагаю, что для того, чтобы делать то, что хочу, я должен создать второй цикл, верно? –

+1

Я бы сказал, что вы хотите внимательно изучить http://stackoverflow.com/questions/23294658/asking-the-user-for-input-until-they-give-a-valid-response. –

+0

что сделал! спасибо –

Смежные вопросы