使用Python查找某些数字的平均值

2024-05-19 18:41:21 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用Python来做一个问题,比如不停地让用户输入数字。如果没有,程序应该计算这些数字的平均值。似乎我的程序无法从第二个while循环中逃脱,“except”仍然是错误的。这是我的程序:

count =0
total=0
ask=input ("Do you want to enter a number? (Y/N)")
while ask=="Y":
    numbers=float(input("Enter number"))
    count= count+1
    total=total+numbers
    con_ask=input ("Do you want to continue entering a number? (Y/N)")
    if con_ask=="Y":
        numbers=float(input("Enter number"))
        count=count+1
        total=total+numbers
    elif con_ask=="N":
        print ("The average of", count, "numbers is", total/count)
except :
    print ("Zero Division Occured. Average cannot be calculated")

Tags: to程序younumberinputcount数字con
3条回答

我的计算平均数版本:

count = 0
total = 0
ask = raw_input("Do you want to enter a number? (Y/N)")
try:
    while ask == "Y":
        numbers = float(raw_input("Enter number"))
        count = count + 1
        total = total + numbers
        con_ask = raw_input("Do you want to continue entering a number? (Y/N)")
        if con_ask == "Y":
            continue
        elif con_ask == "N":
            print "The average of", count, "numbers is", total / count
            break
except:
    print "Zero Division Occured. Average cannot be calculated"

另一种方法:

numbers = []
ask = raw_input("Do you want to enter a number? (Y/N) ")
while ask == "Y":
   numbers.append(float(raw_input("Enter number ")))
   ask = raw_input("Do you want to continue entering a number? (Y/N) ")

if numbers:
    avg = sum(numbers,0.0) / len(numbers)
    print "The average of {0} numbers is {1}".format(len(numbers),avg)
else:
    print "You didn't enter any numbers"

您似乎在ask == "Y"时循环,但稍后设置变量con_ask。 你能重复使用ask吗?

另外,实现这一点的另一种方法是,首先用输入的所有数字填充一个数组,然后平均值变成:

sum(numbers) / len(numbers)

相关问题 更多 >