4 回答

TA貢獻1817條經(jīng)驗 獲得超6個贊
您將所有輸入的數(shù)字存儲在列表中并從那里計算:
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

TA貢獻1850條經(jīng)驗 獲得超11個贊
每次接受正數(shù)時求總和并計算每個數(shù)字。最后你可以確定平均值
maximum = None
minimum = None
sum_of_positive = 0
count_of_positive = 0
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
if num > 0:
sum_of_positive = sum_of_positive + num
count_of_positive = count_of_positive + 1
if count_of_positive > 0:
average_of_positive = sum_of_positive / count_of_positive
else:
average_of_positive = 0
print ("The Maximum is ", maximum)
print ("The Minimum is ", minimum)
print ("The Average of Positive Numbers is ", average_of_positive)

TA貢獻1794條經(jīng)驗 獲得超8個贊
使用max
、min
和 等庫函數(shù)sum
。
例如max([1,2,3,5,11,8])
給你 11,min([1,2,3,5,11,8])
給你 1,sum([1,2,3,5,11,8])
給你 30。
假設(shè)您將數(shù)字讀入名為 的列表numbers
,然后獲取最大數(shù)字為max(numbers)
,最小數(shù)字為min(numbers)
,平均值為sum(numbers)/len(numbers)
。
請注意,如果您使用 python 2,那么您需要在除法之前轉(zhuǎn)換為 float,如下所示float(sum(numbers))/len(numbers)
。

TA貢獻1824條經(jīng)驗 獲得超5個贊
您需要添加一個counter
變量來了解循環(huán)中有多少輪。而且你還需要一個total
變量來總結(jié)所有num
然后你只需要打印總計/計數(shù)器
添加回答
舉報