首页 > 解决方案 > 计算 n 个数字的最大值、最小值和平均值

问题描述

问题是编写一个程序,要求用户输入一系列数字并输出,系列中的最大数字,系列中的最小数字,以及所有正数的平均值。

我当前的代码计算了最小值和最大值,但我不知道如何编写代码来计算平均值。

maximum = None
minimum = None
num = None

while True:
     inp = input("PLease enter a number: ")
     if inp == "#" : 
     break
     try:
    num=float(inp)
    except:
    print ("Error with this input")
    continue

    if maximum is None:
    maximum = num
    minimum = num

    if num>maximum: 
    maximum=num
    if num<minimum: 
    minimum=num

print ("The Maximum is ", maximum)
print ("The Minimum is ", minimum)

标签: pythonmaxaveragemin

解决方案


您将所有输入的数字存储在一个列表中并从那里计算:

def avg_pos(d):
    if len(d) == 0: # avoid div by 0
        return 0
    return sum(d)/len(d)

data = []
while True:
    try: 
        n = input("Number: ")
        if n == "#": 
            break
        n = int(n)
        data.append(n)
    except ValueError:
        print("Not a number")

print( f"Min: {min(data)}  Max: {max(data)}  AvgP: {avg_pos([d for d in data if d>0])}" )

输出:

Number: 4
Number: 5
Number: 6
Number: -2
Number: -99
Number: 73
Number: #
Min: -99  Max: 73  AvgP: 22.0 

推荐阅读