基于另一个函数的返回参数退出递归吗?

问题描述 投票:0回答:1

我正在尝试理解下面这段代码的逻辑。有人可以帮我解决以下问题吗?

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()
python loops recursion return exit
1个回答
0
投票
  1. return语句的调用将始终中断外部循环/函数,即使它是return False。您的情况是if条件阻止调用return语句
  2. 您的check_cheese函数从不返回cheese变量,仅布尔值
  3. 您为什么不尝试? ;)
© www.soinside.com 2019 - 2024. All rights reserved.