Python Lounge: работа и стажировки для программистов – Telegram
Python Lounge: работа и стажировки для программистов
3.91K subscribers
93 photos
1.17K links
Здесь можно найти интересующую вас работу и стажировки для программистов, а так же полезные статьи про Python.

Размещение вакансии только - @perezvonyubot

Ссылка на канал: @python_lounge

Мы входим в сеть promopoisk.com

Реклама: @adtgassetsbot
Download Telegram
​​​​📌Библиотека Matplotlib

Библиотека Matplotlib является одним из самых популярных средств
визуализации данных на Python. Она отлично подходит как для создания
статичных изображений,так и анимированных, и интерактивных
решений.

🎯Matplotlib является частью Scientific Python — набора библиотек для
научных вычислений и визуализации данных, куда также входят NumPy 1 ,
SciPy 2 , Pandas 3 , SymPy 4 и ещё ряд других инструментов.

При описании параметров функций будет использоваться следующий
формат:
• имя_аргумента: тип(ы)
◦ описание

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

Установка:

Установка Matplotlib с помощью менеджера pip
Для установки Matplotlib с помощью менеджера пакетов pip введите в
командной строке вашей операционной системы следующие команды:
python -m pip install -U pip
python -m pip install -U matplotlib
Первая из них обновит ваш pip, вторая установит Matplotlib со всеми
необходимыми зависимостями.

Проверим версию библиотеки, она, скорее всего, будет отличаться от
приведённой ниже:
>>> matplotlib.__version__
'3.0.3'



📖Полезные ссылки:
https://numpy.org/
https://scipy.org/
https://pandas.pydata.org/
https://www.sympy.org/en/index.html
​​📌Основные элементы графика в библиотеке Matplotlib.
Сегодня рассмотрим основные термины и понятия, касающиеся изображения
графика, с которыми вам необходимо будет познакомиться.

Далее мы будем использовать термин "график" для обозначения всего
изображения, которое формирует Matplotlib (см. рисунок под статьей), и линии,
построенной по заданному набору данных.

Корневым элементом, на котором Matplotlib строит изображение,
является фигура (Figure). Всё, что перечислено на рисунке — это
элементы фигуры. Рассмотрим её составляющие более подробно.

👉График
На рисунке ниже представлены два графика — линейный и точечный.
Matplotlib предоставляет огромное количество различных настроек,которыеможноиспользовать для того, чтобы придать графику требуемый вид: цвет, толщина, тип, стиль линии и многое другое.

👉Оси
Вторым по важности элементом фигуры являются оси. Для каждой оси
можно задать метку (подпись), основные (major) и дополнительные
(minor) тики, их подписи, размер, толщину и диапазоны.

👉Сетка и легенда
Сетка и легенда являются элементами фигуры, которые значительно
повышают информативность графика. Сетка может быть основной
(major) и дополнительной (minor). Каждому типу сетки можно задавать
цвет, толщину линии и тип. Для отображения сетки и легенды
используются соответствующие команды.

Ниже представлен код, с помощью которого был построен график,
изображённый на рисунке.

import matplotlib.pyplot as plt
from matplotlib.ticker import (MultipleLocator, FormatStrFormatter,
AutoMinorLocator)
import numpy as np
x = np.linspace(0, 10, 10)
y1 = 4*x
y2 = [i**2 for i in x]
fig, ax = plt.subplots(figsize=(8, 6))
ax.set_noscript('Графики зависимостей: y1=4*x, y2=x^2', fontsize=16)
ax.set_xlabel('x', fontsize=14)
ax.set_ylabel('y1, y2', fontsize=14)
ax.grid(which='major', linewidth=1.2)
ax.grid(which='minor', linestyle='--', color='gray', linewidth=0.5)
ax.scatter(x, y1, c='red', label='y1 = 4*x')
ax.plot(x, y2, label='y2 = x^2')
ax.legend()
ax.xaxis.set_minor_locator(AutoMinorLocator())
ax.yaxis.set_minor_locator(AutoMinorLocator())
ax.tick_params(which='major', length=10, width=2)
ax.tick_params(which='minor', length=5, width=1)
plt.show()
Какой элемент является корневым в библиотеке Matplotlib для строения изображения.
Anonymous Quiz
67%
Figure(Фигура)
24%
Subplot(Подграфик)
9%
XAxis (Ось Х)
1%
YAxis (Ось Y)
Друзья, вы просили иногда делиться лучшими вакансиями в ИТ.
Вот и она!

