Форум сайта python.su
Требуется ввести 2 даты в формате,например 11.12.1990
В стандартном вводе с клавиатуры datetime такой формат(гггг-мм-дд),с помощьюstrftime(“%m/%d/%Y”) как я понял можно дату вывести таком формате 11.12.1990.
Но как правильно ввести дату с клавиатуры в объект класса?
Отрывок проблемного кода:
import datetime class Bookorder: def __init__(self,surnm,dateorder,datetakeorder): """Инициализация атрибутов класса - фамилия,дата заказа книги,дата выдачи книги""" self.surn = input('Фамилия заказчика книг: ') self.dateorder = input('Дата заказа книги(дд-мм-гггг): ') self.dateorder=dateorder.split('.') self.datetakeorder= input('Дата выдачи книги(дд-мм-гггг): ') self.datetakeorder=datetakeorder.split('.')
Офлайн
import datetime class Bookorder: """Инициализация атрибутов класса - дата заказа книги,дата выдачи книги""" cout = 0 dateorder = input( 'Дата заказа книги(дд-мм-гггг): ').split('.') datetakeorder= input( 'Дата выдачи книги(дд-мм-гггг): ').split('.') def __init__(self): """Инициализация атрибутов экземпляра - фамилия""" self.surn = input('Фамилия заказчика книг: ') Bookorder.cout += 1 #создаем 10 экземпляров класса обращаем внимание на счетчик (cout) exampl = [] for i in range(10): qwerty = Bookorder() exampl.append(qwerty) print(qwerty.cout) #текущее состояние count во всех экземплярах for i in exampl: print(i.cout)
Отредактировано AD0DE412 (Янв. 9, 2021 16:23:35)
Офлайн
У вас есть класс
class Bookorder
self.surnm self.dateorder self.datetakeorder
def __init__(self, surnm, dateorder, datetakeorder): """Инициализация атрибутов класса - фамилия,дата заказа книги,дата выдачи книги""" self.surnm = surnm self.dateorder = dateorder self.datetakeorder = datetakeorder
book_order_1 = Bookorder("Ебанько",'12.12.2019','20.02.2020') print(book_order_1.surnm) # Ебанько print(book_order_1.dateorder) #12.12.2019
Typical_beginerПолучением данных с консоли занимаются другие системы,результат которых-данные в нужном виде,
Но как правильно ввести дату с клавиатуры в объект класса?
def get_surname(): my_str = input('Фамилия заказчика книг: ') """приводим строковые данные под нужный тип,проверяем корректность и тд и тп""" return my_str # возвращаем подготовленную переменную def get_dateorder(): date = input('Дата заказа книги(дд-мм-гггг): ') """приводим строковые данные под нужный тип,проверяем корректность и тд и тп""" return date # возвращаем def get_datetakeorder(): date = input('Дата выдачи книги(дд-мм-гггг): ') """приводим строковые данные под нужный тип,проверяем корректность и тд и тп""" return date # возвращаем book_order_1 = Bookorder(get_surname(),get_dateorder(),get_datetakeorder()) print(book_order_1.surnm) # данные которая вернула функция get_surname() print(book_order_1.dateorder) # print(book_order_1.datetakeorder)#
Офлайн
Если я правильно понял то тут две проблемы.
Первая как в программе хранить дату. Я думаю что везде в программе должны быть datetime.datetime() обекты
Вторая как считать с клавиатуры данные.
fmt="%m/%d/%Y" line = input(f"enter datetime in format {fmt}") # считать строку t=datetime.datetime.strptime(line,fmt) # воспользоваться методом для перевода строки во внутреннее представление времени
Офлайн