Я пытаюсь понять логику c этого кода ниже. Может ли кто-нибудь помочь мне ответить на следующие вопросы?
1) Продолжает ли выполнение for
l oop из-за возврата check_cheese
в значение False
? Насколько я знаю, либо результат True
, либо False
, команда return
останавливает выполнение функции.
2) Оператор if check_cheese(cheese)
возвращает переменную cheese только в том случае, если возвращаемый параметр функции check_cheese()
равен True
? Я немного сбит с толку, потому что здесь нет проверки типа ==
или in
или любого другого утверждения, которое указывает на возврат сыра, только если условие True
.
3) Что было бы случай, если Гауда не существует в списке? Будет ли это так, как если бы каждое условие в for
l oop возвращало 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()