Форум сайта python.su
Добрый день!
По заданию нужно вывести количество людей,чьи заказы не были выданы(по задаче только фио заказчика,дата подачи заказа,дата выдачи заказа,больше нельзя)
Сначала вводим дату подачи заказа,а потом дату выдачи.
Я подумал что почему бы в дате выдачи не ввести такой формат даты 00.00.0000
То есть имея такую нулевую дату,можно предположить,что заказ не выполнен(так как не было даты выдачи)
Ниже реализована метод класса(отрывок из программы)
#Сколько заказов не было удовлетворено(если в дате выдачи будет 0) def failorders(self): countord=0 for bookorder in bookorders: if self.datetakeorder=='00.00.00': countord+=1 print("Количество неудовлетворённых заказов = ", сountord)
Офлайн
Typical_beginerА почему бы не использовать специальный тип, предназначенный как раз для случаев, когда для переменной нет никаких данных?
Я подумал что почему бы в дате выдачи не ввести такой формат даты 00.00.0000
Офлайн
> Но к сожалению выскакивает ошибка,конечно же ругается на формат даты.
Он должен ругаться на переменную countord которую ты написал с ошибкой в последней строке.
> То есть имея такую нулевую дату,можно предположить,что заказ не выполнен(так как не было даты выдачи)
Это не правильно, дата не фиксирует факт выполнения заказа. Для этого нужен отдельный атрибут.
> Я подумал что почему бы в дате выдачи не ввести такой формат даты 00.00.0000
Так делать нельзя. Даты и строки представлены разными типами данных по этому их нельзя смешивать. Можно использовать date(1,1,1) или 0 в случае если даты находятся в timestamp. По этой же причине None тоже лучше не использовать.
Офлайн
Typical_beginerАлгоритмически похоже не ерунду какую-то.
Ниже реализована метод класса#Сколько заказов не было удовлетворено(если в дате выдачи будет 0) def failorders(self): countord=0 for bookorder in bookorders: if self.datetakeorder=='00.00.00': countord+=1 print("Количество неудовлетворённых заказов = ", countord)
Typical_beginerДля этого есть None. Он есть и в питоне, и в json'е, и в СУБД разных. Лучше задаться вопросом “как так получилось, что ты не можешь там None использовать?”, чем придумывать костыли, которые потом где-нибудь выплывут в отдалённом будущем.
Я подумал что почему бы в дате выдачи не ввести такой формат даты 00.00.0000
Офлайн
Всем спасибо за советы!
Rodegast прав,лучше создать отдельный атрибут,который и будет отвечать за выполнение заказа.
Следовательно я его уже создал,заполнил и буду работать по нему,как требует задание.
Также спасибо всем,кто объяснил что с датой делать так нельзя.
Офлайн