
Вопрос задан 05.07.2023 в 11:33.
Предмет Информатика.
Спрашивает Еремина Александра.
НАЙДИТЕ ТУТ ОШИБКУ ПЖ 15 БАЛЛОВ # Step 1 start import datetime # Step 2 birth day = int(input("Day
of birth: ")) birth month = int(input("Month of birth: ")) birth year = int(input("Year of birth: ")) day = int(datetime.date.today().day) month = int(datetime.date.today().month) year = int(datetime.date.today().year) Домашнее задание № 5 2 # Step 3 if * > **: age = year - birth_year then: age = (year - birth_year) - 1 # Step 4 a = age b = abs(month - birth_month) c = abs(day - birth_day) print("Your age: {a} years, {b} months, {c} days")

Ответы на вопрос

Отвечает Дендяк Макс.
Ответ:
1) Если имя переменной в себе содержит больше одного слова, то оно всё равно целиком должно быть написано слитно, иначе SyntaxError
birth day -> BirthDay или birthDay или birth_day
2) # Step 3: if * > **: age = year - birth_year then:
- Переменная birth_year ранее не объявлена
- как интерпретатор должен осознать значение выражения " if * > ** " ?
- Откуда там взялся then: ?
3) print("Your age: {a} years, {b} months, {c} days"):
- Перед форматированной строкой должен стоять флаг f:
print(f' value: {value}')
Вывод: Изучите основы синтаксиса Python



Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.
В представленном коде есть несколько ошибок. Вот исправленная версия:
python# Step 1: Импорт модуля datetime
import datetime
# Step 2: Ввод данных о дате рождения
birth_day = int(input("Day of birth: "))
birth_month = int(input("Month of birth: "))
birth_year = int(input("Year of birth: "))
# Получение текущей даты
day = datetime.date.today().day
month = datetime.date.today().month
year = datetime.date.today().year
# Step 3: Вычисление возраста
if (month, day) < (birth_month, birth_day):
age = year - birth_year - 1
else:
age = year - birth_year
# Step 4: Вычисление разницы в месяцах и днях
a = age
b = abs(month - birth_month)
c = abs(day - birth_day)
# Вывод результата
print(f"Your age: {a} years, {b} months, {c} days")
Исправления:
- В строке импорта модуля datetime необходимо удалить символ
#
. - В строке ввода даты рождения нужно разделить инструкции присваивания переменных значениями на отдельные строки.
- В условии в строке
if * > **:
должно быть что-то более осмысленное. Я предположил, что вы хотели проверить, является ли текущая дата позже даты рождения. Используйте кортежи(month, day)
для сравнения. - В строке
then:
послеage = (year - birth_year) - 1
не нужно ставитьthen:
. Просто присвойте значениеage
внутри условия. - В строке вывода заменил фигурные скобки на f-строку для более удобного форматирования.
Теперь код должен работать правильно и вычислять возраст с учетом даты рождения.


Похожие вопросы
Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
Предметы
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili