2017-04-18 7 views
0

opに値を入力しようとすると、常にelse文が実行されます。プログラミングが正しく動作しないのはなぜですか? if文が評価されておらず、Pythonのelse文に直接ジャンプします

ここで問題は何ですか?私はあなたが最初の2つの数字を望んで操作を入力する場合、また、あなたが整数としてtypped番号をキャストする必要があり、正常に動作しているプログラミング

print "Basic Calculator" 
print "Options:" 
print "For addition, type add" 
print "For subtraction, type sub" 
print "For multiplication, type mul" 
print "For division, type div" 

op = raw_input() 
num1 = raw_input("Enter first number: ") 
num2 = raw_input("Enter second number: ") 

if op == 'sum': 
    print "The sum is: ", num1 + num2 
elif op == 'sub': 
    if num1 > num2: 
     print "The subtraction is: ", num1 - num2 
    else: 
     print "The subtraction is: ", num1 - num2 
elif op == 'mul': 
    print "The product is: ", num1 * num2 
elif op == 'div': 
    print "The division is: ", num1/num2 
else: 
    print "You entered an incorrect operation" 
+0

それはちょうど私にとって完璧に動作します:) –

+0

私はタイプキャスティングを除いてここに何の問題も見ませんでした。あなたが与えた入力とそれぞれの出力を提供してください – sbk

+0

あなたは**平等操作が評価されていないことをどのように証明していますか?つまり、通常は関数を追加する必要があります。 'def compare(val、target):print"%rと%rの比較 "%(val、target); return val == target'し、その関数を 'if'文に入れて副作用(print文)を探します。 –

答えて

1

に新しいです:

print "Basic Calculator" 
print "Options:" 
print "For addition, type add" 
print "For subtraction, type sub" 
print "For multiplication, type mul" 
print "For division, type div" 

op = raw_input("Enter the operation wanted (add, sub, mul, div): ") 
num1 = raw_input("Enter first number: ") 
num2 = raw_input("Enter second number: ") 

intNum1 = int(num1) 
intNum2 = int(num2) 
if op == 'sum': 
    print "The sum is: ", intNum1 + intNum2 
elif op == 'sub': 
    if intNum1 > intNum2: 
     print "The subtraction is: ", intNum1 - intNum2 
    else: 
     print "The subtraction is: ", intNum1 - intNum2 
elif op == 'mul': 
    print "The product is: ", intNum1 * intNum2 
elif op == 'div': 
    print "The division is: ", intNum1/intNum2 
else: 
    print "You entered an incorrect operation" 

Try it here

関連する問題