【发布时间】:2022-01-05 04:47:34
【问题描述】:
刚开始学Python,不明白下面代码中return语句的缩进有什么区别。
def list_1(students, number):
for i in students:
if i == number:
return True
return False
def list_1(students, number):
for i in students:
if i == number:
return True
else:
return False
对于第一个代码,如果在学生列表中找到输入的数字,则返回True,但在第二个代码中,即使在学生列表中找到数字,它也返回False。
【问题讨论】:
-
我知道这是重复的(我以前见过这个 exact 代码),但简短的回答是:后者 always 返回第一项,如果 none 项通过,则前者仅返回
False。 -
为什么函数内的第一行缩进到与函数声明本身相同的级别?
-
@ShadowRanger 感谢您的回复,但我不明白为什么。对于第二个代码,它是一个 if-else 语句,所以当 'if' 语句通过时,输出不应该是 True 吗?为什么它转到'else'语句并输出False。
-
@SamL:如果 first 元素 不 等于
number,您将立即return False因为else:执行,并且循环永远没有机会继续。第一个循环仅在找到等于number的元素时才提前返回,第二个总是根据与students的第一个元素的比较返回“提前”。