Python 基于另一个函数的返回参数退出函数?
我试图理解下面代码的逻辑。有人能帮我回答以下问题吗 1)Python 基于另一个函数的返回参数退出函数?,python,loops,return,exit,Python,Loops,Return,Exit,我试图理解下面代码的逻辑。有人能帮我回答以下问题吗 1) for循环是否因为返回的check\u cheese为False而继续执行?据我所知,无论结果是True还是False,return命令都会停止函数的执行 2) if check_cheese(cheese)语句是否仅在check_cheese()函数的返回参数为True时才返回cheese变量?我在这里有点困惑,因为在中没有像==或这样的检查,也没有任何其他语句指示仅当条件为True时才返回奶酪 3) 如果列表中不存在Gouda,情况会
for
循环是否因为返回的check\u cheese
为False
而继续执行?据我所知,无论结果是True
还是False
,return
命令都会停止函数的执行
2) if check_cheese(cheese)
语句是否仅在check_cheese()
函数的返回参数为True
时才返回cheese变量?我在这里有点困惑,因为在中没有像==
或这样的检查,也没有任何其他语句指示仅当条件为True
时才返回奶酪
3) 如果列表中不存在Gouda,情况会怎样?是否会像for
循环中的每个条件一样返回False
,并且在结束时,您自己调用的print语句将在终止前执行
提前感谢您提供的任何帮助
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
语句将始终中断外部循环/函数,即使它是returnfalse
。在您的情况下,if
条件阻止调用return
语句
您的check_cheese
函数从不返回cheese
变量,只返回布尔值
你为什么不试试李>
1) For循环是否因为返回
检查奶酪是假的吗?据我所知,要么结果是真的
如果为False,返回命令将停止函数的执行
如果在If语句内部返回,它将从函数中断
2) “if check_cheese(cheese)”语句是否返回cheese
仅当check_cheese()函数的返回参数为
是吗?我有点困惑,因为这里没有像“==”或“=”这样的检查
“in”或任何其他表示仅在以下情况下返回奶酪的语句
这个条件是正确的
for循环运行,直到找到Gauda奶酪,如check_cheese函数所示
3) 如果列表中不存在Gouda,情况会怎样?它是
就像for循环中的每个条件返回False和at一样
结束打印语句“youcallyourself”将在之前执行
终止
你会得到一份打印件“你称自己为奶酪店!”。试试看。:) 代码中没有递归。代码中没有递归。您正在调用首先查找可用奶酪
功能中的检查奶酪
。递归函数自己调用。谢谢你的第一个问题。请熟悉格式化标记,您的问题将看起来更大。OP认为他的代码中存在递归。我想最好是提到他的代码中没有递归。@Ch3steR是的,你是对的,但是在我发布答案之前已经有两条评论说明了这一点。