Lorsque j'exécute ceci dans IDLE et que je tape 0 pour la réponse, il imprime le message mais n'arrête pas le programme. Je pensais que le réglage de keepGoing sur False l'arrêterait mais je ne sais pas ce qui se passe. S'il vous plaît aiderComment arrêter ce programme Python
""" crypto.py
Implements a simple substitution cypher
"""
alpha = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
key = "XPMGTDHLYONZBWEARKJUFSCIQV"
def main():
keepGoing = True
while keepGoing:
response = menu()
if response == "1":
plain = input("text to be encoded: ")
print(encode(plain))
elif response == "2":
coded = input("code to be decyphered: ")
print (decode(coded))
elif response == "0":
print ("Thanks for doing secret spy stuff with me.")
keepGoing = False
else:
print ("I don't know what you want to do...")
return main()
def menu():
print("Secret decoder menu")
print("0) Quit")
print("1) Encode")
print("2) Decode")
print("What do you want to do?")
response = input()
return response
def encode(plain):
plain = plain.upper()
new = ""
for i in range(len(plain)):
y = alpha.index(plain[i])
new += key[y]
return new
def decode(coded):
coded = coded.upper()
x = ""
for i in range(len(coded)):
z = key.index(coded[i])
x += alpha[z]
return x
main()
Essayez d'augmenter une erreur de valeur ou en utilisant une instruction break. – mikey