2016-08-01 25 views
-2

verlassen, wie ich Skript in Python herunterfahren kann? sys.exit() funktioniert nicht mit .. Wo ist das Problem? Edit: geändert Einzug als in meiner Datei import sys def Chiffre() string = Eingang ("ein Wort eingeben") print ("Sie Wort eingegeben:" string) rechts = "" offset = int (Eingang ("Geben Sie, wie viel die Verschiebungschiffre"))Wie ein Skript in 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

Sind Sie ** ** sicher, dass Sie eine 'sys.exit()' bekommen? – Idos

+0

@Idos Ich bin sicher, dass er nicht (oder wäre ich, wenn der Code korrekt eingerückt ist). – Holloway

+0

Ihre Funktionsdefinition für 'sifra' nicht richtig writen, einrücken Sie es bitte richtig. –

Antwort

0

znovu == "N" or "n" ist nicht das, was Sie wollen. Sie müssen znovu vergleichen, die beide Satz Werte:

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

Eine weitere Alternative der in den Kommentaren Wäre Vorgeschlagen oder einfach:

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

Dass niemand Eingänge Unter der Annahme, ‚Nn‘ als Antwort, aber auch sie IF (Versehentlich) tut so kann dies nach wie vor als ‚Nein‘ in Betracht gezogen werden.

+1

: '' 'elif wieder in [ 'N', 'N']:' '' – Owen

+0

Wenn ich 'elif (wieder == 'N') oder (wieder == 'n'): sys.exit() 'Programm und sofort in cmd Fehler schließt, ist„unindent passen keine äußeren Einrückungsebene“und wenn die' Corrette Auch wenn (re ==‚und‘OR‚a‘): Chiffre()' ', dass, wenn (== wieder ‚a‘) oder (wieder == ‚a‘): Chiffre() 'ist der gleiche Fehler – pandik70

+0

@ pandik70, stellen Sie sicher, dass Sie nicht Tabs und Leerzeichen im Code Misch – ForceBru