2017-05-23 18 views
-1

私はプログラミング全体をとても新しく、pythonで電卓をプログラムしようとしていました。誰も私のコードが何も印刷していない理由を知っていますか?

calc_version = input("Please choose a calc type (1/2)") 
if calc_version == 1: 
    calc_type = input("Enter Function (Add/Sub/Div/Mult) ") 
    number1 = input("Please enter the first number ") 
    number2 = input("Please enter the second number ") 
    if calc_type == "Add": 
     Sum = float(number1) + float(number2) 
    if calc_type == "Sub": 
     Sum = float(number1) - float(number2) 
    if calc_type == "Div": 
     Sum = float(number1)/float(number2) 
    if calc_type == "Mult": 
     Sum = float(number1) * float(number2) 
    print("The sum of" ,number1, "and" ,number2, "is" ,Sum,) 
if calc_version == 2: 
    number1 = input("Please enter the first number ") 
    operator = ("Please choose an operator (+,-,*,/)") 
    number2 = input("Please enter the second number ") 
    if operator == "+": 
     Sum = float(number1) + float(number2) 
    if operator == "-": 
     Sum = float(number1) - float(number2) 
    if operator == "/": 
     Sum = float(number1)/float(number2) 
    if operator == "*": 
     Sum = float(number1) * float(number2) 
    print("The sum of" ,number1, "and" ,number2, "is" ,Sum,) 

私が最初に下の2番目のバージョンを追加するまで、それは罰金働いていたが、calc_version = input("Please choose a calc type (1/2)"ラインは全く何も印刷として私の全体のコードが壊れているように見えます。 誰かが私に何を間違えているか教えてもらえれば、大きな助けになるでしょう。

+0

'print(repr(calc_version))' - それはなんですか? '1'や' 2'ではなく、 '' 1''や '' 2'''(文字列)のように見えます。 – deceze

+0

命名の相違点、商および製品 'Sum'は変数名にとって奇妙な選択です。どうしてですか? 'result'? –

+1

ほとんどの場合、python 3(括弧で囲まれた印字)を使用していますが、input()はintではなくstrを返します。 str == int – abccd

答えて

3

intと比較する前に、calc_versionをintに変換してコードを実行させることができました。

ので if int(calc_version) == 1: ...if int(calc_version) == 2: ...

それとも、あなたが代わりに'1''2'にcalc_versionを比較することができます。

0

あなたの入力()関数は、デフォルトでは文字列を返しますが、2つの整数(1と2)を比較しています。

cal_versionは1と2(これは等しくない)と比較されるため、if文のいずれも真ではないため、何も実行されていません。他の人が示唆しているように、

calc_version = int(input("Please choose a calc type (1/2)")) 

はすべきことです。

関連する問題