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

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

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

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

Реклама: @adtgassetsbot
Download Telegram
​​Программирование на Python: особенности обучения, перспективы, ситуация на рынке труда

Python — высокоуровневый язык программирования общего назначения. Относится к интерпретируемым языкам. То есть написанный на Python код интерпретируется в момент обращения программой-интерпретатором без предварительной компиляции.
И про этот прекрасный язык подробно раассказываеться в этой статье
​​Алгоритм Дейкстры лежит в основе многих востребованных современных сервисов, к числу которых относятся GPS навигация и маршрутизация состояния канала сетевого уровня. Используя некоторые базовые структуры данных, мы разберемся, что именно он делает, каким образом достигает цель и как реализовать алгоритм в Python.
Что делает алгоритм Дейкстры
Алгоритм Дейкстры находит кратчайший путь между двумя вершинами графа. Следовательно, если математические задачи моделируется при помощи графа, используя алгоритм Дейкстры, можно найти кратчайший путь между вершинами.
Реализация на нашем любимом питоне в и разложенный до мелочей объяснение алгоритма статье, а пообщаться и обсудить пост можно в нашем чате.
​​🐍 Хватит использовать print для отладки в Python: переходите на Icecream

Если вы отлаживаете код с помощью print или log, пришло время переключить внимание на более продвинутые варианты. Попробуйте Icecream, и возвращаться к старым методам вам уже не захочется.

Статья
​​🚀Проецирование положения объектов с камеры видеонаблюдения на карту, используя лишь школьную геометрию

[ Статья ]
​​Мы уже рассмотрели алгоритм Дейкстры, но оина не является самым оптимальным алгоритмом.
И так...
Реализация алгоритма A*
Поиск по графам — это семейство схожих алгоритмов. Существует множество вариаций алгоритов и их реализаций. Относитесь к коду этой статьи как к отправной точке, а не окончательной версии алгоритма, подходящей ко всем ситуациям.
Статья с разбором.

Oбсудить пост можно в нашем чате.
​​Мотивационный пост или Крутые проекты сделанны с нуля на python.

Canto − RSS-демон и Canto Curses клиент

Deluge − популярный, легкий, кросс-платформенный клиент BitTorrent

gPodder − простой медиа-агрегатор и проигрыватель подкастов

Pi-Hole − приложение для блокировки интернет-трекинга

Planet − агрегатор каналов RSS и Atom, предназначенный для сбора сообщений из блогов и отображения их на одной странице

Qute Browser − vim-looked бразуер на PyQt5

Tribler − конфиденциальный клиент BitTorrent с поддержкой P2P-контента
Алгебраические типы данных и Python

Возможно, кто-то из читателей, увидев заголовок этой статьи, подумает что-нибудь вроде:
"Что?! Алгебраические типы данных?! Это же что-то из мира функциональных языков программирования. Python?! Ну нет... Где Python со своей динамической утиной типизацией, а где типы данных, и уж тем более алгебраические..."
[ Статья ]
​​🐍 Хватит использовать print для отладки в Python: переходите на Icecream

Если вы отлаживаете код с помощью print или log, пришло время переключить внимание на более продвинутые варианты. Попробуйте Icecream, и возвращаться к старым методам вам уже не захочется.

Статья
​​Простая нейронная сеть в 9 строк кода на Python

Из статьи вы узнаете, как написать свою простую нейросеть на python с нуля, не используя никаких библиотек для нейросетей. Если у вас еще нет своей нейронной сети.
[ Статья ]
Объединяя C++ и Python. Тонкости Boost.Python.
Симбиоз Python и C++ активно используется для реализаций чатботов, эта смесь быстроты и динамичности создаёт по настоячщему комфортные условия для разработчиков и юзеров.
Как их интегрировать в один проект читайте в статье.
[ Статья ]
Oбсудить пост и просто пообщаться можно в нашем чате.
✊🏻✌🏻🤚🏻Проект для новичков и не только - Камень ножницы бумага

Ваша первая игра в Python: камень, ножницы, бумага.
Я предполагаю, что вы изучаете Python, потому что хотите писать интерактивные программы, например видеоигры. Что ж, сегодня твой счастливый день. Вы собираетесь запрограммировать свою первую игру на Python.

https://telegra.ph/Kamen-nozhnicy-bumaga-03-24

обсудить проект и просто пообщаться можно в нашем чате.
​​📄Модули🐍

Программы на Python содержат тысячи, десятки тысяч и сотни тысяч строк кода (есть проекты с миллионами). В таких условиях одним файлом с кодом не обойдёшься — его нужно разбивать на части. Для получения доступа к коду, который находится в других файлах, в Python реализован механизм модулей.

