profile
Размещено 4 года назад по предмету Информатика от mkoludarova

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

  1. Ответ на вопрос
    Ответ на вопрос дан demianwolfssd

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

    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))

Не тот ответ на вопрос, который вам нужен?
Найди верный ответ
Самые новые вопросы
tegysigalpa2012
Русский язык - 6 лет назад

Помогите решить тест по русскому языку тест по русскому языку «местоимение. разряды местоимений» для 6 класса 1. укажите личное местоимение: 1) некто 2) вас 3) ни с кем 4) собой 2. укажите относительное местоимение: 1) кто-либо 2) некоторый 3) кто 4) нам 3. укажите вопросительное местоимение: 1) кем-нибудь 2) кем 3) себе 4) никакой 4. укажите определительное местоимение: 1) наш 2) который 3) некий 4) каждый 5. укажите возвратное местоимение: 1) свой 2) чей 3) сам 4) себя 6. найдите указательное местоимение: 1) твой 2) какой 3) тот 4) их 7. найдите притяжательное местоимение: 1) самый 2) моего 3) иной 4) ничей 8. укажите неопределённое местоимение: 1) весь 2) какой-нибудь 3) любой 4) этот 9. укажите вопросительное местоимение: 1) сколько 2) кое-что 3) она 4) нами 10. в каком варианте ответа выделенное слово является притяжательным местоимением? 1) увидел их 2) её нет дома 3) её тетрадь 4) их не спросили

Информация

Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.