2017-04-21 2 views
0

Pendant que j'apprenais Python j'ai créé ce code mais le problème est quand quelqu'un tape quelque chose de différent de stm ou mts il affiche juste le message d'erreur et s'arrête et j'en ai besoin pour continuer et relancer le code par lui-même tout en bouclant avec une instruction continue mais ça ne marche pas correctement ça continue juste à spammer le message d'erreur, s'il vous plaît des idées comment faire fonctionner mon code sans spammer le message ou s'arrêter après ça..et merci beaucoup!Comment faire pour continuer le programme/redémarrer quand il y a une erreur?

Voici le code:

print("Welcome to MoroccanDirham_SaudiRiyal converter program!") 

def mConv(): 
    def rial_saudi_to_moroccan_dirham(sar): 
     amount = sar * 2.67 
     print("Here is the result: ", amount, "MAD") 

    def moroccan_dirham_to_rial_saudi(mad): 
     amount = mad * 0.37 
     print("Here is the result: ", amount, "SAR") 
    usChoice = str(input("For SAR to MAD type stm and for MAD to SAR type mts: ")) 

    while True: 
     if usChoice == str("stm"): 
      x = int(input("Type the amount of money you want to convert: ")) 
      rial_saudi_to_moroccan_dirham(x) 
      return False 
     elif usChoice == str("mts"): 
      y = int(input("Type the amount of money you want to convert: ")) 
      moroccan_dirham_to_rial_saudi(y) 
      return False 
     elif usChoice != str("stm") or usChoice != str("mts") : 
      print("Error! Please choose between stm and mts.") 
      continue 
      return False 
     else: 
      return True 
mConv() 

Répondre

0

Déplacer usChoice = str (entrée ("Pour SAR type MAD stm et MAD à mts de type SAR:")) intérieur de la boucle while et retirez votre dernière autre déclaration, vous ne devriez pas mettre un retour là-bas, vous pouvez écrire un message d'erreur

d'impression (« Bienvenue au programme de conversion MoroccanDirham_SaudiRiyal! »)

def mConv(): 
    def rial_saudi_to_moroccan_dirham(sar): 
     amount = sar * 2.67 
     print("Here is the result: ", amount, "MAD") 

    def moroccan_dirham_to_rial_saudi(mad): 
     amount = mad * 0.37 
     print("Here is the result: ", amount, "SAR") 


    while True: 
     usChoice = str(input("For SAR to MAD type stm and for MAD to SAR type mts: ")) 
     if usChoice == str("stm"): 
      x = int(input("Type the amount of money you want to convert: ")) 
      rial_saudi_to_moroccan_dirham(x) 
      return False 
     elif usChoice == str("mts"): 
      y = int(input("Type the amount of money you want to convert: ")) 
      moroccan_dirham_to_rial_saudi(y) 
      return False 
     else: 
      print("Invalid choice. Allowed choices"); 
      print("stm - rial to dirham"); 
      print("mts - dirham to rial"); 
mConv() 
+1

Merci beaucoup cela fonctionne, J'aurais dû mettre le usChoice = str (input ("Pour SAR à MAD type stm et pour MAD à SAR type mts:")) dans la boucle while comme tu m'as dit que je n'y avais pas vraiment prêté attention mais je savais que mon code aurait retouché une autre variable chaque fois qu'elle ne l'a pas fait avec les 2 précédentes, tu as effacé beaucoup d'erreurs Sir je suis tellement reconnaissante !! –