Модули и импортирование
Итак, файл с кодом на Python называется модулем. Имя модуля соответствует имени файла, поэтому файлы в Python принято называть в стиле "snakecase" (отметьте иронию: Python — питон — змея — snake — snakecase). Одни модули могут использовать содержимое других, если импортируют эти другие модули с помощью инструкции import.
Строго говоря, в Python импортировать модули можно несколькими способами:
импортировать сам модуль
импортировать отдельные определения из модуля
импортировать всё содержимое модуля сразу
Импортирование модуля
Рассмотрим применение первого способа — импортирование модуля целиком. Главное удобство упоминания модуля по имени: глядя на код, мы сразу видим, что используемая переменная или вызываемая функция — это часть конкретного модуля.
Синтаксис импорта: import <имя_модуля (без суффикса ".py")>
Всё просто: после ключевого слова import указываем имя модуля (файла). Но при этом суффикс .py в имени надо опустить. То есть, к примеру, для модуля с именем my_module.py в инструкции импорта достаточно прописать my_module, а полный вид инструкции будет таким: import my_module.
В модуле (файле) с именем greeting.py определим функцию say_hi и переменную name:
# file: greeting.py
def say_hi():
print('Hi!')

name = 'Bob'
А в модуле с именем main.py сделаем импорт содержимого модуля greeting.py:
# file: main.py
import greeting # заметьте, расширение ".py" не указывается!

print(greeting.name) # => Bob
greeting.say_hi() # => Hi!
Импортирование модуля в таком виде делает модуль доступным по имени — в данном случае это greeting. К содержимому же модуля можно обратиться, как говорят, "через точку". Причём можно как получать доступ к переменным (greeting.name), так и вызывать функции модуля (greeting.say_hi()).
Импортирование отдельных определений
Синтаксис импорта: from <имя_модуля (без суффикса ".py")> import <список определений>.
Иногда из всего модуля нужна пара функций или переменных, а имя модуля слишком длинное, чтобы писать его каждый раз. Здесь нам может пригодиться следующий вариант использования инструкции import:
# file: main.py
from greeting import say_hi, name
print(name) # используем переменную
say_hi() # вызываем функцию
Здесь после ключевого слова from указано имя модуля, а затем после ключевого слова import — имена определений из этого модуля, которые мы в дальнейшем хотим использовать напрямую (а не "через точку").
В следующем уроке мы рассмотрим третий вариант импортирования модуля ("импорт всего содержимого") и в целом немного углубим наши познания в этой теме.
​​📄Топ проектов которые украсят и добавят ценности в ваше портфолио python-разработчика.🚀

1. Aгрегатор контента - Агрегатор контента - это физическое лицо или организация, которые собирают веб-контент (и / или иногда приложения) из различных онлайн-источников для повторного использования или перепродажи. Есть два типа агрегаторов контента: (1) те, которые просто собирают материалы из различных источников для своих веб-сайтов, и (2) те, которые собирают и распространяют контент в соответствии с потребностями своих клиентов.

2. Сокращатель URL - Сокращение URL-адресов - это метод во всемирной паутине, в котором унифицированный указатель ресурса (URL) может быть существенно короче и по-прежнему направлен на требуемую страницу. Это достигается с помощью перенаправления, которое ведет на веб-страницу с длинным URL-адресом.

3. Решатель Судоку - Стандартный судоку содержит 81 ячейку в сетке 9 × 9 и 9 прямоугольников, каждое из которых является пересечением первых, средних или последних 3 строк, а также первых, средних или последних 3 столбцов.
Существует несколько компьютерных алгоритмов, которые решают большинство головоломок 9 × 9 (n = 9) за доли секунды, но комбинаторный взрыв происходит при увеличении n, ограничивая свойства судоку, которые можно построить, проанализировать и решить как n увеличивается.

4. Приложение для уведомлений на рабочем столе - Уведомление на рабочем столе - это простое приложение, которое выдает уведомление в форме всплывающего сообщения на рабочем столе.

5. Файловый менеджер - компьютерная программа, предоставляющая интерфейс пользователя для работы с файловой системой и файлами. Файловый менеджер позволяет выполнять наиболее частые операции удаления над файлами - создание, открытие / воспроизведение / просмотр, редактирование, изменение, переименование, копирование, изменение атрибутов и свойств, файлов и назначение прав.

⚠️Именно проекты таких типов работодатели ценят в портфолио разработчиков, а наличие этих проектов в списке реализованных, даст вам весомые преимущества перед другими кандидатами.
🐍Методы 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() - сортировка списка на месте (список изменяется, а не возвращается новый).

Подробнее про эти методы в примерах🚀
💡Лайфхаки и памятки для питонистов!

👉Вывести в консоль 2 или более списков одновременно.
>>>list1 = [1, 3, 5, 7]
>>>list2 = [2, 4, 6, 8]
>>>for a, b in zip(list1, list2):
...print (a, b)
Output:
>>>1 2
>>>3 4
>>>5 6
>>>7 8

👉Превратить строку в список.
>>>formatted_list = list(map(int, input().split()))
>>>print (formatted_list)
Output:
>>>[1, 2, 3]

👉Превратить список списков в один список.
>>>import itertools
>>>list1 = [[1,2], [3,4], [5,6]]
>>>lst = list(itertools.chain.from_iterable(list1))
Output:
>>>[1, 2, 3, 4, 5, 6]

👉Раздробить список в группы.
>>>list1 = ['Sun', 'Flowers', 'Peoples', 'Animals', 'Day', 'Night']
>>>partition = list(zip(*[iter(list1)] * 2))
>>>print(partition)
Output:
>>>[('Sun', 'Flowers'), ('Peoples', 'Animals'), ('Day', 'Night')]