Search
Write a publication
Pull to refresh
2
0

Пользователь

Send message

Python: коллекции, часть 4/4: Все о выражениях-генераторах, генераторах списков, множеств и словарей

Reading time17 min
Views199K
Часть 1 Часть 2 Часть 3 Часть 4
imageЗаключительная часть моего цикла, посещенного работе с коллекциями. Данная статья самостоятельная, может изучаться и без предварительного изучения предыдущих.

Эта статья глубже и детальней предыдущих и поэтому может быть интересна не только новичкам, но и достаточно опытным Python-разработчикам.

imageБудут рассмотрены: выражения-генераторы, генераторы списка, словаря и множества, вложенные генераторы (5 вариантов), работа с enumerate(), range().
А также: классификация и терминология, синтаксис, аналоги в виде циклов и примеры применения.

Я постарался рассмотреть тонкости и нюансы, которые освещаются далеко не во всех книгах и курсах, и, в том числе, отсутствуют в уже опубликованных на Habrahabr статьях на эту тему.

Оглавление:


1. Определения и классификация.
2. Синтаксис.
3. Аналоги в виде цикла for и в виде функций.
4. Выражения-генераторы.
5. Генерация стандартных коллекций.
6. Периодичность и частичный перебор.
7. Вложенные циклы и генераторы.
8. Использование range().
9. Приложение 1. Дополнительные примеры.
10. Приложение 2. Ссылки по теме.
Изучаем детали, иллюстрации и примеры

Python: Работа с базой данных, часть 1/2: Используем DB-API

Reading time6 min
Views539K
часть 1/2: Используем DB-API часть 2/2: Используем ORM
Python DB-API – это не конкретная библиотека, а набор правил, которым подчиняются отдельные модули, реализующие работу с конкретными базами данных. Отдельные нюансы реализации для разных баз могут отличаться, но общие принципы позволяют использовать один и тот же подход при работе с разными базами данных.

В статье рассмотрены основные методы DB-API, позволяющие полноценно работать с базой данных. Полный список можете найти по ссылкам в конец статьи.

Требуемый уровень подготовки: базовое понимание синтаксиса SQL и Python.
Читать дальше →

Python: Работа с базой данных, часть 2/2: Используем ORM

Reading time14 min
Views117K
часть 1/2: Используем DB-API часть 2/2: Используем ORM
Это вторая часть моей статьи по работе с базой данных в Python. В первой части мы рассмотрели основные принципы коммуникации с SQL базой данных, а в этой познакомимся с инструментарием, позволяющим облегчить нам это взаимодействие и сократить количество нашего кода в типовых задачах.

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


Требуемый уровень подготовки: базовое понимание SQL и Python (код статьи проверялся под Python 3.6). Желательно ознакомится с первой частью, так как к ней будут неоднократные отсылки и сравнения. В конце статьи есть весь код примеров под спойлером в едином файле и список ссылок для более углубленного изучения материала.
Читать дальше →

Ещё один велосипед: храним юникодные строки на 30-60% компактнее, чем UTF-8

Reading time15 min
Views14K


Если вы разработчик и перед вами стоит задача выбора кодировки, то почти всегда правильным решением будет Юникод. Конкретный способ представления зависит от контекста, но чаще всего тут тоже есть универсальный ответ — UTF-8. Он хорош тем, что позволяет использовать все символы Юникода, не тратя слишком много байт в большинстве случаев. Правда, для языков, использующих не только латиницу, «не слишком много» — это как минимум два байта на символ. Можно ли лучше, не возвращаясь к доисторическим кодировкам, ограничивающим нас всего 256 доступными символами?

Ниже предлагаю ознакомиться с моей попыткой дать ответ на этот вопрос и реализацию относительно простого алгоритма, позволяющего хранить строчки на большинстве языков мира, не добавляя той избыточности, которая есть в UTF-8.
Читать дальше →

Аудиофилькина грамота: о частотном диапазоне, возрасте, виниле и АЧХ тарелок Pink Floyd

Reading time8 min
Views65K
В комментариях не впервые нарвался на рассуждение о том, что равномерность АЧХ выше 16 кГц — это чуть ли не самый главный параметр для верности воспроизведения. По крайней мере очень и очень значимый. С подобным мнением от людей, которым больше тридцати лет от роду, а иногда и за сорок, мне приходится сталкиваться часто. И, как правило, те же люди утверждают, что частотный диапазон записей на виниле, якобы, выше, чем у CDDA (равно как и верность воспроизведения). Они же совершенно безапелляционно заявляют, что не просто слышат до 20 кГц (а порой и выше), но и приводят спектрограммы, где любимый многими Ник Мейсон (ударные золотого состава Pink Floyd), якобы, извлекает из своих тарелок эти самые 20 + кГц.