Джедай PHP на Laravel (Игровой сектор)

Требования:
- Рассмотрим спеца с коммерческим опытом и хорошим кодом /строгое и полное соблюдение PSR стандартов, углубленные знания SQL
- Умение анализировать и оптимизировать запросы, проектировать структуры таблиц с максимальной производительности
- Написание автоматических тестов
- Понимание REST API и протокола HTTP
- Опыт работы с Git, Composer
- Опыт работы с Jira/Gitlab

Условия:
- Работаем удаленно
- З/П 150 000 - 180 000 рублей

Контакты: @Olga_EORA
Как писать хороший код на python?🤔📄

Умение правильно и хорошо писать код — это важный навык для python-разработчика. Как научится писать хороший код — вы узнаете из сегодняшней статьи. Говоря о „хорошем коде“ имеется в виду большое количество факторов с которыми вам предстоит познакомиться, чтобы писать правильный и "конвейерный" код.

Возможно, самый известный сборник этих факторов Python был написан Тимом Питерсом, давний участник языка и его группы новостей
comp.lang.python.
Этот сборник также известен под названием «The Zen of Python» и в нём изложены следующие факторы „хорошего кода“.

👉🏻 The Zen of Python, by Tim Peters 👈🏻
· Beautiful is better than uglyКрасивое — лучше, чем уродливое
·
Explicit is better than implicitЯвное лучше, чем неявное.
·
Simple is better than complexПростое лучше, чем сложное.
·
Complex is better than complicated - Сложное лучше, чем запутанное.
· Flat is better than nested - Плоский лучше, чем вложенный.
· Sparse is better than dense - Редкое лучше, чем частое.
· Readability counts - Читаемость имеет значение.
· Special cases aren't special enough to break the rules - Особых случаев недостаточно, чтобы нарушать правила.
· Although practicality beats purity - Хотя практичность лучше чистоты.
· Errors should never pass silently - Ошибки никогда не должны замалчиваться.
· Unless explicitly silencedЕсли только они не замалчиваются явно.
· In the face of ambiguity, refuse the temptation to guessПеред лицом двусмысленности откажитесь от соблазна угадать.
· There should be one -- and preferably only one -- obvious way to do it.Должен быть один - и желательно только один - очевидный способ сделать это.
· Although that way may not be obvious at first unless you're DutchХотя поначалу этот способ может быть не очевиден, если вы не голландец.
· Now is better than neverЛучше сейчас, чем никогда.
· Although never is often better than *right* nowХотя никогда не бывает лучше, чем прямо сейчас.
· If the implementation is hard to explain, it's a bad ideaЕсли реализацию сложно объяснить, это плохая идея.
· If the implementation is easy to explain, it may be a good idea Если реализацию легко объяснить, это может быть хорошей идеей.
· Namespaces are one honking great idea -- let's do more of those! Пространства имен - одна отличная идея - давайте сделаем их больше!
Эти факторы можно быстро заполучить просто написав в интерпретаторе
import this
После чего вы получите данный список.
***
Без пониманий этих факторов ваш код будет непригодным для больших, и без того сложных проектов.
***
#подработка
Нужен разработчик Golang для выполнения разовой задачи.

Суть задачи:
— Сделать файловый сервер с разграничением прав доступа к файлам.

— Работа с базой данных PostrgeSQL.
— Отдача файлов на загрузку.
— Проверка доступа по одноразовому токену
— HTTP сервер.

P.S.
Простейший скрипт, не нужно чего-то сложного. Схема и описание задачи готово. По нашим ожиданиям, это займёт у вас не более 3 дней.

Контакты: @Olga_EORA
🐍Методы list в Python💻

Во время собеседования на вакансию
python-разработчика очень часто звучат вопросы про списки и их методы.
Мы собрали для вас эти методы в одной статье.
А прочитав эту статью до конца, вы будете знать как удовлетворительно отеветить на этот вопрос.

1. append() - добавляет элемент в конец списка.

2. clear() - удаляет все элементы из списка

3. copy() - делает поверхностную копию списка

4. count() - считает, сколько раз в списке встречается переданный аргумент.

5. extend() - добавляет в конец списка итерируемую последовательность.

