python3循环错误输出时的代码

2024-06-08 23:30:36 发布

您现在位置:Python中文网/ 问答频道 /正文

它是用python3编写的。代码试图将所有输入整数存储到一个列表中,并找到最小值、最大值和平均值。是什么导致这里的输出平均值出错?你知道吗

from statistics import mean, median
def main():
    integers = []
    integer = 0
    while (1):    
        input_str = input('Enter a value (0 to end): ')
        try:
            integer = int(input_str)
        except ValueError:
            print('Invalid input. Type a legit integer.')
        if integer == 0:
            if integers == []:
                print('No integer stored.')

            else:
                print('Min: {0}\nMax: {1}\nAvg: {2:.1f}\n'.format(min(integers),max(integers),sum(integers)/len(integers)))
            break
        elif integer >= -65535 and integer <= 65535:
            integers.append(integer)
        else:
            print('The integer is out of range.')
main()

输出为:

Enter a value (0 to end): 110
Enter a value (0 to end): 60
Enter a value (0 to end): abc
Invalid input. Type a legit integer.
Enter a value (0 to end): 50
Enter a value (0 to end): 90
Enter a value (0 to end): 40
Enter a value (0 to end): hanbagui
Invalid input. Type a legit integer.
Enter a value (0 to end): 0
Min: 40
Max: 110
Avg: 64.3

Tags: tointegersinputifvaluemaintypeinteger
1条回答
网友
1楼 · 发布于 2024-06-08 23:30:36

当您遇到错误时,应该忽略下一个代码段并避免执行下一行,否则您将继续运行下一行并意外地发生一些事情。你知道吗

所以当ValueError发生时,您应该添加代码dojump。你知道吗

try:
            integer = int(input_str)
        except ValueError:
            print('Invalid input. Type a legit integer.')
            continue #important

相关问题 更多 >