Python: задачки и вопросы
7.64K subscribers
1.22K photos
2 videos
1 file
101 links
Вопросы и задачки для подготовки к собеседованиям и прокачки навыков

Разместить рекламу: @tproger_sales_bot

Правила общения: https://tprg.ru/rules

Другие каналы: @tproger_channels

Другие наши проекты: https://tprg.ru/media
Download Telegram
🪤 Что выведет код?
Anonymous Quiz
26%
1
61%
2
4%
3
9%
Error
👍1👎1
Марк Лутц «Изучаем Python», глава 𝟹𝟿:

«Корень проблемы здесь кроется в аргументе 𝚜𝚎𝚕𝚏 метода __𝚌𝚊𝚕𝚕__ класса 𝚝𝚛𝚊𝚌𝚎𝚛 — он является экземпляром 𝚝𝚛𝚊𝚌𝚎𝚛 или же экземпляром 𝙿𝚎𝚛𝚜𝚘𝚗? На самом деле нам необходимы в коде оба экземпляра: экземпляр 𝚝𝚛𝚊𝚌𝚎𝚛 для состояния декоратора и экземпляр 𝙿𝚎𝚛𝚜𝚘𝚗 для перенаправления на исходный метод. В действительности 𝚜𝚎𝚕𝚏 обязан быть объектом 𝚝𝚛𝚊𝚌𝚎𝚛, чтобы предоставить доступ к информации состояния 𝚝𝚛𝚊𝚌𝚎𝚛 (его атрибутам 𝚌𝚊𝚕𝚕𝚜 и 𝚏𝚞𝚗𝚌); это справедливо для декорирования как простой функции, так и метода».

«К сожалению, когда имя декорированного метода повторно привязывается к объекту экземпляра класса с помощью __𝚌𝚊𝚕𝚕__, интерпретатор 𝙿𝚢𝚝𝚑𝚘𝚗 передает в 𝚜𝚎𝚕𝚏 только экземпляр 𝚝𝚛𝚊𝚌𝚎𝚛; он вообще не передает экземпляр 𝙿𝚎𝚛𝚜𝚘𝚗 в списке аргументов. Кроме того, поскольку экземпляру 𝚝𝚛𝚊𝚌𝚎𝚛 ничего не известно об экземпляре 𝙿𝚎𝚛𝚜𝚘𝚗, который мы пытаемся обработать посредством вызовов методов, создать связанный метод с экземпляром не удастся, следовательно, нет способа для корректного координирования вызова».

«В итоге предыдущий код передает декорированному методу слишком мало аргументов, что приводит к ошибке».
👍2👎1👻1
🧩 Как вынудить Pandas интерпретировать столбец как дату?
Anonymous Quiz
25%
1
51%
2
15%
3
10%
Никак
Борис Пасхавер, «Pandas в действии», глава 𝟹:

«Параметр 𝚙𝚊𝚛𝚜𝚎_𝚍𝚊𝚝𝚎𝚜 функции 𝚛𝚎𝚊𝚍_𝚌𝚜𝚟 позволяет задать список строковых значений, отмечающих столбцы, текстовые значения из которых 𝚙𝚊𝚗𝚍𝚊𝚜 должна преобразовать в метки даты / времени. В следующем примере в него передается список, содержащий значения "𝙳𝚊𝚝𝚎":»

𝚙𝚍.𝚛𝚎𝚊𝚍_𝚌𝚜𝚟("𝚐𝚘𝚘𝚐𝚕𝚎_𝚜𝚝𝚘𝚌𝚔𝚜.𝚌𝚜𝚟", 𝚙𝚊𝚛𝚜𝚎_𝚍𝚊𝚝𝚎𝚜 = ["𝙳𝚊𝚝𝚎"]).𝚑𝚎𝚊𝚍()

Вот разница между чтением файла без параметра 𝚙𝚊𝚛𝚜𝚎_𝚍𝚊𝚝𝚎𝚜 и с ним:

𝟷. БЕЗ 𝚙𝚊𝚛𝚜𝚎_𝚍𝚊𝚝𝚎𝚜: столбец 𝙳𝚊𝚝𝚎 остается строковым (𝚘𝚋𝚓𝚎𝚌𝚝), значения имеют тип 𝚜𝚝𝚛
𝟸. С 𝚙𝚊𝚛𝚜𝚎_𝚍𝚊𝚝𝚎𝚜=["𝙳𝚊𝚝𝚎"]: столбец 𝙳𝚊𝚝𝚎 преобразуется в 𝚍𝚊𝚝𝚎𝚝𝚒𝚖𝚎𝟼𝟺, значения имеют тип 𝚃𝚒𝚖𝚎𝚜𝚝𝚊𝚖𝚙

Параметр 𝚙𝚊𝚛𝚜𝚎_𝚍𝚊𝚝𝚎𝚜 принимает:
− Список имен столбцов для преобразования в даты
− 𝚃𝚛𝚞𝚎 для автоматического определения столбцов с датами
− Словарь для более сложных преобразований