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