教科书上实例结果不一样?

教科书上实例结果不一样?

def powersum(power,*args):
    total=0
    for i in argsfor i in args:
        print i
        total+=pow(i,power)
        return total
print powersum(2,3,4)

我算出的结果是9
书本上说是25
很奇怪
for i in args中i的值应该是3,4
实际中打印的话等于3
到底应该是9还是25?
我觉得问题就出在return语句上,
*args 把(3,4)作为一个tuple
for in语句正常打印i是显示3,4
如果没有return powersum打印出来结果会是 3 9 4 16
但是return语句在获取第一个total值的时候就跳出函数同时返回第一个的total 值 所以打印出9 是不是这样
那么教科书上的25是怎么出来的???
for i in args:
        print i
        total+=pow(i,power)
return total
注意return的位置
你的是 9..
3 樓的是 25


QUOTE:
原帖由 luffy.deng 于 2009-2-9 13:15 发表
for i in args:
        print i
        total+=pow(i,power)
return total
注意return的位置

又是你帮我解决了问题 太感谢啦
写的时候多看看代码,不要一有问题就想问了
顶一下,跟着学