Прежде всего, не беспокойтесь о том, что ваш код будет слишком многословным. Лучше иметь длинный читаемый код, чем короткий, трудный для расшифровки. Ваш код выглядит нормально.
Что касается предотвращения продолжения пользователем, если total > 21
, это потому, что вы добавляете к общей сумме total += output
, прежде чем дойдете до while total <= 21
. Чтобы исправить это, у вас есть два варианта.
Во-первых, чтобы он запрашивал в начале while l oop, прежде чем начисляются очки. Если вы сделаете это, вы также попросите его один раз перед запуском while l oop. Обычно это делается с помощью do..while
l oop, но python их не имеет.
Вторым необязательным условием было бы просто добавить дополнительный оператор if, где он просит вас продолжить, только если total <= 21
, в противном случае он делает что-то, что завершает игру с сообщением о превышении.