0

私は 2.7 で動作する通貨コンバーターを持っていますが、ユーザーが処理できないデータをプログラムが取得しないようにしたいと考えています。

  1. 大文字と小文字を区別せずにユーザー入力を理解させる方法
  2. ユーザー入力が間違っている場合にプログラムを再起動する方法。つまり、休憩ですが、いくつかの方法を検索してテストしたにもかかわらず、これを行う方法がわかりませんでした。

プリセット数値を使用した最初の乗算セットの効果的な複製は重要ではないため、残りのコードは残しました。

currency = str(raw_input ("""what currency would you like to covert: GBP, EURO, USD OR YEN?
"""))
exchange = str(raw_input("""what currency would you like in exchange? : GBP, EURO, USD OR YEN?
                              """))
amount = int(input("""how much would you like to convert?
                      """))
decision = str(raw_input("""Please enter u for user input exchange rate or s for the preset exchange rate
"""))

if decision == "u" :
    user_rate = raw_input("Please enter the current exchange rate")
    exchange_value = int(amount) *  int(user_rate)
    print ("At the user found exchange rate you will receive",exchange_value,exchange)

elif decision == "s" :
    if currency  == "GBP" and exchange == "USD":
        exchange_value= int(amount) * 1.6048
        print ("At the preset exchange rate you will receive",exchange_value,exchange)

    if currency  == "GBP" and exchange == "EUR":
        exchange_value= int(amount) * 1.2399
        print ("At the preset exchange rate you will receive",exchange_value,exchange)
4

2 に答える 2

2

1) ユーザー入力文字列は大文字と小文字を区別せずに比較できます。

if currency.lower() == 'gbp'

また

if currency.upper() == 'GBP'

2)whileループでプログラムを実行できます。条件が満たされない場合はcontinue、ループの次の反復に進むことができます(プログラムを最初から再起動します)

while True:
  # get user input
  # validate user input
  # if input not valid continue, which will "restart" your program
于 2013-05-11T16:23:00.447 に答える