Найти - Пользователи
Полная версия: Упорное игнорирование условия if-else
Начало » Python для новичков » Упорное игнорирование условия if-else
1
The_Tsar_of_Anarchy
month_designation = “0”

if month > 4 and != 1:
month_designation == “месяцев”
elif month == 1:
month_designation = “месяц”
else:
month_designation = “месяца”

month = str(month)
final_month_display = month + “ ” + month_designation

print(“Вы прожили: ”+final_year_display+“,”+final_month_display+“,”+final_day_display+“!”)

Код, конечно же, не весь.
Суть такова - условие else не выполняется вовсе. То есть, если месяц больше 4 происходит вывод изначального значения - 0.
Stepan_M
Во-первых, неплохо обернуть код в тег.
Во-вторых, тут куча каких-то опечаток, что ли?
 if month > 4 and != 1:
У меня такое условие не работает. Вообще если число больше 4, зачем еще проверять, что оно не равно 1?
 month_designation == "месяцев"
Присваивание - с одним знаком =.
Вот Ваш код с поправками (вроде работает):
 month = 4
if month > 4:
    month_designation = "месяцев"
elif month == 1:
    month_designation = "месяц"
else:
    month_designation = "месяца"
month = str(month)
final_month_display = month + " " + month_designation
print(final_month_display)

Добавил присваивание для month в начале кода и print в конце для наглядности.
The_Tsar_of_Anarchy
Stepan_M
Проверять нужно, чтобы программа отображала “Вы прожили 1 месяц/2,3,4, месяца/11 месяцев”.
Спасибо, просто я очень невнимательный человек.
py.user.next
  
#!/usr/bin/env python3
 
# Выводит правильное окончание у существительного
# в соответствии с числом.
 
def select_ending(n, w0, w1, w2):
    """Выбрать одно из слов по двум младшим цифрам числа."""
    out = None
    d1 = n % 10
    d2 = n % 100 // 10
    if d2 == 1:
        out = w0
    else:
        if d1 == 1:
            out = w1
        elif d1 in (2, 3, 4):
            out = w2
        else:
            out = w0
    return out
 
def main():
    print(select_ending(0, 'ёжиков', 'ёжик', 'ёжика'))
    print(select_ending(1, 'ёжиков', 'ёжик', 'ёжика'))
    print(select_ending(2, 'ёжиков', 'ёжик', 'ёжика'))
 
if __name__ == '__main__':
    main()
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB