Max Eastman
Max Eastman

Reputation: 33

Basic Python calculator help: print cannot divide by 0

I'm asked to code a calculator in python and here is what I have that works:

operation = input("please input your operation (+,-,*,/): ")
number_1 = int(input("Please enter your first number: ")) 
number_2 = int(input("Please enter your second number: ")) 

if operation == '+': 
    print("result: ",(number_1 + number_2)) 

elif operation == '-': 
    print("result: ",(number_1 - number_2)) 

elif operation == '*': 
    print("result: ",(number_1 * number_2)) 

elif operation == '/':
    print("result: ",(number_1 / number_2))

else: 
    print("Invalid input") 

Now, I just want to add a qualifier that if the user inputs a 0 as "number_2", the program prints "Error! Cannot divide by 0!!!"

Upvotes: 3

Views: 1934

Answers (4)

Umesh Yadav
Umesh Yadav

Reputation: 1200

We can't divide by 0.

But solve this using exception handling Python exception handling

see here why can't divide by zero

operation = input("please input your operation (+,-,*,/): ")
number_1 = int(input("Please enter your first number: "))
number_2 = int(input("Please enter your second number: "))
try:
    if operation == '+':
       print("result: ",(number_1 + number_2)) 
    elif operation == '-':
       print("result: ",(number_1 - number_2))
    elif operation == '*': 
       print("result: ",(number_1 * number_2)) 
    elif operation == '/':
       print("result: ",(number_1 / number_2)) 
    else:
       print("Invalid input")
except ZeroDivisionError:
       print ("You can't enter number_2 Zero !!!")

Upvotes: 0

pwxcoo
pwxcoo

Reputation: 3273

nest a if in your '/' judgement code segment.

operation = input("please input your operation (+,-,*,/): ")
number_1 = int(input("Please enter your first number: ")) 
number_2 = int(input("Please enter your second number: ")) 

if operation == '+': 
    print("result: ",(number_1 + number_2)) 

elif operation == '-': 
    print("result: ",(number_1 - number_2)) 

elif operation == '*': 
    print("result: ",(number_1 * number_2)) 

elif operation == '/':
    if number_2 == 0:
        print("Error! Cannot divide by 0!!!")
    else:
        print("result: ",(number_1 / number_2))

else: 
    print("Invalid input") 

Upvotes: 2

ksbg
ksbg

Reputation: 3284

One option would be to just check if number_2 contains zero before performing the calculation:

elif operation == '/':
    if number_2 != 0:
        print("result: ",(number_1 / number_2))
    else:
        print("Cannot divide by 0")

An alternative would be to catch the ZeroDivisionError that is thrown whenever you try to divide by 0:

elif operation == '/':
    try:
        print("result: ",(number_1 / number_2))
    except ZeroDivisionError:
        print("Cannot divide by 0")

Upvotes: 4

Parul
Parul

Reputation: 397

Change your code from :

operation = input("please input your operation (+,-,*,/): ")
number_1 = int(input("Please enter your first number: ")) 
number_2 = int(input("Please enter your second number: ")) 

if operation == '+': 
print("result: ",(number_1 + number_2)) 

elif operation == '-': 
print("result: ",(number_1 - number_2)) 

elif operation == '*': 
print("result: ",(number_1 * number_2)) 

elif operation == '/':
print("result: ",(number_1 / number_2))

else: 
print("Invalid input") 

To:

operation = input("please input your operation (+,-,*,/): ")
number_1 = int(input("Please enter your first number: ")) 
number_2 = int(input("Please enter your second number: ")) 

if operation == '+': 
print("result: ",(number_1 + number_2)) 

elif operation == '-': 
print("result: ",(number_1 - number_2)) 

elif operation == '*': 
print("result: ",(number_1 * number_2)) 

elif operation == '/':
   if number_2 == 0 :
      print ("Error! Cannot divide by 0!!!")
   else:
      print("result: ",(number_1 / number_2))

else: 
print("Invalid input") 

Upvotes: 3

Related Questions