2016-08-01 4 views
-2

Как я могу отключить скрипт в python? sys.exit() не работает .. так где проблема? Edit: изменен отступов, как в моем файле импорта SYS Защиту SIFRA(): retezec = вход ("Zadejte Slovo: ") печать (" Zadali jste Slovo:", retezec) zpráva = "" posun = INT (вход ("Zadejte číslo о Колик себе má SIFRA posouvat:"))Как выйти из скрипта в python

for znak in retezec: 
     i = ord(znak) 
     i = i + posun 
     if (i > ord("z")): 
      i = i - 26 
     znak = chr(i) 
     zprava = zprava + znak 
    print("Zašifrovaná zpráva: ", zprava) 

    znovu = input("Znovu? A/N ") 
    if(znovu == "A" or "a"): 
     sifra() 
    elif(znovu == "N" or "n"): 
     sys.exit() 
    else: 
     pass 
sifra() 
+2

Вы уверены, что ** вы попадаете в 'sys.exit()'? – Idos

+0

@Idos Я уверен, что он не (или я был бы, если бы код был правильно отступом). – Holloway

+0

Ваше определение функции 'sifra' неправильно написано, пожалуйста, отложите его правильно. –

ответ

0

znovu == "N" or "n" не то, что вы хотите. Вам нужно сравнить znovu для обоих этих значений:

elif (znovu == 'N') or (znovu == 'n'): 
    sys.exit() 

Другой альтернативой может быть один предложил в комментариях или просто:

elif znovu in 'Nn': sys.exit() 

Предполагая, что никто входах «Nn» в качестве ответа, но даже если они (случайно) делают это, это все равно можно считать «Нет».

+1

Альтернативно: '' 'elif znovu in ['N', 'n']:' '' – Owen

+0

Если я использую 'elif (znovu == 'N') или (znovu == 'n'): sys.exit() 'немедленно закрывается программой и в ошибке cmd« unindent не соответствует внешнему уровню отступов », и если я создаю' if (znovu == "A" или "a"): sifra() 'to' if (znovu == 'A') или (znovu == 'a'): sifra() 'ошибка такая же – pandik70

+0

@ pandik70, убедитесь, что вы не смешиваете вкладки и пробелы в своем коде – ForceBru

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