Когда людям в комментах пытаешься объяснить, что они упорствуют в заблуждении, начинаются рассказы, что они великие практики, на спектрограмме всё видели, их “мутью теоретической” не обманешь. В силу образования, я знаком с физиологией слуха, а в силу увлечений — с практикой звукозаписи. Под катом постараюсь подробно объяснить, почему рассказы про “20 кГц в тарелках у Pink Floyd”, волшебную широту диапазона виниловых записей и способность слышать 20 кГц после 30 лет, не имеют ничего общего с реальностью.
Читать дальше →

Улучшение Python-кода: 12 советов для начинающих

Reading time12 min
Views44K
В мои обязанности входит наём Python-разработчиков. Если у заинтересовавшего меня специалиста есть GitHub-аккаунт — я туда загляну. Все так делают. Может быть, вы этого и не знаете, но ваш домашний проект, не набравший ни одной GitHub-звезды, может помочь вам в получении работы.

То же самое относится и к тестовым задачам, выдаваемым кандидатам на должность программиста. Как известно, мы, когда впервые видим человека, формируем первое впечатление о нём за 30 секунд. Это влияет на то, как мы будем, в дальнейшем, оценивать этого человека. Мне кажется несправедливым то, что люди, обладающие привлекательной внешностью, добиваются всего легче, чем все остальные. То же самое применимо и к коду. Некто смотрит на чей-то проект и что-то тут же бросается ему в глаза. Ошмётки старого кода в репозитории — это как крошки хлеба, застрявшие в бороде после завтрака. Они могут напрочь испортить первое впечатление. Может, бороды у вас и нет, но, думаю, вам и так всё ясно.



Обычно легко понять то, что некий код написан новичком. В этом материале я дам вам несколько советов о том, как обыграть кадровиков вроде меня и повысить свои шансы на получение приглашения на собеседование. При этом вас не должна мучить мысль о том, что, применяя эти советы, вы кого-то обманываете. Вы не делаете ничего дурного. Применяя те небольшие улучшения кода, о которых пойдёт речь, вы не только повышаете свои шансы на успешное прохождение собеседования, но и растёте как программист. Не могу сказать, что профессиональному росту способствует упор на заучивание алгоритмов или модулей стандартной библиотеки.

В чём разница между новичком и более опытным разработчиком? Новичок не работал с устаревшими кодовыми базами. Поэтому он не видит ценности в том, чтобы вкладывать время в написание кода, который легко поддерживать. Часто новички работают в одиночку. Они, в результате, не особенно заботятся о читабельности кода.
Читать дальше →

Простейший голосовой помощник на Python

Reading time4 min
Views14K


Для создания голосового помощника не нужно обладать большими знаниями в программировании, главное понимать каким функционалом он должен владеть. Многие компании создают их на первой линии связи с клиентом для удобства, оптимизации рабочих процессов и наилучшей классификации звонков. В данной статье представлена программа, которая может стать основой для Вашего собственного чат-бота, а если точнее – голосового помощника для распознавания голоса и последующего выполнения команд. С ее помощью мы сможем понять принцип работы наиболее часто встречаемых голосовых помощников.
Читать дальше →

Английский с Джорджем Карлином: разбираем гениальный стендап про фразеологизмы

Reading time7 min
Views20K
Сразу скажем — мы в EnglishDom просто обожаем Джорджа Карлина и считаем его одним из величайших комиков всех времен и народов. Он чертовски харизматичный, остроумный и по-настоящему смешной.

У Карлина отличный американский английский с очень разнообразной лексикой.
По его стендапам можно с огромнейшим удовольствием изучать язык. И мы хотим продемонстрировать это на примере его культового выступления про привычные фразы и выражения, которые на самом деле звучат довольно странно. Готовы? Тогда поехали!


Большая роль «маленького разговора»

Reading time7 min
Views13K
О чем вы обычно думаете, когда встречаете кого-то впервые на работе / в лифте или когда вам предстоит сложный телефонный разговор с недовольным клиентом? Большинство носителей английского языка ответили бы: small talk. Как говорится, “Good beginning is half the battle!” (Хорошее начало – половина дела). Почему же иностранцы уделяют в общении такое большое внимание ненавязчивому и ни к чему не обязывающему разговору?

Мое неравнодушие к small talk зародилось очень давно. Проводя годы жизни в стажировках заграницей, я привыкала к стандартам общения, принятых в тех странах, да и изучение английского языка (а потом и методов его преподавания) в качестве профессии просто не оставляло шансов не впитать все тонкости нативного общения. Возвращаясь домой, я каждый раз переживала что-то вроде культурного шока, так как заново училась общению, но уже по правилам моего родного общества. Не могу сказать, что эти правила плохие. Они просто другие.


