为什么这个Python代码可以正常工作?请解释

时间:2014-09-16 02:20:11

标签: python function procedures

在Udacity的CS101课程中,培训师通过编写以下代码来演示Python中的程序,以打印出两个参数中较大数量 n1 & N2

def bigger(n1,n2):
    if n1 > n2:
      return n1
    return n2

所以,例如,他确实

print bigger(6,3)

代码运行并打印出来:

6

没关系。我的问题是:

因为他在课程中明确指出"返回n2"在代码的最后总是会执行if语句是真还是假,为什么返回总是 n2?为什么即使在'返回n2'是否在if语句之外?无论IF语句是否为真,它都应该执行。所以我很困惑。 O.o

3 个答案:

答案 0 :(得分:4)

return n2永远不会执行。如果n1大于n2,则执行第一个return n1。从函数返回,并且函数中没有其他任何内容被执行。一个函数只能返回一次。

答案 1 :(得分:3)

return单方面终止执行该功能。如果第一个执行,代码永远不会有机会到达第二个return

答案 2 :(得分:2)

如果n1> n2计算结果为true,它将执行第一个return语句 - 因为它在if块内,并立即退出该函数,甚至没有机会到达第二个return声明。

另一方面,如果n1> n2求值为false,跳过第一个return语句,现在它到达第二个return语句并执行它。