繁体   English   中英

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

[英]How do I avoid the 'ZeroDivisionError: division by zero' error when a user enters a string the first two instances using my code below?

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)

检查零:

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')

这是你想要的? 我还简化了您的代码以摆脱不必要的检查

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM