-4

ピタゴラスの定理式を計算できるコードを作成しようとしていますが、「raw_input()」からの回答を式に追加してそれらを合計するのに問題があります。私は何か間違ったことをしていますが、何がよくわかりません...助けてください!

need = raw_input("What do you need to Use?")

if need == "pythagoras" or "Pythagoras":
    pythagoras = raw_input("What side do you Need?")

if pythagoras == "hypotenuse" or "Hypotenuse":
    k1 = raw_input("Known Side 1")
    k2 = raw_input("Known Side 2")
    print eval('str(k1) + str(k2)')
4

2 に答える 2

2

int()またはを使用float()して、ユーザーからの入力数値を整数/浮動小数点数に変換し、数式をそれらに適用する必要があります。

need == "pythagoras" or "Pythagoras"と同等です:

(need == "pythagoras") or "Pythagoras"したがって、need等しい場合"pythagoras"、これはTrueelse return "Pythagoras"(つまり、True 値) を返します。つまり、入力が何であれ、if条件は常に変わります。True

作業コード:

need = raw_input("What do you need to Use?")
#use a while loop loop, this will continuously ask for the user input
#until he doesn't enters a corrects one.
while need.lower() != "pythagoras":  
    print "Invalid choice! try again"
    need = raw_input("What do you need to Use?")

pythagoras = raw_input("What side do you Need?")

if pythagoras.lower() == "hypotenuse":
    k1 = int(raw_input("Known Side 1: ")) #use int() to convert the user input to integers
    k2 = int(raw_input("Known Side 2: ")) # use float() if you want floats
    print (k1**2 + k2**2)**0.5            # now apply the formula
于 2013-06-14T11:40:56.583 に答える
1

いくつかの問題があります。

  • or期待どおりに機能していません。Python では、 と言う必要がありますif need == "pythagoras" or need == 'Pythagoras'。これは、2 番目の if ステートメントでも同じです。

  • を使用eval() するのは悪い考えです。あなたの結果はそれなしで簡単に得ることができます:

    str(k1) + str(k2)
    

ただし、stringraw_input()を返します。これは(私は推測しています)整数に変換したいと考えています。次の関数を使用してこれを行うことができます。int()

k1 = int(raw_input("Known Side 1"))
k2 = int(raw_input("Known Side 2"))

入力は文字列ではなく整数になります。

また、 if ステートメントに対して単にif need.lower() == 'pythagoras'andを実行することもできます。if pythagoras.lower() == 'hypotenuse'

于 2013-06-14T11:38:39.930 に答える