@KoRgYaSh

Как прервать и перезапустить программу?

Я создал вот такую программу:
from random import *
print('Добро пожаловать в казино!')
money = float(input('Введите сумму денег которую вы хотите поставить: '))
print('При выигрыше на красном/чёрном сумма вашей ставки удваивается')
print('При выигрыше на зеро сумма вашей ставки умножается на 35')
print('Если вы хотите поставить на зеро - нажмите 0, если на черное - нажмите 1, если же на красное - нажмите 2')
bet = int(input(''))
if bet != 0 or 1 or 2:
    print('Вы ввели неправильное число')
roulette = randint(1, 2)
roulette0 = randint(0, 36)
if roulette0 == 0:
    print('Выпало зеро')
elif roulette == 1:
    print('Выпало чёрное')
elif roulette == 2:
    print('Выпало красное')
if roulette0 == 0 == bet:
    print(f'Джекпот!!! Вы выиграли на зеро! Ваш баланс составляет {money * 35} долларов')
elif bet == roulette:
    print(f'Вы выиграли! Ваш баланс составляет {money * 2} долларов')
elif bet != roulette or roulette0:
    print('Вы проиграли. Ваш баланс составляет 0 долларов')

Как сделать так чтобы если пользователь вводит иное число (не 0, не 1 и не 2) ему бы печатало "Вы ввели неправильное число" , после чего программа бы перезапускалаcь?
Эта команда неправильно работает.
if bet != 0 or 1 or 2:
    print('Вы ввели неправильное число')
  • Вопрос задан
  • 65 просмотров
Решения вопроса 1
Vindicar
@Vindicar
RTFM!
if bet != 0 or 1 or 2:
Ну конечно дословный перевод с русского на питон будет работать неправильно. Это условие интерпретируется как
if (bet != 0) or (1) or (2):
В питоне целые числа истинны, если они не нулевые. Т.е. получаем
if (bet != 0) or (1 != 0) or (2 != 0):
Как следствие
if (bet != 0) or True or True:
А как известно, X or True всегда даст True, независимо от значения X.
Так что всё условие всегда даст True.
Правильно или так:
if (bet != 0) and (bet != 1) and (bet != 2):
или так
if bet not in (0, 1, 2):

По поводу зацикливания - заверни кусок программы, отвечающий за ввод, в цикл while.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@dmshar
if bet != 0 and bet !=1 and bet != 2:

или так
if bet not in (0,1,2):
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы