我在一个学习网站照着敲代码 ,有两端代码我看了好多遍都没差别。。
第一段
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))
第一段调用结果
第二段调用结果
很明显在无实参的情况下,它们的表现结果一样,都是0.0。但是有参数的情况下,第一段代码,始终是用第一个实参值除以参数个数,求商。而第二段代码,则是求多个参数和的平均值。区别在于,第一个段在进行一次循环后就直接跳出了。而第二段则不然。你需要关注的是,python代码是通过缩进规范作用域。