I tried a make a calculator but it gives an error
Question:
Hi I’m new at the python and trying to make basic calculator, but when i try to start it gives a string is not int error, can u help me please?
def Add(number1, number2):
return number1+number2
def Minus (number1, number2):
return number1-number2
def Multiply (number1, number2):
return number1*number2
def Divide (number1, number2):
return number1/number2
print("Operation?")
print("1: Add")
print("2: Minus")
print("3: Multiply")
print("4: Divide")
operation= int(input("Please selecet an operation..."))
number1= int(input("Enter Number1"))
number2= int(input("Enter Number2"))
if operation==1:
print("Answer= "+ int(number1+number2))
elif operation==2:
print("Answer= "+ int(number1-number2))
elif operation==3:
print("Answer= "+ int(number1*number2))
elif operatipn==4:
print("Answer= "+ int(number1/number2))
else:
print("You didn't choose anything in list")
Answers:
The problem here is that you are trying to add an int object to a str object in the print statements:
print("Answer= "+ int(number1-number2))
you just need to convert it to str not an int because the result of the – or + operations on int objects will be int:
print("Answer= "+ str(number1-number2))
Try using , instead of + :
def Add(number1, number2):
return number1+number2
def Minus (number1, number2):
return number1-number2
def Multiply (number1, number2):
return number1*number2
def Divide (number1, number2):
return number1/number2
print("Operation?")
print("1: Add")
print("2: Minus")
print("3: Multiply")
print("4: Divide")
operation= int(input("Please selecet an operation..."))
number1= int(input("Enter Number1"))
number2= int(input("Enter Number2"))
if operation==1:
print("Answer= ", int(number1+number2))
elif operation==2:
print("Answer= ", int(number1-number2))
elif operation==3:
print("Answer= ", int(number1*number2))
elif operatipn==4:
print("Answer= ", int(number1/number2))
else:
print("You didn't choose anything in list")
You can solve the above question in below following way as well without if condition
Dictionary is most powerful in this case when you don’t want to write 'N'
number of times the if statements
First way :
def Add(number1, number2):
return number1+number2
def Minus (number1, number2):
return number1-number2
def Multiply (number1, number2):
return number1*number2
def Divide (number1, number2):
return number1/number2
number1 = int(input('Enter number 1 : '))
number2 = int(input('Enter number 2 : '))
myuserinput = int(input('Enter the option : '))
myoption = { 1 : Add(number1, number2) , 2 : Minus(number1, number2) , 3 : Multiply(number1, number2) , 4:Divide (number1, number2) }
myoption.get(myuserinput,'Please provide proper input')
Second way :
def Add(number1, number2):
result = number1 + number2
return 'Answer : {0}'.format(result)
def Minus (number1, number2):
result = number1 - number2
return 'Answer : {0}'.format(result)
def Multiply (number1, number2):
result = number1 * number2
return 'Answer : {0}'.format(result)
def Divide (number1, number2):
result = number1 / number2
return 'Answer : {0}'.format(result)
number1 = int(input('Enter number 1 : '))
number2 = int(input('Enter number 2 : '))
myuserinput = int(input('Enter the option : '))
myoption = { 1 : Add(number1, number2) , 2 : Minus(number1, number2) , 3 : Multiply(number1, number2) , 4:Divide (number1, number2) }
myoption.get(myuserinput,'Please provide proper input')
With print you should type a coma "," instead of "+"
print("Answer= ", int(number1+number2))
Try it and see, if it doesn’t work then try removing int() from your prints!
print("Answer= ", number1+number2)
Good luck!
Hi I’m new at the python and trying to make basic calculator, but when i try to start it gives a string is not int error, can u help me please?
def Add(number1, number2):
return number1+number2
def Minus (number1, number2):
return number1-number2
def Multiply (number1, number2):
return number1*number2
def Divide (number1, number2):
return number1/number2
print("Operation?")
print("1: Add")
print("2: Minus")
print("3: Multiply")
print("4: Divide")
operation= int(input("Please selecet an operation..."))
number1= int(input("Enter Number1"))
number2= int(input("Enter Number2"))
if operation==1:
print("Answer= "+ int(number1+number2))
elif operation==2:
print("Answer= "+ int(number1-number2))
elif operation==3:
print("Answer= "+ int(number1*number2))
elif operatipn==4:
print("Answer= "+ int(number1/number2))
else:
print("You didn't choose anything in list")
The problem here is that you are trying to add an int object to a str object in the print statements:
print("Answer= "+ int(number1-number2))
you just need to convert it to str not an int because the result of the – or + operations on int objects will be int:
print("Answer= "+ str(number1-number2))
Try using , instead of + :
def Add(number1, number2):
return number1+number2
def Minus (number1, number2):
return number1-number2
def Multiply (number1, number2):
return number1*number2
def Divide (number1, number2):
return number1/number2
print("Operation?")
print("1: Add")
print("2: Minus")
print("3: Multiply")
print("4: Divide")
operation= int(input("Please selecet an operation..."))
number1= int(input("Enter Number1"))
number2= int(input("Enter Number2"))
if operation==1:
print("Answer= ", int(number1+number2))
elif operation==2:
print("Answer= ", int(number1-number2))
elif operation==3:
print("Answer= ", int(number1*number2))
elif operatipn==4:
print("Answer= ", int(number1/number2))
else:
print("You didn't choose anything in list")
You can solve the above question in below following way as well without if condition
Dictionary is most powerful in this case when you don’t want to write 'N'
number of times the if statements
First way :
def Add(number1, number2):
return number1+number2
def Minus (number1, number2):
return number1-number2
def Multiply (number1, number2):
return number1*number2
def Divide (number1, number2):
return number1/number2
number1 = int(input('Enter number 1 : '))
number2 = int(input('Enter number 2 : '))
myuserinput = int(input('Enter the option : '))
myoption = { 1 : Add(number1, number2) , 2 : Minus(number1, number2) , 3 : Multiply(number1, number2) , 4:Divide (number1, number2) }
myoption.get(myuserinput,'Please provide proper input')
Second way :
def Add(number1, number2):
result = number1 + number2
return 'Answer : {0}'.format(result)
def Minus (number1, number2):
result = number1 - number2
return 'Answer : {0}'.format(result)
def Multiply (number1, number2):
result = number1 * number2
return 'Answer : {0}'.format(result)
def Divide (number1, number2):
result = number1 / number2
return 'Answer : {0}'.format(result)
number1 = int(input('Enter number 1 : '))
number2 = int(input('Enter number 2 : '))
myuserinput = int(input('Enter the option : '))
myoption = { 1 : Add(number1, number2) , 2 : Minus(number1, number2) , 3 : Multiply(number1, number2) , 4:Divide (number1, number2) }
myoption.get(myuserinput,'Please provide proper input')
With print you should type a coma "," instead of "+"
print("Answer= ", int(number1+number2))
Try it and see, if it doesn’t work then try removing int() from your prints!
print("Answer= ", number1+number2)
Good luck!