2017-02-26 222 views
-3

我一直在練習python 3.6,我有這個程序在python中構建一個簡單的計算器。Python簡單的計算器程序

#Calculator Program 

#This variable tells the loop whether it should loop or not. 
#1 means loop. Everything else means don't loop. 

loop=1 

#This variable holds the user's choice in the menu: 

choice=0 

while loop==1: 
    print("Welcome to calclator.py") 

    print("Your options are") 
    print("") 
    print("1.Addition") 
    print("2.Subtraction") 
    print("3.Multiplication") 
    print("4.Divison") 
    print("5.Quit calculator.py") 
    print("") 

    choice=input("Choose your option:") 
    if choice==1: 
     add1=input("Add this:") 
     add2=input("to this:") 
     print(add1,"+",add2,"=",add1+add2) 
    elif choice==2: 
     sub2=input("Subtract this:") 
     sub1=input("from this:") 
     print(sub1,"-",sub2,"=",sub1-sub2) 
    elif choice==3: 
     mul1=input("Multiply this:") 
     mul2=input("with this:") 
     print(mul1,"*",mul2,"=",mul1*mul2) 
    elif choice==4: 
     div1=input("Divide this:") 
     div2=input("by this:") 
     print(div1,"/",div2,"=",div1/div2) 
    elif choice==5: 
     loop=0 

print("Thank you for using calculator.py") 

按我的實踐教程一切都看起來不錯,但是當我運行代碼的輸出是這樣的:

Welcome to calclator.py 
Your options are 

1.Addition 
2.Subtraction 
3.Multiplication 
4.Divison 
5.Quit calculator.py 

Choose your option: 

當我在選項1鍵入它給了我這樣的輸出:

Choose your option:1 
Welcome to calclator.py 
Your options are 

1.Addition 
2.Subtraction 
3.Multiplication 
4.Divison 
5.Quit calculator.py 

Choose your option: 

我無法前進,它給了我相同的輸出,無論我輸入什麼選項。任何人都可以請幫助我什麼是我在代碼中缺少的是什麼?

+1

測試你的代碼中較小的部分,請與閱讀有關[MCVE] –

回答

0

input返回一個字符串;您正在將該值與一系列整數進行比較。首先將結果轉換爲整數。

choice=input("Choose your option:") 
try: 
    choice = int(choice) 
except ValueError: 
    continue # Go back to the top of the loop and ask for the input again 

if choice==1: 
    add1=int(input("Add this:")) 
    add2=int(input("to this:")) 
    print(add1,"+",add2,"=",add1+add2) 

# etc 

或者,乾脆結果比較字符串:

if choice == "1": 

請注意,您必須轉換像值和add1add2整數,因爲"1" + "2" == "12",而1 + 2 == 3

+0

它的工作我已經嘗試過了 –

0

input返回字符串,並且您將它與整數進行比較,因此if都不會起作用。

簡單地使choice整數:

choice = int(input(...))