python - 计算 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)
解决方案
您将所有输入的数字存储在一个列表中并从那里计算:
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
推荐阅读
- swift - Swift-在调用完成处理程序之前等待异步for-in循环完成
- javascript - 将 Javascript 集成到 aspx 页面
- vue-cli-3 - 如何使用 TailwindCSS 为 vue-cli-3 项目配置 PurgeCSS?(包括响应类)
- php - CSS 行高规则被忽略
- php - 如何在 PHP 中的函数中仅在页面上回显一次?
- c# - 在同一网格中使用“PreviewMouseLeftButtonDown”事件时,“CurrentCellChanged”事件不起作用
- java - 如何通过Java将RelativeLayout添加到另一个RelativeLayout中?
- ionic-framework - ionic cli 4.5.0 样式属性不适用
- java - 如何通过 DB2 (v8.2) JDBC URL 修改编码字符?
- python - 如何检查正则表达式中多个点的最小/最大长度