Уведомления

Группа в Telegram: @pythonsu

#1 Апрель 26, 2020 16:34:27

Megiya
Зарегистрирован: 2020-04-25
Сообщения: 7
Репутация: +  0  -
Профиль   Отправить e-mail  

Проблемы с if/else/elif

Тут такая проблема, тут три функции, первая - високосный ли год рождения. Вторая - сколько ты живёшь. Третья - твоя возрастная группа. И именно с третьей функцией проблема. Она не выводиться. (Третья функция внизу перед “else : print(”ERROR! ALERT!!!"))

import datetime
birth_day = int(input("День народження: "))
birth_month = int(input("Місяць народження: "))
birth_year = int(input("Рік народження: "))
day = int(datetime.date.today().day)
month = int(datetime.date.today().month)
year = int(datetime.date.today().year)
function = int(input("Яку функцію ви вибираєте? " ))
if function==1 :
if (month >= birth_month):
age = year - birth_year
else:
age = (year - birth_year) - 1

if (function >= 0) and (function < 4) and (age >= 0) and (age < 130):
if function == 1:
if birth_year % 4 != 0:
print("It is a common year (365 days)")
else:
print("It is a leap year (366 days)")

elif function == 2 :
if (month >= birth_month):
age = year - birth_year
else:
age = (year - birth_year) - 1
a = age
b = abs(month - birth_month)
c = abs(day - birth_day)
d = ((age * 8760) + ((month-1) * 720) + ((day-1) * 24))
e = ((age * 525600) + ((month-1) * 43200) + ((day-1) * 1440))
f = ((age * 31536000) + ((month-1) * 2592000) + ((day-1) * 86400))
print(f"Your age: {a} years, {b} months, {c} days, or {d} hours, or {e} minutes, or {f} seconds")
elif function == 3 :
if (month >= birth_month):
age = year - birth_year
else:
age = (year - birth_year) - 1
if (age < 1):
group=("Your group is : Baby")
print(f"{group}")
elif (age >= 1) and (3 < age):
group=("Your group is : Toddler")
print(f"{group}")
elif (age >= 3) and (5 < age):
group=("Your group is : Preschool")
print(f"{group}")
elif (age >= 5) and (12 < age):
group=("Your group is : Gradeschooler")
print(f"{group}")
elif (age >= 12) and (19 < age):
group=("Your group is : Teen")
print(f"{group}")
elif (age >= 19):
group=("Your group is : Adult")
print(f"{group}")
else :
print("ERROR! ALERT!!!")

Отредактировано Megiya (Апрель 26, 2020 16:36:01)

Прикреплённый файлы:
attachment Screenshot_5.png (5,9 KБ)

Офлайн

#2 Апрель 26, 2020 17:22:25

Romissevd
От: Счастье
Зарегистрирован: 2015-03-01
Сообщения: 533
Репутация: +  76  -
Профиль   Отправить e-mail  

Проблемы с if/else/elif

Опять ты с отступами накосорезил. Почитай литературу.
Смотри как должно быть по твоей логике. В первом блоке if/else ты определяешь значение переменной age
Следующими блоком у тебя идет уже новый блок if/elif, уже по проверке этого значения.

Офлайн

#3 Апрель 26, 2020 18:30:14

Megiya
Зарегистрирован: 2020-04-25
Сообщения: 7
Репутация: +  0  -
Профиль   Отправить e-mail  

Проблемы с if/else/elif

Romissevd
Опять ты с отступами накосорезил. Почитай литературу. Смотри как должно быть по твоей логике. В первом блоке if/else ты определяешь значение переменной ageСледующими блоком у тебя идет уже новый блок if/elif, уже по проверке этого значения.
Вроде-бы поправил, но теперь появилась другая проблема. При вводе любой из функций, третья тоже выводиться. Есть команда которая стопает определённую часть кода?

Офлайн

#4 Апрель 26, 2020 19:15:37

Romissevd
От: Счастье
Зарегистрирован: 2015-03-01
Сообщения: 533
Репутация: +  76  -
Профиль   Отправить e-mail  

Проблемы с if/else/elif

Megiya
Вроде-бы поправил, но теперь появилась другая проблема. При вводе любой из функций, третья тоже выводиться.
Значит неправильно поправил.
Megiya
Есть команда которая стопает определённую часть кода?
Есть, но оно тебе не надо. Расставь правильно отступы.

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version