В пайтоне не принимается новое значение переменной вне цикла
Вот сам код
from random import randint
balance = 100
print('Казино!')
while 1<2:
print('Ваш баланс:', balance)
stavka = int(input('Введите ставку'))
if stavka > balance:
print('Не та ставка!')
else:
perem = randint(1, 2)
if perem == 1:
print('Вы выиграли, ваш нынешний баланс равен', balance + stavka * 1.3)
balance + stavka * 1.3
else:
print('Вы проиграли :(', stavka)
vihod = input('Хотите ли вы выйти из Казино? (Да/Нет)')
if vihod == 'Да':
print('Вы вышли из Казино')
break
else:
print('Вы не вышли из Казино')
А еще просьба, не оскорбляйте меня за большое написание кода....
Ответы (2 шт):
Автор решения: LolPopGames
→ Ссылка
from random import randint
balance = 100
perem = 0
print('Казино!')
while True:
print('Ваш баланс:', balance)
stavka = int(input('Введите ставку: '))
if stavka > balance:
print('Не та ставка!')
continue
else:
perem = randint(1, 2)
if perem == 1:
balance += stavka * 1.3
print('Вы выиграли, ваш нынешний баланс равен', balance)
else:
print('Вы проиграли :(', stavka)
balance -= stavka
vihod = input('Хотите ли вы выйти из Казино? (Y/N)')
if vihod in "Yy":
print('Вы вышли из Казино')
break
else:
print('Вы не вышли из Казино')
Изменения:
- Иницилизирована (создана)
perem
Поскольку мы её создавали только в 1-ом else
,
и она создавалась как локальная переменная этого else
,
и после его окончания она "стиралась"
- Добавлено изменение переменной
balance
В строке balance + stavka * 1.3
вы не делали ровным счетом ничего,
тут просто вычислилось а результат некуда не пошел.
Заменено на balance += stavka * 1.3
,
а также в проигрыше добавилась balance -= stavka
- Другое (мелкие касметические изменения)
Автор решения: MarianD
→ Ссылка
Посмотрите на эту часть вашего кода:
if stavka > balance:
print('Не та ставка!')
else:
perem = randint(1, 2)
if perem == 1:
Когда условие stavka > balance
выполнено, ветвь
else:
perem = randint(1, 2)
будет перепущена и, таким образом, переменная perem
не будет определена. Потому следующая команда
if perem == 1:
не будет иметь смысл и возникнет ошибка.