4 回答
TA貢獻(xiàn)1817條經(jīng)驗(yàn) 獲得超6個(gè)贊
您將所有輸入的數(shù)字存儲(chǔ)在列表中并從那里計(jì)算:
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貢獻(xiàn)1850條經(jīng)驗(yàn) 獲得超11個(gè)贊
每次接受正數(shù)時(shí)求總和并計(jì)算每個(gè)數(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貢獻(xiàn)1794條經(jīng)驗(yàn) 獲得超8個(gè)贊
使用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)。
請(qǐng)注意,如果您使用 python 2,那么您需要在除法之前轉(zhuǎn)換為 float,如下所示float(sum(numbers))/len(numbers)。
TA貢獻(xiàn)1824條經(jīng)驗(yàn) 獲得超5個(gè)贊
您需要添加一個(gè)counter變量來了解循環(huán)中有多少輪。而且你還需要一個(gè)total變量來總結(jié)所有num
然后你只需要打印總計(jì)/計(jì)數(shù)器
添加回答
舉報(bào)
