Что такое Dython?
Мы продолжаем серию статей, посвященных всяческим производным слова Python, и на сей раз познакомим вас с Dython. Вы узнаете:
— как ускорить инжиниринг фичей в несколько раз;
— как очищать и готовить данные.
#лучшиепрактики
Оператор xor
В Python оператор xor (исключающее ИЛИ) обозначается как ^. Он применяется к двум булевым операндам и возвращает True, если только один из них имеет значение True, а остальные — False. Если оба операнда имеют одинаковые значения (True или False), то результатом будет False.
Пример использования оператора xor в Python:a = True
b = False
result = a ^ b
print(result) # Выводит: True
В этом примере переменная a имеет значение True, а переменная b имеет значение False. Оператор xor применяется к этим операндам, и результатом будет True.
Если оба операнда имеют одинаковые значения, например, оба True или оба False, результат будет False:c = True
d = True
result = c ^ d
print(result) # Выводит: False
В этом примере оба операнда (c и d) имеют значение True, поэтому результатом будет False.
Таким образом, оператор xor возвращает True, только если только один из операндов имеет значение True, а остальные операнды имеют значение False.
#начинающим
Открываем цикл статей об ETL для зоопарка чат-ботов
Эксклюзивно для читателей TProger мы открываем цикл статей, посвященный развитию ETL (extract, transform, load) – группе процессов, выполняющих выгрузку, подготовку и загрузку данных в BI-системы. Вы познакомитесь с общепринятыми и не очень системами хранения логов и различными способами их выгрузки в хранилища.
Список технологий, для которых будут налаживаться потоки данных
Подборка актуальных вакансий
— Data Scientist
Где: Москва, можно удалённо
Опыт: от 2 лет
— Python-разработчик
Где: удалённо
Опыт: от 3 лет
— Тестировщик
Где: удалённо
Опыт: от 3 лет
— Data Engineer
Где: Москва
Опыт: от 3 лет
— Senior Python-разработчик
Где: Москва, можно удалённо
Опыт: от 4 лет
— Team Lead Python-разработчик
Где: удалённо
Опыт: от 5 лет
#вакансии #работа
Фестиваль IT и спорта RUNIT пройдёт в Измайловском парке Москвы уже 18 июня
Сможете добежать до самого финиша? А достигнуть ещё большего?
СИБУР Диджитал подготовил «второй финиш» — ряд испытаний для тех, кто, достигая амбициозной цели, сразу же ставит перед собой следующую. Если это про вас, то вам в шатёр СИБУР Диджитал:
— примите вызов от настоящего дерзателя — Виктора Блуда. Он покажет, что значит выкладываться на максимум, и наградит участников;
— разомните не только ноги, но и голову: реши IT-загадки, чтобы выиграть призы;
— посетите «Галерею дерзателей» — выставку фото участников, сделанных во время забега. Найдите там свои эмоции достижений и заберите памятные снимки.
Добежать до финиша? Неплохо.
Пересечь второй финиш — цель, достойная вас.
https://runit.digital/
Реклама ООО «СИБУР» LjN8K825m
Мы думали о слове «останова» неправильно
Многие из нас помнят, что точка останова — это преднамеренное прерывание выполнения программы, при котором выполняется вызов отладчика.
Оказывается, в термине «точка останова» второе слово мужского рода и в исходной форме звучит так: останов. Это просто синоним слова «остановка».
Статья на Викисловаре
#факты
Достойный конкурент менеджеру pip
В своей статье Егор Егоров показывает, как использовать opensource-альтернативу дефолтному менеджеру пакетов pip. Вы узнаете:
— как установить этот менеджер;
— как быстрее создать виртуальное окружение;
— как собирать приложения и публиковать их (в контексте репозитория);
— как решается проблема унификации версий библиотек.
#poetry
На каком языке написана chatGPT
Шах и мат, все, кто пытался переплюнуть Python то скоростью, то простотой! По данным канала AI Insights,
нашумевшая нейросеть OpenAI написана на PyTorch — библиотеке Python.
#факты
Deque: следующий шаг питониста при обращении со списками
deque (double-ended queue – «двусторонняя очередь») - это структура данных в Python, представляющая собой двустороннюю очередь. Она позволяет эффективно добавлять и удалять элементы как с начала, так и с конца очереди. Реализована в модуле collections.my_deque.append(4) # в конец очереди
my_deque.appendleft(0) # в начало очереди
Вот другие операции, которые можно выполнять с двусторонней очередью:
— вставка элементов на определенную позицию (insert()
);
— удаление первого вхождения элемента (remove()
);
— проверка наличия элемента (in
);
— переворот элементов (reverse()
);
— получение срезов (slice
);
— сортировка (sort()
).
deque исполняет все за константное время и потому является эффективным выбором для работы с большими объёмами данных.
#лучшиепрактики
iPad-приложение для изучающих Python в стиле Swift Playgrounds
Владельцы яблочных планшетов наверняка помнят прекрасное приложение Swift Playgrounds, в стильной игровой манере обучающее основам языка.
Для Python выпустили нечто подобное — Tinkerstellar. Хотя создатель Alex Staravoitau и не стал вклинивать изометрические мини-игры, все же качество UI приятно удивляет.
А какие геймифицированные приложения для изучения Python вы знаете?
Питонистов много. Питонисты разные.
Кто-то предпочитает работать с циклами, кто-то — поедая банку варенья, а кто-то — в перерывах между вскапытанием грядок.
Вместе с КРОК предлагаем вам пройти тест, который определит ваши уникальные черты. Ответьте на 10 вопросов и узнайте, какой вы PYшарик: https://tprg.ru/RBet
Реклама ЗАО «КРОК инкорпорейтед»
F-строки для именования переменных
В Python можно использовать интерполяцию строк (string interpolation), чтобы именовать переменные. Вот примеры:with open(f'aWord{name}.txt', "w") as f1:
for line in f:
f1.write(line)
Вот несколько способов "загнать" variable в имя файла.txt:'{}.txt'.format(variable)
'{one}.txt'.format(one=variable)
'%s.txt' % variable
f'{variable}'
Этот трюк поможет при обработке объектов разной длины.
#лучшиепрактики
Django за час
Известный видеоблогер Мош Хамедани виртуозно обучает Django в этом ролике. По состоянию на июнь 2023 процедуры установки, синтаксис и подключаемые ресурсы работают также, без нужды отлаживать свой учебный проект.
Вот перечень затрагиваемых Мошем тем:
— настройка среды разработки;
— создание первого проекта;
— использование встроенного терминала в VSCode;
— создание вашего первого приложения;
— написание просмотров;
— использование шаблонов;
— отладка;
— модель данных.
Этот фреймворк прекрасно подойдет тем, кто созрел для собственного самописного сайта.
#django
Python стал на одну пятую популярнее за 2022
По статистике GitHub, использование Python выросло в 2022 году на 22,5% в сравнении с предыдущим годом. Локдаун ЯПу только помог: люди активно работали в том числе и над opensource-проектами, и за 2021 год почти удвоили число коммитов в сравнении с 2020.
Принимали ли вы участие в opensource-проектах? Расскажите в комментариях.
#карьера
Как находить схожие по смыслу фразы? С этим поможет FuzzyWuzzy
Если вы сталкиваетесь с необходимостью отыскивать схожие по смыслу словосочетания, то для этого создали замечательную библиотеку fuzzywuzzy.
В своей статье Егор Егоров показывает, как выводить похожесть строк минимальным кодом:from fuzzywuzzy import fuzz as f
f.ratio("Строка для проверки", "Проверка строки")
>>>41
Решение подходит и для наполнения ботов тренировочными фразами.
#лучшиепрактики
Обработку исключений теперь можно сопроводить заметкой
В свежем релизе Python 3.11.4 добавили add_note() в стандартный класс исключений BaseException. Его можно использовать для обогащения контекстной информацией. Добавленные заметки появляются в трассировке по умолчанию.try:
raise TypeError("unsupported operand")
except Exception as exc:
exc.add_note("Пояснение...")
raise
Невероятно полезно при множестве блоков try-except.
Подробнее о релизе здесь.
#лучшиепрактики
Что будет, если вы захотите, скажем, пристроить кота на Авито?
Система изучит объявление, проверит дубли среди 150 000 000 других объявлений. Затем кот пройдёт модерацию. Попадёт в базу данных, а потом в систему рекомендаций…
Впрочем, лучше один раз увидеть. А показывают Авито изнутри здесь: https://tprg.ru/bkAN
Реклама ООО «Авито Тех» LjN8Jutzi
ТОП-5 мобильных приложений для изучения Python
Если срочно потребовалось — или просто захотелось — изучить, закрепить новую тему, а ноутбука под рукой нет, выход — мобильные приложения для изучения Python. В статье собрали пять вариантов: простых, удобных и условно бесплатных. Описанные плюсы и минусы — собственный опыт и отзывы на App Store.
#обучение
yield: понять и полюбить
yield — это «сводный брат» return. Каждый раз, когда в коде для генератора встречается этот оператор, выполнение приостанавливается, и значение, указанное после yield, возвращается генератору. Затем выполнение возобновляется с того же места и продолжается до встречи следующего yield.
Для примера, посмотрим на простой генератор, который возвращает числа от 1 до 10:def infinite_sequence():
num = 0
while True:
yield num
num += 1
Этот код создает функцию-генератор infinite_sequence(), которая возвращает числа. Каждый раз, когда выполняется оператор yield, значение i возвращается генератору как текущее, и выполняется приостановка до следующей итерации.
Вызвав эту функцию, мы получим:for i in infinite_sequence():
print(i, end=" ")
>>> 0 1 2 3 4 5 6
И так, пока не остановим выполнение кода.
Yield очень полезен при работе с большими объемами данных, когда недостаточно памяти для загрузки всего набора данных в память. Генератор сможет вернуть список значений по одному, не занимая много памяти.
#лучшиепрактики
Рисовать черепашкой, но на Python? Легко!
Первые уроки информатики у многих из нас ассоциируются с рисующей фигуры черепашкой на PASCAL. Забавно было вращать головой, чтобы понять, куда же зверушку повернуть для рисования сложной фигуры.
У Python тоже есть своя библиотека для рисования, и называется она turtle (документация).
Код ниже нарисует звезду:from turtle import *
color('red', 'yellow')
begin_fill()
while True:
forward(200)
left(170)
if abs(pos()) < 1:
break
end_fill()
done()
А с какими языками программирования вы впервые столкнулись на уроках информатики? Поделитесь в комментариях.
#обучение
Модуль uuid как способ сгенерировать уникальные ID
UUID (Universally Unique IDentifier) — уникальный идентификатор. Для гарантии неповторяемости он состоит из большого количества цифр и букв.
К примеру, при подключении данных к BI-системе, автоматически удаляющей дубликаты, UUID помогают избежать искажения статистических показателей. В сниппете ниже мы добавляем столбец ID к датафрейму df:import uuid
for i in df.index:
df.at[i, 'ID'] = uuid.uuid4()
А в каких ситуациях вам пригождается UUID? Напишите в комментариях.
#лучшиепрактики
Интерпретатор теперь указывает на причину ошибки точнее
В новой версии Python 3.11.4 при отображении пути ошибки (Traceback) вы легче сможете обнаружить причину ошибки, потому что символами ^ теперь выделяется конкретный объект, а не вся строка:Traceback (most recent call last):
File "distance.py", line 11, in <module>
print(manhattan_distance(p1, p2))
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "distance.py", line 6, in manhattan_distance
return abs(point_1.x - point_2.x) + abs(point_1.y)
^^^^^^^^^
AttributeError: 'NoneType' object has no attribute 'x'
Подробнее о релизе здесь.
#лучшиепрактики
map(): чего мы о ней не знали
Функция используется обычно для преобразования элементов одной последовательности в другую. Вашему вниманию необычный нюанс: она может быть комбинирована с другими функциями, чтобы выполнить комплексные операции над последовательностями. Например:from functools import reduce
def add(x, y):
return x + y
numbers1 = [1, 2, 3, 4, 5]
numbers2 = [10, 20, 30, 40, 50]
result = map(lambda x: x[0] + x[1], zip(numbers1, numbers2))
sum = reduce(add, result)
print(sum) # 165
В этом примере map() используется совместно с zip() для сложения соответствующих элементов из двух списков, а затем результаты суммируются с помощью функции reduce().
А какие необычные применения map() вы знаете? Поделитесь в комментариях.
#лучшиепрактики
Типы ошибок
В программировании на языке Python можно столкнуться с различными типами ошибок, которые могут возникать в процессе выполнения программы. Вот некоторые из наиболее распространенных:
— синтаксические ошибки (SyntaxError) возникают, когда нарушены правила языка. Например, пропущенная скобка;
— ошибки времени выполнения (Runtime Errors) возникают во время выполнения программы и могут быть вызваны различными факторами, такими как деление на ноль (ZeroDivisionError), обращение к несуществующему элементу списка (IndexError) или вызов неопределенной переменной (NameError);
— исключения (Exceptions) используются для обработки в том числе необычных ситуаций. Некоторые из распространенных исключений в Python включают ValueError, TypeError, FileNotFoundError и др.;
— ошибки импорта (Import Errors) возникают при проблемах с импортом модулей. Например, неверное имя модуля;
— ошибки атрибутов (Attribute Errors) возникают, когда пытаемся обратиться к атрибуту объекта, который не существует;
— ошибки деления (Division Errors) возникают, когда происходит деление на ноль (ZeroDivisionError) или применяется неправильный оператор деления;
Вы и так наверняка часто встречаетесь с этими сущностями, так что в сотый раз рекомендовать надстраивать обработчики ошибок не будем. Наша задача — дать новичкам освоиться с ошибками, почувствовать уверенность в обращении с ними. В определённый момент вы придете к чувству, что это скорее помощники.
#начинающим
20 разработчиков Python, на которых стоит подписаться
Для любителей Twitter мы собрали каналы самых влиятельных питонистов мира сего. Среди них, конечно же, и создатель Гвидо ван Россум, и авторы популярных фреймворков вроде Django, и даже пара русскоговорящих.
Кого еще вы бы добавили в этот список? Поделитесь в комментариях.
#факты
Как скрыть предупреждения
Вы можете использовать модуль warnings и установить соответствующие параметры. Вот несколько способов скрыть предупреждения в Python:import warnings
warnings.filterwarnings("ignore", category=DeprecationWarning)
В этом примере предупреждения определенной категории, такой как DeprecationWarning (предупреждение об устаревании), будут игнорироваться.
Этот код запрещает выводить предупреждения, но сохраняет их во внутреннем буфере, который можно проверить позже, если требуется.
А вы «гасите» предупреждения? Поделитесь в комментариях.
#начинающим
Как превратить скрипт.py в программу.exe
У любого студента рано или поздно появляется желание похвастать своей рабочей программой перед близкими, которые используют компьютеры, но не программируют. Для этой цели мы создали статью о процессе перегонки питонического кода в .exe.
#начинающим
Python-ковбоев объявили в розыск. Вы знаете их?
Яндекс Практикум ищет ревьюеров и авторов курсов:
— Системный аналитик;
— Python-разработчик.
Задача наставников — помогать студентам учиться. А ревьюеров — проверять код и простыми словами объяснить ошибки. Это удалёнка, можно совмещать с основной работой.
Если у вас самый подходящий опыт на всём Диком Западе и вы готовы им делиться — переходите по ссылке, узнайте подробнее про условия и оставляйте отклик!
Реклама АНО ДПО «Образовательные технологии Яндекса»
Шпаргалка Python
Как и при изучении иностранного языка, порой во время освоения ЯП хочется повесить на стену какую-нибудь подсказку. Особенно прекрасно, если и позиционные аргументы уже запомнились.
А что бы вы добавили на второй лист такой шпаргалки? Поделитесь комментариями.
#начинающим
Автоформатирование таблиц в свежей версии PyCharm
Согласно данным раздела What's New jetBrains, в обновлении PyCharm v.2023.1 стало легко «причесывать» таблицы.
Для этого вызываем меню контекстных действий (Windows – Alt + Enter, macOS – ⌥ + Enter) или жмем желтую лампочку. Затем выбираем «Переформатировать код».
А какие фичи PyCharm используете вы? Поделитесь в комментариях.
#pycharm