2017-04-21 5 views
0

私はこのコードを作成しましたが、問題は誰かがstmやmtsと違う何かをタイプするとエラーメッセージを表示して停止し、それを継続してコードを実行する必要があるためです。 while文はcontinue文でループしますが、正しく動作しません。エラーメッセージを迷惑メールにしてしまいます。メッセージをスパムすることなく実行し続ける方法や、後で停止する方法を教えてください。エラーが発生した場合にプログラムを続行/再起動するにはどうすればよいですか?

ここでは、コードです:

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() 

答えて

0

移動usChoice = STR(入力( "SAR用MADタイプSTMへとSARタイプMTSへのMADのため:")) は、whileループ内および他のあなたの最後を削除声明は、あなたがそこにリターンを置くべきではありません、あなたは、

プリント(「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

はあまりそれが動作ありがとうエラーメッセージを書くことができます私は本当にそれに注意を払っていなかったが、私は知っていた私に言ったように、私はあなたが私のことを言ったように、usChoice = str(入力( "SARをMADタイプstmとMADをSARタイプmts:")私のコードshoudは、2つ前にそれほど多くなかったたびに他の変数を取り戻してしまったので、あなたは多くの間違いを解決しました。私はとても感謝しています! –

関連する問題