标签:
def calc(numbers): sum = 0 for n in numbers: sum = sum + n * n return sum print (calc([1,2,4]))
def calc(numbers): sum = 0 for n in numbers: sum = sum + n * n return sum print (calc([1,2,4]))
现在返回的值又是什么呢:结果返回1
为什么会返回1,仔细分析一下,代码我将return进行了缩进,这时return是基于for的每一个循环返回一个值,并且return当第一个条件满足时就不在往下执行了,所以当传入第一个1时,sum=0+1*1=1,return 1就不再进行后面的循环了。而return不缩进那么return和for是同一级,当所有的for执行完后才执行return然后返回最终的结果
用将return替换成print更容易理解
def calc(numbers): sum = 0 for n in numbers: sum = sum + n * n print (sum) print (calc([1,2,4]))
21
None
>>>
而缩进print
def calc(numbers): sum = 0 for n in numbers: sum = sum + n * n print (sum) print (calc([1,2,4]))
1
5
21
None
>>>
由于prInt不像return不会满足条件就不往下执行,所以打印出了每一次循环的值。
使用缩进要明白每一行缩进的意义,否则返回的结果可能不是正确的结果
备注: 作者:pursuer.chen 博客:http://www.cnblogs.com/chenmh 本站点所有随笔都是原创,欢迎大家转载;但转载时必须注明文章来源,且在文章开头明显处给明链接。 《欢迎交流讨论》 |
标签:
原文地址:http://www.cnblogs.com/chenmh/p/5689305.html