В
Все
М
Математика
А
Английский язык
Х
Химия
Э
Экономика
П
Право
И
Информатика
У
Українська мова
Қ
Қазақ тiлi
О
ОБЖ
Н
Немецкий язык
Б
Беларуская мова
У
Українська література
М
Музыка
П
Психология
А
Алгебра
Л
Литература
Б
Биология
М
МХК
О
Окружающий мир
О
Обществознание
И
История
Г
Геометрия
Ф
Французский язык
Ф
Физика
Д
Другие предметы
Р
Русский язык
Г
География
keks661
keks661
06.03.2022 20:45 •  Информатика

Class Task(): description = ''
importance = 1
completion_month = ''
completion_date = 1

def creation():
objective = Task()
objective.description = input("Введите описание задачи: ")
objective.importance = int(input("Введите важность задачи (от 1 до 5): "))
objective.completion_month = input("Введите месяц сдачи: ")
objective.completion_date = int(input("Введите дату сдачи: "))
return(objective)
# print("Самая важная задача: " + i.description + ", важность- " + str(i.importance) + ", месяц сдачи- " + i.completion_month + ", дата сдачи- " + str(i.completion_date))
# print("Самая задача: " + i.description + ", важность- " + str(i.importance) + ", месяц сдачи- " + i.completion_month + ", дата сдачи- " + str(i.completion_date))

Перед тобой программа, в которой описан класс «Задача» и определена функция для создания экземпляров класса.
Допиши программу, выполняя шаги, записанные ниже.
Создай 3 любых задачи так, как указано на картинке.
У всех задач месяц сдачи должен быть «сентябрь».
В списке найди самую важную (самый большой показатель важности) и самую самое раннее число сдачи) задачи и выведи их описание на экран так, как показано в примере.
Функции print() с форматом вывода уже записаны в программе в виде комментариев. Чтобы использовать их, удали символ # в начале строки.

Показать ответ
Ответ:
Alina25255
Alina25255
15.02.2021 00:08

Решение задания с кодом из условия:

class Task():

   # все эти аттрибуты должны быть не у самого класса Задачи, а у объектов

   description = ''

   importance = 1

   # дату нужно выражать по-другому. datetime и Arrow в

   completion_month = ''

   completion_date = 1

def creation():  # как раз для этого существует __init__

   objective = Task()

   objective.description = input("Введите описание задачи: ")

   objective.importance = int(input("Введите важность задачи (от 1 до 5): "))

   objective.completion_month = input("Введите месяц сдачи: ")

   objective.completion_date = int(input("Введите дату сдачи: "))

   return objective

tasks = [creation(), creation(), creation()]

i = max(tasks, key=lambda task: task.importance)  # находит задачу с максимальной важностью (key=функция, возвращающая важность)

print("Самая важная задача: " + i.description + ", важность- " + str(i.importance) + ", месяц сдачи- " + i.completion_month + ", дата сдачи- " + str(i.completion_date))

i = min(tasks, key=lambda task: task.completion_date)  # находит задачу с максимальной датой сдачи (key=функция, возвращающая дату сдачи)

print("Самая задача: " + i.description + ", важность- " + str(i.importance) + ", месяц сдачи- " + i.completion_month + ", дата сдачи- " + str(i.completion_date))

Более правильное решение:

import datetime

class Task(object):

   def __init__(self, description, priority, due_date):

       self.description = str(description)

       priority = int(priority)

       if priority not in range(1, 6):

           raise ValueError("priority must be 1, 2, 3, 4, or 5")

       self.priority = priority

       if isinstance(due_date, datetime.datetime):

           due_date = due_date.date()

       if not isinstance(due_date, datetime.date):

           raise ValueError("due_date must be datetime.datetime "

                            "or datetime.date")

       self.due_date = due_date

   def __repr__(self):

       return f"Task({self.description}, {self.priority}, {self.due_date})"

   @classmethod

   def from_user_input(cls):

       description = input("Enter description of the task: ")

       while True:

           priority = input("Enter priority of the task (1-5): ")

           if priority in map(str, range(1, 6)):

               priority = int(priority)

               break

       

       date_format = "%d.%m.%Y"

       while True:

           due_date = input(f"Enter due date (like {date_format}): ")

           try:

               due_date = datetime.datetime.strptime(due_date, date_format).date()

           except ValueError:

               pass

           else:

               break

       return cls(description, priority, due_date)

   

tasks = [Task.from_user_input(),

        Task.from_user_input(),

        Task.from_user_input()]

print("The most important task:", max(tasks, key=lambda task: task.priority))

print("The most urgent task:", min(tasks, key=lambda task: task.due_date))

0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота