【发布时间】:2020-06-12 07:24:54
【问题描述】:
我试图理解下面这段代码的逻辑。有人可以帮我解决以下问题吗?
1) for 循环是否会因为check_cheese 的返回是False 而继续执行?据我所知,无论结果是True 还是False,return 命令都会停止函数的执行。
2) if check_cheese(cheese) 语句是否只有在check_cheese() 函数的返回参数为True 时才返回cheese 变量?我在这里有点困惑,因为没有像 == 或 in 这样的检查或任何其他表示仅在条件为 True 时才返回奶酪的语句。
3) 如果列表中不存在 Gouda 会怎样?是否会像 for 循环中的每个条件都返回 False 并且在结束打印语句 you call yourself 将在终止之前执行?
提前感谢您提供的任何帮助。
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()
【问题讨论】:
-
您的代码中没有没有递归。
-
您的代码中没有递归。您在
find_first_available_cheese函数中调用check_cheese。 递归函数调用自身。 -
感谢第一个问题。请熟悉格式化标记,您的问题会看起来更丰富。