在Python中更容易找到一组数字的平均值

2024-10-03 13:29:59 发布

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

我需要一种更简单的方法来使用Python计算一组数字的平均值。我的代码冗长乏味,我不想花费更多的精力添加5以上的elif语句:

aom = input("How many numbers would you like to average?")

if str(aom) == '1':
    num = input("Enter a number:")
    listt = [num]
    total = num
    nums = (num)
elif str(aom) == '2':
    num = input("Enter a number:")
    num1 = input("Enter a number:")
    listt = [num,num1]
    total = (int(num) + int(num1))
    nums = [num, num1]
elif str(aom) == '3':
    num = input("Enter a number:")
    num1 = input("Enter a number:")
    num2 = input("Enter a number:")
    listt = [num,num1,num2]
    total =(int(num) + int(num1) + int(num2))
    num = [num, num1, num2]
elif str(aom) == '4':
    num = input("Enter a number:")
    num1 = input("Enter a number:")
    num2 = input("Enter a number:")
    num3 = input("Enter a number:")
    listt = [num,num1,num2,num3]
    total = (int(num) + int(num1) + int(num2) + int(num3))
    nums = [num, num1, num2, num3]
elif str(aom) == '5':
    num = input("Enter a number:")
    num1 = input("Enter a number:")
    num2 = input("Enter a number:")
    num3 = input("Enter a number:")
    num4 = input("Enter a number:")
    listt = [num,num,num,num,num]
    total = (int(num) + int(num1) + int(num2) + int(num3) + int(num4))
    nums = [num, num1, num2, num3, num4]
else:
    print("Sorry, please pick 1-5")
    exit()
size = len(listt)
average = (int(total)/int(size))
print("The numbers given were", nums)
print("The average is", average)

这是一个初学者的编码问题。你知道吗


Tags: numberinputnuminttotalaverageenterelif
3条回答

考虑使用循环:

answers = int(input("How many numbers would you like to average? "))

numbers = []

for answer in range(1, answers + 1):
    number = int(input("Enter number {}: ".format(answer)))
    numbers.append(number)

average = sum(numbers) / answers
print("The numbers given were:", numbers)
print("The average is:", average)

示例

> python3 test.py
How many numbers would you like to average? 3
Enter number 1: 10
Enter number 2: 13
Enter number 3: 19
The numbers given were: [10, 13, 19]
The average is: 14.0
>

如果重写脚本以将所有数字收集到一个列表中,则可以将该列表传递给sum()函数以获取总数。然后把总数除以列表的长度。你知道吗

average=sum(listofnumbers)/len(listofnumbers)

有一个通用的方法来实现你的功能。你知道吗

aom = int(input("How many numbers would you like to average?: "))
x = [int(input('{}: '.format(i+1))) for i in range(aom) ]
print(sum(x)/ aom )
  1. 设置元素数。你知道吗
  2. 通过循环阅读列表。你知道吗
  3. 把所有的元素加起来,计算平均值。你知道吗

如果list现在很难理解。然后还可以使用while循环。你知道吗

aom = int(input("How many numbers would you like to average?: "))
i = 1
sumx = 0
while i <= aom:
    sumx +=int(input('{}: '.format(i)))
    i += 1 

print(sumx/ aom ) 

相关问题 更多 >