Вы должны взглянуть на Scopes снова python Scopes . В данном коде вам вообще не нужен ЛЮБОЙ global
идентификатор (вы все равно должны стараться их избегать, так что это хорошо для вас). Просто избавиться от всех строк с global
в них будет прекрасно.
Я попытался запустить ваш код, и кажется, что вы делаете некоторые странные описания структурно. Если бы я был тобой, я бы снова сел и получил правильную твою Структуру (какая функция вызывает, какой метод, когда это происходит ...), потому что, как я уже видел, ты делаешь некоторые плохие решения.
Только один быстрый пример. Когда вас спрашивают, хотите ли вы «остаться» или «ударить», и вы выбираете «остаться», это вызывает все oop, и игрок теряет контроль над своими картами. Другим примером может быть структура
if choice == "h":
clear()
card(p)
show1()
elif player >= 21:
break
else:
break
. ваши elif
и else
делают одно и то же, так почему же у вас есть оба, в этом случае просто избавьтесь от elif
заявления.
Еще одна вещь будет, использовать os._exit(1)
вместо sys.exit(0)
. sys.exit(0)
выдаст какое-то предупреждение, и ваша программа не закроется так, как вы этого хотите.