Уведомления

Группа в Telegram: @pythonsu

#1 Сен. 10, 2016 15:14:59

The_Tsar_of_Anarchy
Зарегистрирован: 2016-08-05
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

Упорное игнорирование условия if-else

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.

Офлайн

#2 Сен. 10, 2016 16:24:33

Stepan_M
Зарегистрирован: 2016-07-20
Сообщения: 31
Репутация: +  1  -
Профиль   Отправить e-mail  

Упорное игнорирование условия if-else

Во-первых, неплохо обернуть код в тег.
Во-вторых, тут куча каких-то опечаток, что ли?

 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 в конце для наглядности.

Офлайн

#3 Сен. 10, 2016 17:25:59

The_Tsar_of_Anarchy
Зарегистрирован: 2016-08-05
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

Упорное игнорирование условия if-else

Stepan_M
Проверять нужно, чтобы программа отображала “Вы прожили 1 месяц/2,3,4, месяца/11 месяцев”.
Спасибо, просто я очень невнимательный человек.

Офлайн

#4 Сен. 11, 2016 02:09:54

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9729
Репутация: +  843  -
Профиль   Отправить e-mail  

Упорное игнорирование условия if-else

  
#!/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()



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version