-3

I have been practicing python 3.6 and I have this program to build a simple calculator in 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")

As per my practice tutorial everything looks fine but when I run the code the output is something like this:

Welcome to calclator.py
Your options are

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

Choose your option:

When I type in the option 1 it gives me this output:

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:

I am unable to move forward it is giving me the same output whatever the option I type in. Could anyone please help me whats is that I am missing in the code?

chepner
  • 497,756
  • 71
  • 530
  • 681

2 Answers2

0

input returns a string; you are comparing the value to a series of integers. Convert the result to an integer first.

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

Or, simply compare the result to a string:

if choice == "1":

Note that you must convert values like add1 and add2 to integers, since "1" + "2" == "12", while 1 + 2 == 3.

chepner
  • 497,756
  • 71
  • 530
  • 681
0

input returns a string, and you're comparing it to integers, so none of the ifs will work.

Simply make choice an integer:

choice = int(input(...))
ForceBru
  • 43,482
  • 10
  • 63
  • 98