【问题标题】:Averaging numbers in list平均列表中的数字
【发布时间】:2019-11-13 03:16:03
【问题描述】:

找出 5 个数字 求数字的平均值

#import statistics
print("enter 5#s")
num1 = int(input())
num2 = int(input())
num3 = int(input())
num4 = int(input())
num5 = int(input())
numbers = [num1, num2, num3, num4, num5]
numsum = sum(numbers)
print("sum is:", numsum)
#Above list is working
#fix below
def Average(numbers):
    return sum(numbers) / len(numbers)
print("AVG = ", round(Average, 2))

错误 回溯(最近一次通话最后): 文件“main.py”,第 15 行 print("AVG = ", round(Average, 2)) TypeError: 类型函数定义_round_method

【问题讨论】:

    标签: python function math sum average


    【解决方案1】:

    最后一行(对print的调用)

    def Average(numbers):
        return sum(numbers) / len (numbers)
        print("AVG = ", round(Average, 2))
    

    需要不缩进(向左移动,在函数外部)并且需要以numbers 作为参数调用函数,如下所示:

    def Average(numbers):
        return sum(numbers) / len (numbers)
    print("AVG = ", round(Average(numbers), 2))
    

    您的代码可以简化和改进,可能是这样的:

    num_list = []
    for i in range(5):
        s = input('Enter the {}. number: '.format(i+1))
        n = int(s)
        num_list.append(n)
    
    the_sum = sum(num_list)
    print('Sum:', the_sum)
    
    the_avg = round(the_sum / len(num_list), 2)
    print('Avg:', the_avg)
    

    示例运行:

    Enter the 1. number: 7
    Enter the 2. number: 5
    Enter the 3. number: 4
    Enter the 4. number: 4
    Enter the 5. number: 4
    Sum: 24
    Avg: 4.8
    

    【讨论】:

    • @blackstar 我添加了一些代码改进建议,例如,使用循环而不是多次重复相同的代码。
    【解决方案2】:

    需要在末尾多加一行,应该是:

    Average(numbers)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-01-16
      • 2015-06-06
      • 1970-01-01
      • 1970-01-01
      • 2021-03-18
      • 2020-02-14
      • 1970-01-01
      • 2023-03-10
      相关资源
      最近更新 更多