#исправить ошибки в коде
import datetime
print("-----------------------------------------")
print("Нажмите 1, если хотите узнать в какой год Вы были рождены(высокостный или
нет?)")
print("Нажмите 2, если хотите узнать к какой возрастной группе вы принадлежите")
print("Нажмите 3, если хотите узнать свой возраст ")
print("-----------------------------------------")
b_day=int(input("Введите день своего рождения хх: "))
b_month=int(input("Введите месяц своего рождения хх: "))
b_year=int(input("Введите год своего рождения хххх: "))
day=int(datetime.date.today().day)
month=int(datetime.date.today().month)
year=int(datetime.date.today().year)
number=int(input("Выберите, что хотите узнать: "))
if month>b_month:
age=year-b_year
else:
age=(year-b_year)-1
if (number>0) and (number<4) and (age>=0) and (age<130):
if number==1:
if b_year%4!=0:
print("365 дней в году")
else:
print("Высокостный год - 366 дней в году")
elif number == 2:
print("Your group is ", end="")
if age < 1:
print("Младенец")
elif (age >= 1) and (age < 3):
print("Ребенок")
elif (age >= 3) and (age < 5):
print("Ребенок дошкольного возраста")
elif (age >= 5) and (age < 12):
print("Первоклассник")
elif (age >= 12) and (age < 19):
print("Подросток")
elif age >= 19:
print("Взрослый")
elif number == 3:
print("Your age: {} year, {} month,{} day" .format(age,abs(month-birth_month+12), abs(daybirth_day)))
seconds = ((age * 31536000) + ((month-1) *2592000) + ((day-1) * 86400))
print("Your age is {} seconds".format(seconds))
else:
print("Error! Try again.")
Ответы
Объяснение: Не знаю какие ошибки именно нужно было исправить, ты не указал, но мне было скучно, так что..
Я немного изменила код, мне не понятно почему ты, например, вместо print(f"Your age: {sec} seconds."), писал целую строчку format'а..
Если тебя это не устраивает, можешь отредактировать под условия, которые тебе нужны.
Очень много вводных данных int и нет проверки на тип данных, так что если пользователь введёт букву, программа прекратит работу. Если хочешь этого избежать, можешь поискать в интернете try except valueError.
Также в этих же int нет проверки на максимальное и минимальное число / месяц.. Пользователь таким способом может указать, что родился в минус 50-ом месяце, 152-го числа..
Также непонятно зачем ты взял все условия в скобки, такие как if (number>0) and (number<4)... возможно у нас разные версии python, но, насколько я знаю, даже в онлайн компиляторах всё отлично без них работает, это лишние символы.
Python Code:
import datetime
day=int(datetime.date.today().day)
month=int(datetime.date.today().month)
year=int(datetime.date.today().year)
b_day = int(input("Введите день своего рождения xx: "))
b_month = int(input("Введите месяц своего рождения xx: "))
b_year = int(input("Введите год своего рождения xxxx: "))
print("-----------------------------------------")
print("Напишите 1, если хотите узнать в високосный год вы были рождены или нет.")
print("Напишите 2, если хотите узнать к какой возрастной группе вы принадлежите.")
print("Напишите 3, если хотите узнать свой возраст.")
print("-----------------------------------------")
number = int(input("Выберите что хотите узнать: "))
if month > b_month:
age = year-b_year
else:
age = (year-b_year)-1
if number > 0 and number < 4:
if number==1:
if b_year%4!=0:
print("Вы были рождены с 365 дней в году")
else:
print("Вы были рождены в високосный год - 366 дней в году")
elif number == 2:
print("Your group is ", end="")
if age < 1:
print("Младенец")
elif age >= 1 and age < 3:
print("Ребенок")
elif age >= 3 and age < 5:
print("Ребенок дошкольного возраста")
elif age >= 5 and age < 12:
print("Первоклассник")
elif age >= 12 and age < 19:
print("Подросток")
elif age >= 19 and age < 130:
print("Взрослый")
else:
print('Бессмертный')
elif number == 3:
print(f"Your age: {age} year, {abs(month - b_month + 12)} month,{abs(b_day)} day")
seconds = ((age * 31536000) + ((month - 1) * 2592000) + ((day - 1) * 86400))
print(f"Your age is {seconds} seconds")
else:
print("Error! Try again.")