Module (94%)
Section (73%)

Другие методы, возвращающие итераторы

Еще один полезный метод в классе Calendar - это метод itermonthdates, который принимает в качестве параметров год и месяц, а затем возвращает итератор для дней недели представленных по номерам.

Взгляните на код в редакторе.

Вы наверняка заметили, что в результате выполнения кода возвращается большое количество нулей. Это дни за пределами указанного диапазона месяцев, которые добавляются для сохранения полной недели.

Первые четыре нуля представляют 28.10.2019 (понедельник) 29.10.2019 (вторник) 30.10.2019 (среда) 31.10.2019 (четверг). Остальные числа - это дни месяца, за исключением последнего значения 0, которое заменяет дату 01.12.2019 (воскресенье).

В классе Calendar есть еще четыре похожих метода, которые отличаются возвращаемыми данными:

  • itermonthdates2 - возвращает дни в виде кортежей, состоящих из номера дня месяца и номера дня недели;
  • itermonthdates3 - возвращает дни в виде кортежей, состоящих из года, месяца и дня месяца. Этот метод доступен начиная с версии Python 3.7;
  • itermonthdates4 - возвращает дни в виде кортежей, состоящих из номеров года, месяца, дня месяца и дня недели. Этот метод доступен начиная с версии Python 3.7.

В целях тестирования используйте приведенный выше пример и посмотрите, как на практике выглядят возвращаемые значения описанных методов.



Code

import calendar

c = calendar.Calendar()

for iter in c.itermonthdays(2019, 11):
print(iter, end=" ")
{{ dockerServerErrorMsg }} ×
{{ errorMsg }} ×
{{ successMsg }} ×