Python 当用户使用下面的代码在前两个实例中输入字符串时,如何避免“ZeroDivisionError:DivisionByZero”错误?

Python 当用户使用下面的代码在前两个实例中输入字符串时,如何避免“ZeroDivisionError:DivisionByZero”错误?,python,Python,检查零: nums = [] while True: user_resp = input('Enter a number:') try: if user_resp == 'done': break if user_resp == 'DONE': break num = float(user_resp) nums.append(num) except:

检查零:

nums = []

while True:
    user_resp = input('Enter a number:')

    try:
        if user_resp == 'done':
            break
        if user_resp == 'DONE':
            break
        num = float(user_resp)
        nums.append(num)
    except:
        if user_resp == 'abort':
            exit()
        if user_resp == 'ABORT':
            print('aborting...')
            exit()
        else:
            print('Invalid Input.Type done to calculate or abort to exit.')
avg = sum(nums) / len(nums)
print('Average:', avg)

这就是你要找的吗?我还简化了您的代码,以消除不必要的检查

Erm,为什么不检查您是否被零除?您正在滥用try/except。它应该仅用于可能失败的语句。此外,我认为您不理解测试的目的。。。除了声明。它应该能捕捉到错误。你的代码似乎没有暗示。DYZ-你说的“滥用”是什么意思?更像python:如果nums:或者如果不是nums:。我学习python的第二周。。。。我还没有看到循环外的if-else。我从你那里学到了一些东西。谢谢
nums = []

while True:
    user_resp = input('Enter a number:')

    try:
        if user_resp == 'done':
            break
        if user_resp == 'DONE':
            break
        num = float(user_resp)
        nums.append(num)
    except:
        if user_resp == 'abort':
            exit()
        if user_resp == 'ABORT':
            print('aborting...')
            exit()
        else:
            print('Invalid Input.Type done to calculate or abort to exit.')
if len(nums) == 0:
    print('No numbers provided')
else:
    avg = sum(nums) / len(nums)
    print('Average:', avg)
nums = []

while True:
    user_resp = input('Enter a number: ')

    try:
        if user_resp.lower() == 'done':
            break
        elif user_resp.lower() == 'abort':
            print('aborting...')
            exit()
        num = float(user_resp)
        nums.append(num)

    except:
        print('Invalid Input.Type done to calculate or abort to exit.')
try:
    avg = sum(nums) / len(nums)
    print('Average:', avg)
except ZeroDivisionError as zde:
    print('Cannot divide by zero')