我正在尝试理解下面这段代码的逻辑。有人可以帮我解决以下问题吗?
1)是否由于返回check_cheese为False而继续执行循环?据我所知,无论结果是True还是False,返回命令都会停止函数的执行。
2)仅在check_cheese()函数的返回参数为True时,“ if check_cheese(cheese)”语句是否返回奶酪变量?我在这里有点困惑,因为没有像“ ==”或“ in”这样的检查,也没有任何其他指示仅在条件为True时才返回起司的语句。
3)如果列表中不存在Gouda怎么办?是否会像for循环中的每个条件都返回False,并在终止之前执行print语句“ you call self”?
感谢您能提供的任何帮助。
def check_cheese(cheese):
if cheese == "Gouda":
print("ooh we have that one")
return True
print(f"we don't have any {cheese}")
return False
def find_first_available_cheese():
for cheese in ['Emmental','Gouda']:
if check_cheese(cheese):
return cheese
print("and you call yourself a cheeseshop!")
find_first_available_cheese()
return
语句的调用将始终中断外部循环/函数,即使它是return False
。您的情况是if
条件阻止调用return
语句check_cheese
函数从不返回cheese
变量,仅布尔值