Discuss / Python / 求大佬解答:我的return如果放在m=m*i后,就会返回每个乘积的结果,点解?

求大佬解答:我的return如果放在m=m*i后,就会返回每个乘积的结果,点解?

Topic source

须戒sue

#1 Created at ... [Delete] [Delete and Lock User]
def product(*n):    if len(n)==0:        raise TypeError    else:        m=1        for i in n:            m=m*i        return m
#求大佬解答:我的return如果放在m=m*i后,就会输入每个乘积的结果,点解?
这样: for i in n: 
           m=m*i
           return m

kazennnn

#2 Created at ... [Delete] [Delete and Lock User]

试试把return的缩进去掉。你把return和for...in...写在一起了,所以电脑执行命令的时候把它们视为一个句块,计算完m=m*i后还要执行一次return,然后才开始下一轮的计算,所以每计算一次就返回一个值。如果你把return的缩进去掉,电脑就把它们视为两个句子,先执行完for...in...部分的所有计算,再返回最终得出的结果


  • 1

Reply