python程序设计

用可变数量参数编写函数,求任意多个数(至少一个数)的平均值。分别用不同数量的参数调用该函数。


def avg(*n):
    return sum(n)/len(n)

print(avg(1))
print(avg(2,3,4,5))

def average(*args):
    if len(args) == 0:
        return 0
    else:
        total = sum(args)
        return total / len(args)

# 测试
print(average(1, 2, 3))  # 2.0
print(average(4, 5, 6, 7))  # 5.5
print(average(10))  # 10.0
print(average())  # 0

  • 你可以参考下这个问题的回答, 看看是否对你有帮助, 链接: https://ask.csdn.net/questions/7528496
  • 这篇博客你也可以参考下:python定义函数接收多个参数,第一个返回值为参数平均值第二个为大于平均数的所有数
  • 你还可以看下python参考手册中的 python- 定义扩展类型:已分类主题- 终结和内存释放
  • 除此之外, 这篇博客: python函数练习题中的 2) 写函数,检查获取传入列表或元组对象的所有奇数位索引对应的元素,并将其作为新列表返回给调用者。 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • print('first'.center(40, '='))
    def a3(arg):
        ret = [ ]
        for i in range(len(arg)):
            if i % 2 == 1:
                ret.append(arg[i])
            else:
                pass
        return ret
    li = [11,22,33,44,55]
    r = a3(li)
    print(li)
    print(r)
  • 您还可以看一下 程序员学院老师的Python数据分析与挖掘从零开始到实战课程中的 认识表、字段、记录和数据库安装小节, 巩固相关知识点
  • 以下回答由chatgpt基于相关博客总结生成:
    def avg(*args):
        # 检查是否是数字
        for num in args:
            if not str(num).isnumeric():
                return "参数中含有非数字值,请重新输入"
        # 计算平均值
        return sum(args) / len(args)
    
    # 测试函数,输出
    print(avg(1,2,3,4,5)) # 3.0
    print(avg(1,2)) # 1.5
    print(avg(1,2,3,4,5,6,7,8,9,10)) # 5.5
    print(avg(1,2,3,'a','b','c')) # 参数中含有非数字值,请重新输入
    

    解释:

    1. 定义一个函数 avg(),使用不定长参数,参数前加*,将所有参数变为元组。
    2. 使用for循环遍历所有参数,使用 Python 内置的 isnumeric() 方法检查每一个参数是否是数字类型,如果不是,直接返回提示信息。
    3. 如果都为数字类型,则利用内置函数sum()求和,除以len(args)就可以得到平均数。
    4. 最后调用函数测试,传入不同数量的参数,得到对应的平均数。

    参考资料:

    1. Python的内置函数:https://www.runoob.com/python/python-built-in-functions.html
    2. Python isnumeric() 方法:https://www.runoob.com/python/att-string-isnumeric.html