Вопрос задан 01.10.2023 в 18:50. Предмет Информатика. Спрашивает Мухамедшаев Ринат.

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() с форматом вывода уже записаны в программе в виде комментариев. Чтобы использовать их, удали символ # в начале строки.
0 0
Перейти к ответам

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

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Еремеев Дмитрий.

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

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
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Для выполнения задачи, вы можете дополнить вашу программу следующим образом:

python
class Task(): description = '' importance = 1 completion_month = 'сентябрь' completion_date = 1 @staticmethod def creation(): objective = Task() objective.description = input("Введите описание задачи: ") objective.importance = int(input("Введите важность задачи (от 1 до 5): ")) objective.completion_month = 'сентябрь' objective.completion_date = int(input("Введите дату сдачи: ")) return objective # Создаем 3 задачи tasks = [] for _ in range(3): task = Task.creation() tasks.append(task) # Найдем самую важную и самую срочную задачи most_important_task = max(tasks, key=lambda x: x.importance) most_urgent_task = min(tasks, key=lambda x: x.completion_date) # Выводим информацию о найденных задачах print("Самая важная задача: " + most_important_task.description + ", важность- " + str(most_important_task.importance) + ", месяц сдачи- " + most_important_task.completion_month + ", дата сдачи- " + str(most_important_task.completion_date)) print("Самая срочная задача: " + most_urgent_task.description + ", важность- " + str(most_urgent_task.importance) + ", месяц сдачи- " + most_urgent_task.completion_month + ", дата сдачи- " + str(most_urgent_task.completion_date))

Этот код создает 3 задачи с заданными вами параметрами и затем находит самую важную (с наивысшей важностью) и самую срочную (с самой ранней датой сдачи) задачи из списка и выводит их описание на экран.

0 0

Похожие вопросы

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос