在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
答案 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
语句并执行它。