开发者社区> 问答> 正文

我在一个学习网站照着敲代码 ,有两端代码我看了好多遍都没差别。。

第一段

def average(*args):
    sum = 0.0
    if len(args) == 0:
        return sum
    for x in args:
        sum = sum + x
        return sum / len(args)

第二段

def average(*args):
    sum = 0.0
    if len(args) == 0:
        return sum
    for x in args:
        sum = sum + x
    return sum / len(args)

同样调用

print(average())
print(average(1, 2))
print(average(1, 2, 2, 3, 4))

展开
收起
几许相思几点泪 2019-12-29 18:56:57 828 0
1 条回答
写回答
取消 提交回答
  • 很明显在无实参的情况下,它们的表现结果一样,都是 0.0。但是有参数的情况下,第一段代码,始终是用第一个实参值除以参数个数,求商。而第二段代码,则是求多个参数和的平均值。区别在于,第一个段在进行一次循环后就直接跳出了。而第二段则不然。你需要关注的是,python 代码是通过缩进规范作用域。

    2019-12-29 18:57:06
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
Python第五讲——关于爬虫如何做js逆向的思路 立即下载
Flash Player最新安全特性分析 及绕过思路 立即下载
Flash Player最新安全特性分析及绕过思路 立即下载