причина в том, что вы все еще находитесь на первом шаге верхнего уровня, а l oop, так как внутренний еще продолжается, даже если вы изменили значение play_continue
, проверка никогда не происходит, потому что программа никогда не возвращается вокруг него, так как внутренний l oop еще не завершен sh.
вы можете думать обо всем внутреннем l oop как об одной инструкции, например
while play_continue:
do_stuff()
условие play_continue
проверяется только после завершения do_stuff()
, что в вашем случае не