Читать дальше →

Black [O]lives Matter: раса, криминал и огонь на поражение в США. Часть 1

Reading time9 min
Views17K

Действительно ли полицейские в США стреляют больше в чернокожих, чем в представителей других рас? Связано ли применение силы полицией с расой? Связана ли криминальность с расой? Какова вероятность быть застреленным полицейским в США, если ты белый и если ты чернокожий? Вооружимся открытыми данными, python, pandas и постараемся пролить чуть-чуть света, отставив в сторону пропаганду и политику.

Мне любопытно

Что такое soft skills для инженера в 2020 году, зачем и как компании их проверяют на собеседованиях

Reading time6 min
Views38K


Недавно один из моих знакомых инженеров устраивался на работу в Facebook. Он успешно прошел несколько кругов собеседований, его позвали на собеседование в офис, и уже там на этапе leadership and drive что-то пошло не так. Как признавался знакомый позднее, отвечать на вопросы в виде «как вы сработались со сложным коллегой» или «как вы добивались целей в токсичной обстановке» он был не очень готов.

Именно подобные вопросы позволяют оценить так называемые гибкие навыки (soft skills) инженеров. История собеседования в Facebook меня сильно заинтересовала, поэтому я решил изучить тему soft skills, их проверки и тренировки поподробнее. Бонусом прикладываю список полезных ресурсов и статей, на которые наткнулся в процессе подготовки материала. Поехали!
Читать дальше →

Пишем плагин для CKEditor 4

Reading time8 min
Views25K
CKEditor — это WYSIWYG редактор HTML-кода для браузеров. Всякий раз, сталкиваясь с его документацией или же с его исходным кодом, с исходным кодом его плагинов я терялся. И это не мудрено, ведь CKEditor это очень большой продукт, имеющий довольно сложную инфраструктуру. Но, зачастую, стандартных возможностей не хватает и требуется добавить свою. В этой статье я хотел бы остановиться на плагине, который позволяет встраивать и оперировать в редакторе Yandex-картами.

Вот так это будет выглядеть по окончанию редактирования:


А вот так в режиме редактирования:
Читать дальше →

Напишем и поймем Decision Tree на Python с нуля! Часть 2. Основы Python, необходимые для генерации Decision Tree

Reading time8 min
Views4.3K
Привет, Хабр! Представляю вашему вниманию перевод статьи "Pythonで0からディシジョンツリーを作って理解する (2. Pythonプログラム基礎編)".

Данная статья — вторая в серии. Первую вы можете найти здесь.

2.1 Комментарии обозначаются # или ''' (три одинарные кавычки)


# Комментарий
a = 1 # Комментарий 

''' Это тоже комментарий
b = c
c = d
'''

2.2 Использование динамической типизации (тип определяется автоматически)


# динамическая типизация переменных
# = копирование значения справа налево
i = 1 #  целое число (int)
f = 2.1 # число с плавающей запятой (float)
s = "a" # строковый тип (string)
b = True # логический тип (boolean)
l = [0,1,2] # массив,список (array) 
t = (0,1,2) # кортеж (tuple)
d = {"a":0, "b":1} # словарь, ассоциативный массив

print(i,f,s,b,l,t,d)
# 1 2.1 a True [0, 1, 2] (0, 1, 2) {'a': 0, 'b': 1}

# Когда хотим определить тип, используем type
print(type(i)) # Вывод <class 'int'>

# Переменная не сохраняет, а содержит фактическое значение
# Это, своего рода, переменная-ссылка, указывающая на местоположение значения
# Можно получить идентификатор актуального значения через id
print(id(l)) # 00000000000000 (меняется от исполнения к исполнениюц)
l2 = l # Приведу в пример копию массива, где ссылаюсь на 2 его элемента, а фактический массив - 1. 
print(id(l2)) # 00000000000000 (то же значение, что у вышеуказанного id(l))
# Поскольку существует только один фактический массив, кажется, что он был добавлен в массив l, даже если вы добавили элемент со ссылкой на l2.
l2.append(1)
Читать дальше →

Открытое письмо авторам российской вакцины от COVID-19

Reading time5 min
Views92K

