Forwarded from Python Lounge: работа и стажировки для программистов
Python позволяет перегружать множество различных операторов, и оператор shift является одним из них. Вот пример того, как создать композицию функции с помощью этого оператора. Здесь эти знаки показывают направление потока данных:
collections import deque
from math import sqrt
class Compose:
def __init__(self):
self._functions = deque()
def __call__(self, *args, **kwargs):
result = None
for f in self._functions:
result = f(*args, **kwargs)
args = [result]
kwargs = dict()
return result
def __rshift__(self, f):
self._functions.append(f)
return self
def __lshift__(self, f):
self._functions.appendleft(f)
return self
compose = Compose
sqrt_abs = (compose() << sqrt << abs)
sqrt_abs2 = (compose() >> abs >> sqrt)
print(sqrt_abs(-4)) # 2.0
print(sqrt_abs2(-4)) # 2.0
Forwarded from Python Lounge: работа и стажировки для программистов
Приветствую всех!
Сегодня мы познакомимся с историей создания Python.
Разработка языка Python была начата в конце 1980-х годов сотрудником голландского института CWI Гвидо ван Россумом.
Для распределённой ОС Amoeba требовался расширяемый скриптовый язык, и Гвидо начал писать Python на досуге, позаимствовав некоторые наработки для языка ABC (Гвидо участвовал в разработке этого языка, ориентированного на обучение программированию).
В феврале 1991 года Гвидо опубликовал исходный текст в группе новостей alt.sources.
С самого начала Python проектировался как объектно-ориентированный язык.
3 декабря 2008 года, после длительного тестирования, вышла первая версия Python 3000 (или Python 3.0, также используется сокращение Py3k).
В Python 3000 устранены многие недостатки архитектуры с максимально возможным (но не полным) сохранением совместимости со старыми версиями Python.
На сегодня поддерживаются обе ветви развития (Python 3.x и 2.x), но поддержка Python 2.7 заканчивается в 2020 году.
Итак, мы узнали на чуточку больше про Python!
Сегодня мы познакомимся с историей создания Python.
Разработка языка Python была начата в конце 1980-х годов сотрудником голландского института CWI Гвидо ван Россумом.
Для распределённой ОС Amoeba требовался расширяемый скриптовый язык, и Гвидо начал писать Python на досуге, позаимствовав некоторые наработки для языка ABC (Гвидо участвовал в разработке этого языка, ориентированного на обучение программированию).
В феврале 1991 года Гвидо опубликовал исходный текст в группе новостей alt.sources.
С самого начала Python проектировался как объектно-ориентированный язык.
3 декабря 2008 года, после длительного тестирования, вышла первая версия Python 3000 (или Python 3.0, также используется сокращение Py3k).
В Python 3000 устранены многие недостатки архитектуры с максимально возможным (но не полным) сохранением совместимости со старыми версиями Python.
На сегодня поддерживаются обе ветви развития (Python 3.x и 2.x), но поддержка Python 2.7 заканчивается в 2020 году.
Итак, мы узнали на чуточку больше про Python!
Forwarded from Python Lounge: работа и стажировки для программистов
Анализ данных с помощью pandas.
Часть 1: Чтение данных из csv файла
Продолжаем работать с pandas.
Эта часть показывает способ обработки данных, хранящихся в формате csv, а также построение простейших графиков.
Часть 1: Чтение данных из csv файла
Продолжаем работать с pandas.
Эта часть показывает способ обработки данных, хранящихся в формате csv, а также построение простейших графиков.
Forwarded from Python Lounge: работа и стажировки для программистов
Анализ данных с помощью pandas.
Часть 3: объединение и группировка данных
Эта часть показывает способы группировки, объединения и дополнения данных.
Часть 3: объединение и группировка данных
Эта часть показывает способы группировки, объединения и дополнения данных.
Forwarded from Python Lounge: работа и стажировки для программистов
Анализ данных с помощью pandas.
Часть 4: объединение нескольких dataframe
В конце этой части, мы загрузим данные о погоде в Канаде за весь 2012 год, и сохраним в CSV файл.
Мы сделаем это, загрузив каждый месяц в отдельности, а затем сгруппировав все месяцы вместе.
Часть 4: объединение нескольких dataframe
В конце этой части, мы загрузим данные о погоде в Канаде за весь 2012 год, и сохраним в CSV файл.
Мы сделаем это, загрузив каждый месяц в отдельности, а затем сгруппировав все месяцы вместе.
Forwarded from Python Lounge: работа и стажировки для программистов
Анализ данных с помощью pandas.
Часть 7: работа с датами и временем
Часто данные содержат не только числовые или строковые значения, но и даты / время, причём в огромном множестве разных форматов. pandas умеет работать с датами; в этой части будет показано, как.
Часть 7: работа с датами и временем
Часто данные содержат не только числовые или строковые значения, но и даты / время, причём в огромном множестве разных форматов. pandas умеет работать с датами; в этой части будет показано, как.
Forwarded from Python Lounge: работа и стажировки для программистов
Анализ данных с помощью pandas.
Часть 8: работа с данными из базы данных SQL
До этого момента, мы получали данные только из csv файлов. Это довольно распространённый способ сохранения данных, но далеко не единственный!
Pandas может работать с данными из HTML, JSON, SQL, Excel (!!!), HDF5, Stata, и некоторых других вещей.
В этой части мы поговорим о работе с данными из баз данных SQL.
Часть 8: работа с данными из базы данных SQL
До этого момента, мы получали данные только из csv файлов. Это довольно распространённый способ сохранения данных, но далеко не единственный!
Pandas может работать с данными из HTML, JSON, SQL, Excel (!!!), HDF5, Stata, и некоторых других вещей.
В этой части мы поговорим о работе с данными из баз данных SQL.
Forwarded from Python Lounge: работа и стажировки для программистов
Автопостинг c ВК в телеграм
По просьбе одного из подписчиков нашего канала мы приготовили для вас статью о том, как же осуществить автопостинг с ВК в телеграм.
По просьбе одного из подписчиков нашего канала мы приготовили для вас статью о том, как же осуществить автопостинг с ВК в телеграм.
Forwarded from Python Lounge: работа и стажировки для программистов
Нахождение 10 наиболее частых слов на web странице
Решим небольшую задачку в данной статье.
Решим небольшую задачку в данной статье.
Forwarded from Python Lounge: работа и стажировки для программистов
HTML парсер на Python
Учитывая современное развитие Интернета, было бы кощунством не написать приложение, взаимодействующее со всемирной паутиной.
Сегодня мы напишем простенький html-парсер на Python.
Наше приложение будет читать код указанной страницы сайта и сохранять все ссылки в ней в отдельный файл.
Это приложение может помочь SEO-аналитикам и веб-разработчикам.
Учитывая современное развитие Интернета, было бы кощунством не написать приложение, взаимодействующее со всемирной паутиной.
Сегодня мы напишем простенький html-парсер на Python.
Наше приложение будет читать код указанной страницы сайта и сохранять все ссылки в ней в отдельный файл.
Это приложение может помочь SEO-аналитикам и веб-разработчикам.
Forwarded from Hello World
Что новенького?
Недавно один мой знакомый скинул мне интересный пример библиотеки, которая позволяет писать код на C прямо в функциях Python.
Либу я глянул, но мне кое-что не понравилось и поэтому я решил написать свою реализацию подобной библиотеки с использованием
Пока я ковырялся с этим, изучил практически досконально метод
✏️ Например я могу объявить одну функцию, а при ее вызове задать совсем другую логику.
Ссылка на гитхаб
Буду очень рад, если вы подпишетесь/поставите звездочку в гитхабе. Если среди вас есть опытные программисты, то не стесняйтесь вносить правки.
Недавно один мой знакомый скинул мне интересный пример библиотеки, которая позволяет писать код на C прямо в функциях Python.
Либу я глянул, но мне кое-что не понравилось и поэтому я решил написать свою реализацию подобной библиотеки с использованием
ctypes
.Пока я ковырялся с этим, изучил практически досконально метод
__call__
и понял что декорирующие классы могут очень сильно менять логику Python.✏️ Например я могу объявить одну функцию, а при ее вызове задать совсем другую логику.
Ссылка на гитхаб
Буду очень рад, если вы подпишетесь/поставите звездочку в гитхабе. Если среди вас есть опытные программисты, то не стесняйтесь вносить правки.
Forwarded from Библиотека питониста | Python, Django, Flask
Функция complex() создает комплексное число:
>>> complex(3.5,4)
(3.5+4j)
Функция eval() исполняет строку:
>>> eval("print(max(22,22.0) — min(2,3))")
20
Функция filter() отфильтровывает элементы, для которых заданное условие верно.
>>> list(filter(lambda x: x%2 == 0,[1, 2, 0, False]))
[2, 0, False]
Функция format() помогает задать формат строки:
>>> print("a = {0} but b = {1}".format(a, b))
a = 2 but b = 3
Функция hash() возвращает хэш-значение объекта:
>>> hash(3.7)
644245917
Функция hex() преобразовывает число в шестнадцатеричное число:
>>> hex(14)
"0xe"
Функция input() читает ввод и возвращает строку:
>>> input("Enter a number")
Enter a number7
"7"
Функция len() возвращает число, показывающее длину строки:
>>> len("Ayushi")
6
Функция locals() возвращает словарь с локальной таблицей имен:
>>> locals()
{"__name__": "__main__", "__doc__": None, "__package__": None, "__loader__": <class "_frozen_importlib.BuiltinImporter">, "__spec__": None, "__annotations__": {}, "__builtins__": <module "builtins" (built-in)>, "a": 2, "b": 3}
Функция open() открывает файл:
>>> file = open("tabs.txt")
>>> complex(3.5,4)
(3.5+4j)
Функция eval() исполняет строку:
>>> eval("print(max(22,22.0) — min(2,3))")
20
Функция filter() отфильтровывает элементы, для которых заданное условие верно.
>>> list(filter(lambda x: x%2 == 0,[1, 2, 0, False]))
[2, 0, False]
Функция format() помогает задать формат строки:
>>> print("a = {0} but b = {1}".format(a, b))
a = 2 but b = 3
Функция hash() возвращает хэш-значение объекта:
>>> hash(3.7)
644245917
Функция hex() преобразовывает число в шестнадцатеричное число:
>>> hex(14)
"0xe"
Функция input() читает ввод и возвращает строку:
>>> input("Enter a number")
Enter a number7
"7"
Функция len() возвращает число, показывающее длину строки:
>>> len("Ayushi")
6
Функция locals() возвращает словарь с локальной таблицей имен:
>>> locals()
{"__name__": "__main__", "__doc__": None, "__package__": None, "__loader__": <class "_frozen_importlib.BuiltinImporter">, "__spec__": None, "__annotations__": {}, "__builtins__": <module "builtins" (built-in)>, "a": 2, "b": 3}
Функция open() открывает файл:
>>> file = open("tabs.txt")
Forwarded from Библиотека питониста | Python, Django, Flask
12 марта с 19:00 до 22:00 митап для разработчиков Java и Python в #ITX5
Слушаем классные доклады и обсуждаем последние тренды. Темы докладов:
⬥ О чём мечтают Java-роботы, глядя на Python
⬥ AOP – альтернативный подход к объектам
⬥ Чистая архитектура в среде изменяющихся требований
Место: БЦ «Оазис» (Коровий вал, 5). Мероприятие бесплатное, нужно лишь зарегистрироваться: https://prglb.ru/393of
Слушаем классные доклады и обсуждаем последние тренды. Темы докладов:
⬥ О чём мечтают Java-роботы, глядя на Python
⬥ AOP – альтернативный подход к объектам
⬥ Чистая архитектура в среде изменяющихся требований
Место: БЦ «Оазис» (Коровий вал, 5). Мероприятие бесплатное, нужно лишь зарегистрироваться: https://prglb.ru/393of
Forwarded from MoscowPython Conf Channel
Что такое DDD и какие инструменты в нем есть, читайте в статье, основанной на докладе Артёма Малышева на Moscow Python Conf++ 2019.
В статье обсуждаем подход DDD в Python, инструменты, подводные камни, контрактное программирование и проектирование продукта вокруг решаемой проблемы, а не используемого фреймворка. Всё, чтобы ваш проект не получился похожим на синего кита — морское животное, которое не может дышать под водой.
В статье обсуждаем подход DDD в Python, инструменты, подводные камни, контрактное программирование и проектирование продукта вокруг решаемой проблемы, а не используемого фреймворка. Всё, чтобы ваш проект не получился похожим на синего кита — морское животное, которое не может дышать под водой.
Хабр
Инструменты Domain Driven Design
Синий кит — отличный пример того, как проектирование сложного проекта пошло не по плану. Кит внешне похож на рыбу, но он млекопитающее: кормит детенышей молоком,...
Forwarded from Библиотека питониста | Python, Django, Flask
Как создать виртуальное окружение в Python и перестать думать о зависимостях
Работаете с несколькими проектами на Python? С этим руководством вы не потонете в зависимостях. Рассказываем, как работать с виртуальным окружением с помощью pipenv и Anaconda.
https://prglb.ru/3vk41
Работаете с несколькими проектами на Python? С этим руководством вы не потонете в зависимостях. Рассказываем, как работать с виртуальным окружением с помощью pipenv и Anaconda.
https://prglb.ru/3vk41
Forwarded from Python Academy
Освоить Python и написать блокчейн за неделю? Легко.
С 16 марта начинается наш новый курс, который подойдет как начинающим, так и людям с опытом. Мы разберём многие темы, начиная с установки интерпретатора и заканчивая парадигмой ООП.
Во время прохождения курса вы получите:
❶ Общие концепты программирования и основы Python;
❷ Практические домашние задания с разбором;
❸ Финальный проект: блокчейн с нуля.
Цена для подписчиков нашего канала 490₽.
Все вопросы и запись на курс: @a1f20 и @dartrisen
С 16 марта начинается наш новый курс, который подойдет как начинающим, так и людям с опытом. Мы разберём многие темы, начиная с установки интерпретатора и заканчивая парадигмой ООП.
Во время прохождения курса вы получите:
❶ Общие концепты программирования и основы Python;
❷ Практические домашние задания с разбором;
❸ Финальный проект: блокчейн с нуля.
Цена для подписчиков нашего канала 490₽.
Все вопросы и запись на курс: @a1f20 и @dartrisen
Forwarded from Moscow Python (Valentin Dombrovsky)
В гостях у Moscow Python Podcast Петр Ермаков, senior data scientist в компании Lamoda, основатель школы DataGym. Обсудили возможности коллективной работы с jupiter notebook и многое другое.
Ведущие выпуска — сооснователь MoscowPython и компании DryLabs Валентин Домбровский, тимлид NVIDIA Злата Обуховская и DevRel компании Evrone, руководитель программного комитета Moscow Python Conf++ Григорий Петров.
https://youtube.com/watch?v=V0XXiOooP_U
Ведущие выпуска — сооснователь MoscowPython и компании DryLabs Валентин Домбровский, тимлид NVIDIA Злата Обуховская и DevRel компании Evrone, руководитель программного комитета Moscow Python Conf++ Григорий Петров.
https://youtube.com/watch?v=V0XXiOooP_U
YouTube
Moscow Python Podcast. Проблемы jupyter notebook и их решения в production (level: junior)
В гостях у Moscow Python Podcast Петр Ермаков, senior data scientist в компании Lamoda, основатель школы DataGym. Обсудили возможности коллективной работы с jupyter notebook и многое другое.
Ведущие выпуска — сооснователь MoscowPython и компании DryLabs…
Ведущие выпуска — сооснователь MoscowPython и компании DryLabs…
Forwarded from Moscow Python (Valentin Dombrovsky)
На Moscow Python Conf++ 2020 Владимир Протасов (Parallels) сделает доклад "Автоматизация рефакторинга". Руководитель ПК конференции Григорий Петров взял у него интервью.
https://www.youtube.com/watch?v=QFp7MIC1wzw
https://www.youtube.com/watch?v=QFp7MIC1wzw
YouTube
Интервью с Владимиром Протасовым (Parallels)
На Moscow Python Conf++ 2020 Владимир Протасов (Parallels) сделает доклад "Автоматизация рефакторинга". Руководитель ПК конференции Григорий Петров взял у него интервью.
Конференция Moscow Python Conf++: http://conf.python.ru
Тезисы доклада Владимира: h…
Конференция Moscow Python Conf++: http://conf.python.ru
Тезисы доклада Владимира: h…
Forwarded from Python Lounge: работа и стажировки для программистов
Так, кто тут у нас только что проснулся?
Расскажу-ка я вам, с чего начинать обучение Python.
Синтаксис
В первую очередь:
- операции с целыми и вещественными числами;
- типы данных;
- переменные, ветвления, стандартный ввод/вывод;
- логические операции, операции сравнения;
- условия: if, else, elif;
- блоки, отступы;
- строки и символы;
- циклы while, for;
- операторы break, continue;
- установка и подключение модулей;
- списки;
- функции;
- словари;
- интерпретатор: установка, запуск скрипта;
- файловый ввод/вывод.
IDE и редакторы кода
Писать в IDLE или Python Shell удобно только простой код, но для проектов лучше найти интегрированную среду разработки (IDE) или редактор кода.
IDE включает в себя редактор с подсветкой синтаксиса и автодополнением, инструменты сборки, выполнения и отладки и другие функции.
В большинстве редакторов есть подсветка синтаксиса и форматирование, выполнение и отладка кода.
Как правило, этот инструмент работает быстрее IDE, но имеет меньше функций.
Среди самых популярных платформ — PyCharm, Wing IDE, Komodo и другие. Больше вариантов — в нашем обзоре.
Git
С распределенной системой управления версиями (Git) нужно познакомиться в начале обучения.
Среди основных навыков — создание и перемещение файлов в каталогах, инициализация Git-репозитория и создание коммитов, а также настройка репозиториев в GitHub.
Расскажу-ка я вам, с чего начинать обучение Python.
Синтаксис
В первую очередь:
- операции с целыми и вещественными числами;
- типы данных;
- переменные, ветвления, стандартный ввод/вывод;
- логические операции, операции сравнения;
- условия: if, else, elif;
- блоки, отступы;
- строки и символы;
- циклы while, for;
- операторы break, continue;
- установка и подключение модулей;
- списки;
- функции;
- словари;
- интерпретатор: установка, запуск скрипта;
- файловый ввод/вывод.
IDE и редакторы кода
Писать в IDLE или Python Shell удобно только простой код, но для проектов лучше найти интегрированную среду разработки (IDE) или редактор кода.
IDE включает в себя редактор с подсветкой синтаксиса и автодополнением, инструменты сборки, выполнения и отладки и другие функции.
В большинстве редакторов есть подсветка синтаксиса и форматирование, выполнение и отладка кода.
Как правило, этот инструмент работает быстрее IDE, но имеет меньше функций.
Среди самых популярных платформ — PyCharm, Wing IDE, Komodo и другие. Больше вариантов — в нашем обзоре.
Git
С распределенной системой управления версиями (Git) нужно познакомиться в начале обучения.
Среди основных навыков — создание и перемещение файлов в каталогах, инициализация Git-репозитория и создание коммитов, а также настройка репозиториев в GitHub.
Forwarded from Hello World
Setters & Getters в Python
В Python методы getters и setters немного не такие, как в других языках программирования. По сути, основная цель этих методов заключается в инкапсуляции данных.
Методы
🔸 Для того, чтобы добавить логику проверки при получении доступа к такой переменной;
🔸 Чтобы избежать прямого доступа к атрибуту класса, то есть для того, чтобы эти атрибуты не были доступны напрямую (или изменены внешним пользователем).
В Python методы getters и setters немного не такие, как в других языках программирования. По сути, основная цель этих методов заключается в инкапсуляции данных.
Методы
getter
и setter
в Python часто используются:🔸 Для того, чтобы добавить логику проверки при получении доступа к такой переменной;
🔸 Чтобы избежать прямого доступа к атрибуту класса, то есть для того, чтобы эти атрибуты не были доступны напрямую (или изменены внешним пользователем).
Forwarded from Hello World
Setters & Getters в Python
В Python методы getters и setters немного не такие, как в других языках программирования. По сути, основная цель этих методов заключается в инкапсуляции данных.
Методы
🔸 Для того, чтобы добавить логику проверки при получении доступа к такой переменной;
🔸 Чтобы избежать прямого доступа к атрибуту класса, то есть для того, чтобы эти атрибуты не были доступны напрямую (или изменены внешним пользователем).
В Python методы getters и setters немного не такие, как в других языках программирования. По сути, основная цель этих методов заключается в инкапсуляции данных.
Методы
getter
и setter
в Python часто используются:🔸 Для того, чтобы добавить логику проверки при получении доступа к такой переменной;
🔸 Чтобы избежать прямого доступа к атрибуту класса, то есть для того, чтобы эти атрибуты не были доступны напрямую (или изменены внешним пользователем).