Форум сайта python.su
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.
Офлайн
Во-первых, неплохо обернуть код в тег.
Во-вторых, тут куча каких-то опечаток, что ли?
if month > 4 and != 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)
Офлайн
Stepan_M
Проверять нужно, чтобы программа отображала “Вы прожили 1 месяц/2,3,4, месяца/11 месяцев”.
Спасибо, просто я очень невнимательный человек.
Офлайн
#!/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()
Офлайн