6. index() - возвращает индекс указанного элемента. Если таких элементов несколько, вернет индекс только первого. Если таких элементов нет,генерируется исключение. Вторым и третьим аргументом можно указать срез для поиска.

7. insert() - вставляет элемент перед указанным индексом. Сначала передается индекс, затем элемент.

8. pop() - удаляет элемент по указанному индексу и возвращает его. Если индекс не указан, то удаляет и возвращает последний элемент. Метод генерирует исключения, если список пуст или указан индекс за пределами диапазона.

9. remove() - удаляет первый объект из списка, значение которого равно аргументу. Если такого элемента нет, то возникает ошибка.

10. reverse() - переворачивает список на месте.

11. sort() - сортировка списка на месте (список изменяется, а не возвращается новый).

Подробнее про эти методы в примерах🚀
Распознавание лиц и верификация пользователей по ним – будущее или уже существующая реальность? Даже больше, каждый уже может написать свою подобную программу. Это настолько просто, что требуется буквально двадцать строк кода и всего лишь полчаса времени для понимания.

Читать статью
📌🐍Функции map(), filter() и reduce() используют, чтобы привнести в Python немного функционального программирования.
Все три из них являются удобными функциями, которые можно заменить на списки или циклы, но они
обеспечивают более элегантный и краткий подход к некоторым задачам.

1. map() -Функция map перебираeт все элементы в данном итеративном объекте и выполняeт функцию, которую мы передали в качестве аргумента для каждого из них.

2. reduce() - reduce работает иначе, чем map () и filter(). Он не возвращает новый список, основанный на функции и итерации, которые мы передали.
Вместо этого он возвращает одно значение.

3. filter() - Подобно map (), filter () принимает объект функции и итерацию и создает новый список. Как следует из названия, filter () формирует новый список, содержащий только элементы, удовлетворяющие определенному условию.

Примеры сможете найти ниже.🚀
🐍Представляем вам 5 способов которыми можно развернуть строку в python.🚀

📌Способ 1: С помощью slicing().

📌Способ 2: С помощью while() цикла.

📌Способ 3: С помощью join() и reversed().

📌Способ 4: С помощью list.reverse().

📌Способ 5: С помощью рескурсии.

https://telegra.ph/5-Sposobov-razvernut-stroku-v-Python-02-10
📋Топ 10 популярных вопросов на собеседовании python-разработчика.🚀

1.Для чего используются ключевые слова Global и Nolocal?

2.В чём разница методов Classmethod и StaticMethod?

3.Что такое GIL?

4.Как и для чего используются Метаклассы.

5.Что такое Аннотации типов? Что такое Общие Аннотации типов?

6.Что такое Generator-функции?

7.Что такое Декораторы?

8.Что значит 'Pickling'? А 'Unpickling'?

9. Что значат *args и **kwargs в функциях python?

10.Для чего предназначены файлы с расширением '.pyc'?

Ответы на эти вопросы по сможете найти по ссылке ниже.
https://telegra.ph/Top-10-populyarnyh-voprosov-na-sobesedovanii-python-razrabotchika-02-15
#вакансия
Друзья, на связи автор канала. Помогаю знакомым найти человека, платят хорошо, команда - супер.
Если есть кто из знакомых - личная просьба репостнуть, очень поможете🤘

Ведущий проектный менеджер по интеграции в Boxberry

Чтобы стать частью команды, необходимо:
— Знать английский язык на уровне advanced (коммуникации и переписка с партнерами в 90% случаев на английском языке);
— Иметь опыт работы в технической поддержке веб-сервисов +опыт реализации проектов по интеграции ПО от 2 лет

Задачи:
— Оценка требований к интеграции ключевых клиентов и партнеров компании (крупные зарубежные интернет-магазины, e-commerce площадки, логистические службы);
— Запуск новых интеграций API, предпусковые проверки, тестирование;
— Подготовка технических спецификаций с использованием партнерского API

Условия:
— Парт-тайм офис и удалёнка, ЗП от 150 000 р.

Вопросы и резюме @darriailyina или d_ilina@boxberry.ru
Работа в хорошем редакторе способствует созданию здорового проекта, хорошие редакторы всячески помагают разработчику, а плохие либо не помагают , либо вовсе препятствуют разработке.

Вот лучшие редакторы для python-разработчиков по мнению опытных питонистов...🚀
1. PyCharm

