-1

抱歉,第一次发帖,初学者 python 用户。

问题如下: 编写一个 Python 程序,允许用户输入任意数量的非负浮点值。用户以任何负值终止输入列表。然后程序打印输入值的总和、平均值(算术平均值)、最大值和最小值。计算中不使用终止负值。

我几乎拥有其中的大部分,尝试了几种不同的方法,但似乎无法让它正确计算平均值和求和。(如果没有负数就不能得到终止,或者也让平均为负,或者和和值一样)

我正在考虑重新开始并使用 def 函数调用。?? 我也开始使用 try-except 语句到达某个地方,但这也分崩离析了。

任何正确方向的建议都值得赞赏!

第一的...

num = []
tot = 0
big = None
small = None

while True:
    numbers = float(input('Enter a positive number, negative to stop: '))
    tot += numbers
    if big is None or numbers > big:
        big = numbers
    if small is None or numbers < small:
        small = numbers
    if numbers < 0:
        break
avg = tot / numbers

print('Sum is:', tot)
print('Average is:',avg)
print('Maximum is:',big)
print('Minimum is:',small)

如果我改变一些东西,我会得到平均值而不是负值,但仍然与最小值相同,只是一些片段......

tot = 0
big = None
small = None
count = 0
while True:
length = count + 1

#etc, etc...then trying to do...

avg = tot/length 

#or... 

avg =str(tot/length)

但仍然卡住了。

4

1 回答 1

0
num = []
tot = 0
small  = None
avg = None
big = None
while True:
    numbers = float(input('Enter a positive number, negative to stop: '))
    if numbers < 0:
        break 
    tot +=numbers
    num.append(numbers)
    if small== None and big == None and avg == None:
        small=numbers; big=numbers; avg = numbers
    else:
        small = min(small, numbers)
        small = max(big, numbers) 


if len(num) > 0:
    avg = tot / len( num)


print('Sum is:', tot)
print('Average is:',avg)
print('Maximum is:',big)
print('Minimum is:',small)

num = []
tot = 0
small  = None
avg = None
big = None
while True:
    numbers = float(input('Enter a positive number, negative to stop: '))
    if numbers < 0:
        break 
    tot +=numbers
    num.append(numbers)

if len(num) > 0:
    avg = tot / len( num)
    big = max(num)
    small = min(num)


print('Sum is:', tot)
print('Average is:',avg)
print('Maximum is:',big)
print('Minimum is:',small)
于 2019-07-28T07:31:58.513 回答