TLDR (примечание переводчика): 4 сентября российские ученые опубликовали результаты 1 и 2 фазы исследования российской вакцины «Спутник V» от SARS-CoV-2. В ответ на публикацию статьи, 22 ученых подписали открытое письмо редакторам журнала и авторам статьи, в котором усомнились в достоверности приведенных данных. В предоставленных результатах неоднократно обнаружена корреляция результатов независимых экспериментов, в том числе полное совпадение анализов и совпадение измерений с точностью до множителя 2x у двух независимых групп добровольцев. Указанные в письме свидетельства говорят об ошибке в подготовке статьи либо намеренной подтасовке данных. Ученые попросили авторов статьи предоставить сырые данные для детального анализа. Журнал Lancet передал содержимое письма авторам статьи и предложил принять участие в научной дискуссии. Российские ученые публично отказались отвечать на критику, заявив что приведенные в статье данные достоверные и точные.

О противоречивых данных в исследовании

[Личный опыт] Из соискателя в наниматели: продакт советует, как проходить интервью в США

Reading time10 min
Views12K
Привет! Меня зовут Анна Наумова, сейчас я работаю старшим менеджером по продукту (Senior Product Manager) в компании Zello в Остине, штат Техас. Сначала я сама прошла 110 собеседований в Америке, а теперь сижу по другую сторону стола и помогаю подбирать инженеров в команду. Хочу рассказать про то, с какими трудностями столкнулась, и к чему быть готовым во время интервью с продактами в США.


Наша команда Zello
Читать дальше →

Автоматический переводчик на Python+GTK3. Альтернатива Яндексу

Reading time1 min
Views27K
Ну вот и пришел долгожданный конец халяве(статья).



Честно говоря, было немного обидно. Вот чего им не хватает!

Я, разумеется, начал искать выход для себя и друзей. И нашел.
Читать дальше →

Переезд инженера в Шанхай: цзябань, фапьяо, загадочные китайцы

Reading time7 min
Views23K


Продолжаем рассказывать о популярных направлениях переезда отечественных IT-специалистов. Были Будапешт и Германия, а на повестке дня — Шанхай: один из крупнейших городов материкового Китая, охотно принимающий иммигрантов.

Несмотря на то, что государства Еврозоны и США по-прежнему возглавляют списки «стран мечты» российских разработчиков, все больше программистов обращают свое внимание на Азиатско-Тихоокеанский регион, в частности, на Китай, чей рынок IT развивается быстрыми темпами. Шанхай — экономическая столица страны, привлекает профессионалов со всего света благодаря обилию рабочих мест и лояльному отношению к иностранцам.

Из-за ситуации с пандемией неясно, когда откроют авиасообщение с Китаем. Появились новости, что полеты в Шанхай возобновятся с 1 октября. Пока ждем официального подтверждения — давайте рассмотрим плюсы и минусы переезда в один из крупнейших мегаполисов Поднебесной.

Читать дальше →

Напишем и поймем Decision Tree на Python с нуля! Часть 1. Краткий обзор

Reading time8 min
Views20K
Привет, Хабр! Представляю вашему вниманию перевод статьи "Pythonで0からディシジョンツリーを作って理解する (1. 概要編)".

1.1 Что такое Decision Tree?


1.1.1 Пример Decision Tree


Например, у нас есть следующий набор данных (дата сет): погода, температура, влажность, ветер, игра в гольф. В зависимости от погоды и остального, мы ходили (〇) или не ходили (×) играть в гольф. Предположим, что у нас есть 14 сложившихся вариантов.



Из этих данных мы можем составить структуру данных, показывающую, в каких случаях мы шли на гольф. Такая структура из-за своей ветвистой формы называется Decision Tree.



Например, если посмотреть на Decision Tree, изображенный на картинке выше, мы поймем, что сначала проверяли погоду. Если было ясно, мы проверяли влажность: если она высокая, то не шли играть в гольф, если низкая — шли. А если погода была облачная, то шли играть в гольф вне зависимости от других условий.
Читать дальше →

Когда будет термояд: 500-мегаваттный проект ITER глазами участника

Reading time9 min
Views78K
Если объяснять на пальцах, термоядерный реактор — это когда в магнитном поле удерживают плазму с температурой в 150 раз выше, чем на Солнце, а в трех метрах от нее находится охлаждающий контур гигантских катушек с температурой почти абсолютный ноль по Кельвину. По факту получаем самую горячую и самую холодную точки в галактике под одним колпаком. В реакторе два изотопа водорода «сплавляются» в гелий, высвобождая нейтрон, обладающий огромной энергией. По сути, это Солнце на Земле.


ITER — международный проект по созданию опытного реактора мощностью 500 МВт, который официально перешел из стадии строительства на стадию сборки.

Виталий Красильников — наш рассказчик, работает на проекте уже семь лет.
Читать дальше →

Information

Rating
Does not participate
Location
Казахстан
Date of birth
Registered
Activity