@GENius_s

Игнорирует условие if в пайтон и выполняется даже если nmonth что угодно. Как исправить?

while True: #бесконечный цикл
    allmon =  -1 # cумма
    nmoney = int(input()) # кол. средств
    nmonth = input('Это новый месяц? ') # новый месяц? в if варианты 
    if nmonth == '1' or nmonth == 'да' or nmonth == 'Да' or nmonth == 'ДА' or nmonth == 'lf' or nmonth == 'Lf' or nmonth == 'LF' 
            or nmonth == 'yes' or nmonth == 'Yes' or nmonth == 'YES' or nmonth == 'нуы' or nmonth == 'Нуы' or nmonth == 'НУЫ' 
            and allmon >= 0:
        allmon = allmon // 100 * 7.5 + allmon + nmoney
    elif nmonth == '0' or nmonth == 'нет' or nmonth == 'Нет' or nmonth == 'НЕТ' or nmonth == 'ytn' or nmonth == 'Ytn' or 
            nmonth == 'YTN' 
            or nmonth == 'no' or nmonth == 'No' or nmonth == 'NO' or nmonth == 'тщ' or nmonth == 'Тщ' or nmonth == 'ТЩ' \
            and 0 < allmon <= 0:
        allmon = allmon + nmoney
    else:
        print('ошибка')
# если я ввожу nmonth что угодно то цикл не выдает ошибку
  • Вопрос задан
  • 143 просмотра
Пригласить эксперта
Ответы на вопрос 2
@theurus
yes_list = ('да','ага','угу')

if nmonth.lower() in yes_list and allmon >= 0:
Ответ написан
@Mirozr
Не понимаю о чем вы говорите код прекрасно исполняется но только я могу вам посоветовать не делать такой громадский код в блоке if это не читабельно и не соответсвует нормам написания кода советую сделать два списка или хотяби не делать nmonth == 'no' or nmonth == 'No' or nmonth == 'NO' ведь можно сделать так как минимум :
if nmonth == '1' or 'да' or 'Да' or 'ДА' or 'lf' or 'Lf' or 'LF' or 'yes' or 'Yes' or 'YES' or 'нуы' or 'Нуы' or 'НУЫ' and allmon >= 0:

Советую проверить это также как и я:
allmon =  -1
nmoney = 0
nmonth = 0

while True:
    allmon =  -1
    nmoney = int(input())
    nmonth = input('Это новый месяц? ') 
    if nmonth == '1' or 'да' or 'Да' or 'ДА' or 'lf' or 'Lf' or 'LF' or 'yes' or 'Yes' or 'YES' or 'нуы' or 'Нуы' or 'НУЫ' and allmon >= 0:
        allmon = allmon // 100 * 7.5 + allmon + nmoney
        print("if")
    elif nmonth == '0' or 'нет' or 'Нет' or 'НЕТ' or 'ytn' or 'Ytn' or 'YTN' or 'no' or 'No' or 'NO' or 'тщ' or 'Тщ' or 'ТЩ' and 0 < allmon <= 0:
        allmon = allmon + nmoney
        print("else")
Ответ написан
Ваш ответ на вопрос

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

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