很难尝试在 python 中处理异常

时间:2020-12-29 01:27:47

标签: python

好的,所以我对编码完全陌生,我正在制作一个简单的计算器,我遇到了一个名为 ZeroDivisionError 的错误,我非常努力地将其作为异常处理,但我做不到。如果有人能帮我解决这个问题,那就太好了。谢谢! 代码如下:

def multiply(first_number, second_number):
    print("The Number = ", int(first_number) * int(second_number))


def divide(first_number, second_number):
    print("The Number = ", int(first_number) / int(second_number))


def add(first_number, second_number):
    print("The Number = ", int(first_number) + int(second_number))


def sub(first_number, second_number):
    print("The Number = ", int(first_number) - int(second_number))
    
    
def start():
    first_number = input("Insert first number: ")
    second_number = input("Insert second number: ")
    type = input("You wanna (+)Add, (-)Subtract, (/)Divide or (x)Multiply? ")

    if type == "+":
        add(first_number, second_number)
    elif type == "-":
        sub(first_number, second_number)
    elif type == "/":
        divide(first_number, second_number)
    elif type == "x":
        multiply(first_number, second_number)
    else:
        print("There is no such thing as", type, "!")
        start()

    confirm = input("Do you want to exit the program? (Y)es/(N)o? ")
    if confirm == "N":
        start()
    elif confirm == "Y":
        print("You quit the program.")

    else:
        print("There is no such thing as", confirm, "!")



start()

3 个答案:

答案 0 :(得分:0)

divide函数改成这个

def divide(first_number, second_number):
    try:   
        print("The Number = ", int(first_number) / int(second_number))
    except
        print("You cant divide a number by 0")

答案 1 :(得分:0)

试试这个:

def dev(x, y ):
    try:
        return x/y
    except ZeroDivisionError:
        return x
    
print(dev(1, 0.1))

答案 2 :(得分:0)

就像您已经遇到过的一样,您不能除以零。如果要处理 ZeroDivisionError 异常,则需要使用 try except 构造。例如:

try:
    divide(first_number, second_number)
except ZeroDivisionError:
    print("Oops, you can't divide by 0")