Найти - Пользователи
Полная версия: Нулевая дата или нереализованный заказ
Начало » Python для новичков » Нулевая дата или нереализованный заказ
1
Typical_beginer
Добрый день!
По заданию нужно вывести количество людей,чьи заказы не были выданы(по задаче только фио заказчика,дата подачи заказа,дата выдачи заказа,больше нельзя)
Сначала вводим дату подачи заказа,а потом дату выдачи.

Я подумал что почему бы в дате выдачи не ввести такой формат даты 00.00.0000
То есть имея такую нулевую дату,можно предположить,что заказ не выполнен(так как не было даты выдачи)
Ниже реализована метод класса(отрывок из программы)

 #Сколько заказов не было удовлетворено(если в дате выдачи будет 0)
      def failorders(self):
            countord=0
            for bookorder in bookorders:
                  if self.datetakeorder=='00.00.00':
                        countord+=1
            print("Количество неудовлетворённых заказов = ", сountord)

Но к сожалению выскакивает ошибка,конечно же ругается на формат даты.
Как можно исправить такую ошибку и реализовать свою задачу?
FishHook
Typical_beginer
Я подумал что почему бы в дате выдачи не ввести такой формат даты 00.00.0000
А почему бы не использовать специальный тип, предназначенный как раз для случаев, когда для переменной нет никаких данных?
https://pythonworld.ru/tipy-dannyx-v-python/none.html

Rodegast
> Но к сожалению выскакивает ошибка,конечно же ругается на формат даты.

Он должен ругаться на переменную countord которую ты написал с ошибкой в последней строке.

> То есть имея такую нулевую дату,можно предположить,что заказ не выполнен(так как не было даты выдачи)

Это не правильно, дата не фиксирует факт выполнения заказа. Для этого нужен отдельный атрибут.

> Я подумал что почему бы в дате выдачи не ввести такой формат даты 00.00.0000

Так делать нельзя. Даты и строки представлены разными типами данных по этому их нельзя смешивать. Можно использовать date(1,1,1) или 0 в случае если даты находятся в timestamp. По этой же причине None тоже лучше не использовать.
py.user.next
Typical_beginer
Ниже реализована метод класса
  
#Сколько заказов не было удовлетворено(если в дате выдачи будет 0)
      def failorders(self):
            countord=0
            for bookorder in bookorders:
                  if self.datetakeorder=='00.00.00':
                        countord+=1
            print("Количество неудовлетворённых заказов = ", countord)
Алгоритмически похоже не ерунду какую-то.

Typical_beginer
Я подумал что почему бы в дате выдачи не ввести такой формат даты 00.00.0000
Для этого есть None. Он есть и в питоне, и в json'е, и в СУБД разных. Лучше задаться вопросом “как так получилось, что ты не можешь там None использовать?”, чем придумывать костыли, которые потом где-нибудь выплывут в отдалённом будущем.
Typical_beginer
Всем спасибо за советы!
Rodegast прав,лучше создать отдельный атрибут,который и будет отвечать за выполнение заказа.
Следовательно я его уже создал,заполнил и буду работать по нему,как требует задание.

Также спасибо всем,кто объяснил что с датой делать так нельзя.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB