Как взять значение переменной из вложенной функции? Python
Мой первый вопрос по программированию здесь) Язык Python
Мне надо написать код так, когда в функции you_random_card() наступает ситуация выигрыша или проигрыша, то в более глобальный цикл while возвращалась значение more = False и цикл прерывался. Но ничего не переходит. Возможно, что эта функция локальная, поэтому значение не передаётся
КАК мне написать код, чтобы more передавался или что-то сделать другое?
Ниже предоставляю фрагмент кода, к которому относится данная ситуация.
def you_random_card():
"""когда решаю добавить карту"""
calculate_score(you_choose, you_sum)
your_sum = sum(you_choose)
if your_sum == 21:
final_card()
print ("Выйгрыш!")
more = False
return more
elif your_sum > 21:
final_card()
print ("Ты проиграл!")
more = False
return more
else:
out_cards()
more = True
return more
more = True
while more:
want_continue = input("Хотите добавить карту? Нажми 'y' или 'n'")
if want_continue == "y":
you_random_card()
else:
result()
more = False
PS Самый простой способ, что я сделал - это просто скопировать код из функции в цикл while, а эту функцию удалить, но это не решает вопрос. Хочу разобраться именно с этим подходом. Помогите пожалуйста!
Самый простой способ, но не решает вопрос:
more = True
while more:
want_continue = input("Хотите добавить карту? Нажми 'y' или 'n'")
if want_continue == "y":
# you_random_card()
calculate_score(you_choose, you_sum)
your_sum = sum(you_choose)
if your_sum == 21:
final_card()
print ("Выйгрыш!")
more = False
elif your_sum > 21:
final_card()
print ("Ты проиграл!")
more = False
else:
out_cards()
else:
result()
more = False
PPS Я ещё новичок
Ответы (2 шт):
Проблема заключается в том, что функция you_random_card()
возвращает значение, которое не сохраняется или не используется в вашем цикле while
.
Значение нужно не только возвращать из функции, но и принимать там, где функция вызвана:
more = you_random_card()