Форум сайта python.su
Тут такая проблема, тут три функции, первая - високосный ли год рождения. Вторая - сколько ты живёшь. Третья - твоя возрастная группа. И именно с третьей функцией проблема. Она не выводиться. (Третья функция внизу перед “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)
Прикреплённый файлы: Screenshot_5.png (5,9 KБ)
Офлайн
Опять ты с отступами накосорезил. Почитай литературу.
Смотри как должно быть по твоей логике. В первом блоке if/else ты определяешь значение переменной age
Следующими блоком у тебя идет уже новый блок if/elif, уже по проверке этого значения.
Офлайн
RomissevdВроде-бы поправил, но теперь появилась другая проблема. При вводе любой из функций, третья тоже выводиться. Есть команда которая стопает определённую часть кода?
Опять ты с отступами накосорезил. Почитай литературу. Смотри как должно быть по твоей логике. В первом блоке if/else ты определяешь значение переменной ageСледующими блоком у тебя идет уже новый блок if/elif, уже по проверке этого значения.
Офлайн
MegiyaЗначит неправильно поправил.
Вроде-бы поправил, но теперь появилась другая проблема. При вводе любой из функций, третья тоже выводиться.
MegiyaЕсть, но оно тебе не надо. Расставь правильно отступы.
Есть команда которая стопает определённую часть кода?
Офлайн