2. Spyder

3. SublimeText

4. Jupyter

5. Atom

6. Python IDLE

7. VSCode

8. Wing

9. Thonny

10. PyDev

Приятный глазу UI в соответствии с сильной функциональностью является несущим звеном каждого успешного проекта.
​​📌5 лучших библиотек Python для числовой статистики и структур данных.📊💡

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

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

Pandas - Библиотека Pandas предоставляет высокопроизводительные простые в использовании структуры dara и инструменты анализа данных для языка программирования Python. Pandas фокусируется на основных типах данных и их методах, оставляя другие пакеты для добавления более сложных статистических функций.

Quand DSL - Quand DSL - это предметно-ориентированный язык для количественной аналитики в области финансов и торговли.
Quand DSL - функциональный язык программирования для моделирования производных инструментов.

Statistics - Это встроенная библиотека Python для всех основных статистических расчетов.
12 небольших фишек для улучшения твоего кода

1. Обмен значений
x, y = 1, 2
x, y = y, x

2. Получение строки из списка
a_list = [‘I’, ‘like’, ‘python’, ‘programming’]
a_string = “ “.join(a_list)

3. Разбиение строки на список
a_string = ‘I like python programming’
a_list = a_string.split()

4. Инициализация листа каким либо значением
[0]*1000 # лист, заполненный 1000 нулями
[1]*1000 # лист, заполненный 1000 единицами

5. Слияние словарей
x = {‘a’:1, ‘b’:2}
y = {‘c’:3, ‘d’:4}
z = {**x, **y}

6. Переворачивание строки
a = ‘My string’
a = a[::-1]

7. Возврат нескольких переменных из функции
def test(x,y):
return x,y
a,b = test(1,2)

8. Итерирование по словарю
a_dict = {‘a’:1, ‘b’:2, ’c’:3}
for k, v in a_dict.items():
print(‘{0}:{1}’.format(k, v))

9. Инициализация пустых контейнеров
a_list = list()
a_dict = dict()
a_set = set()
a_tuple = tuple()

10. Удаление символов в конце строки
my_string = ‘My string///‘
my_string.strip(‘/‘)

11. Проверка занимаемой объектом памяти
import sys
x = 1
print(sys.getsizeof(x))

12. Нахождение наиболее частого элемента в списке
a_list = [1, 2, 3, 1, 1, 4, 1, 4, 4, 1]
print(max(set(a_list), key=a_list.count))
​​👉Использование кортежей в Python🐍

Кортеж - это упорядоченная и неизменяемая коллекция. В python кортежи записываются в круглые скобки.
Пример:
this_tuple = ("apple", "banana", "cherry")
print (this_tuple)
#>>> ('apple', 'banana', 'cherry')

Доступ к элементам кортежа
Вы получаете доступ к элементам кортежа, ссылаясь на номер индекса в квадратных скобках
Пример:
this_tuple = ("apple", "banana", "cherry")
print (this_tuple[1])
print (this_tuple[0])
print (this_tuple[2])

#>>>banana
#>>>apple
#>>>cherry

Отрицательная индексация

Отрицательная индексация означает начало с конца, -1 относится к последнему элементу, -2 относится ко второму последнему элементу и т. д.
Пример:
this_tuple = ("apple", "banana", "cherry")
print (this_tuple[-1])
print (this_tuple[-2])
print (this_tuple[-3])

#>>>cherry
#>>>banana
#>>>apple

Диапазон индексов

Вы можете указать диапазон индексов, указав, где начать и где закончить диапазон.
При указании диапазона возвращаемое значение будет новым кортежем с указанными элементами.
Пример:
this_tuple = ("apple", "banana", "cherry", "mango")
print (this_tuple[1:3])
print (this_tuple[0:2])
print (this_tuple[0:1])

#>>('banana', 'cherry')
#>>>('apple', banana')
#>>>('apple')

Изменить значения кортежа

Как только кортеж создан, он не может изменить свои значения. Кортежи неизменяемы или являются immutable как это еще называется.
Но есть обходной путь. Вы можете преобразовать указатель в список, изменить список и преобразовать список обратно в кортеж.
Пример:
x = ("apple", "banana", "cherry")
y = list(x)
y[1] = "kiwi"
x = tuple(y)
print (x)

#>>>('apple', 'kiwi', 'cherry')