Python_No_Panic
2.06K subscribers
123 photos
18 videos
49 links
Самый перспективный, полезный и ламповый канал по Python в русскоязычном телеграме!

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

Сотрудничество:
@Niik_Whaale
Download Telegram
Всем доброго времени суток, на связи команда Python_No_Panic.

Да-да, мы новые админы и теперь наш с вами канал называется именно так.

Наша основная команда состоит из двух лучших друзей с обширным опытом и разноплановыми навыками. Давайте знакомиться.

Nick Whale - наш hard skill master. Имеет опыт работы на Python, Java, JavaScript, HTML, CSS и не только. Изучает программирование с 13-ти лет, имеет опыт преподавания в IT сфере более трех лет, а также занимается крипто инвестициями и является профессионалом в нагибании системы образования. С радостью ответит на ваши вопросы касательно практических и теоретических моментов написания кода.

FREQUENCY CONFLICT - наш soft skill master. Начал изучать психологию в возрасте 13-ти лет до того, как это стало мейнстримом, самостоятельно освоил профессию музыкального продюсера и звукорежиссёра после того, как бросил вуз, имеет огромный опыт в сфере самообразования и систематизации учебного процесса для себя и других. С радостью ответит на ваши вопросы о том, как эффективно впитывать знания, в чем разница между working hard и working smart, как систематизировать творческий процесс, а также окажет вам психологическую поддержку.

Наша цель заключается в том, чтобы помочь вам стать крутыми python разработчиками, прокачаться профессионально и личностно, а также создать сплоченное комьюнити, где вы всегда сможете получить ответы на свои вопросы и найти единомышленников.

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

Также предлагаем подписаться на наш канал по собеседованиям в IT сфере и канал по Java, если вы хотите начать учить второй язык, а еще вы можете выбрать то, какие категории постов в нашем с вами канале вам будут более интересны в опросе ниже.

Желаем вам успехов и будем рады помочь вам на пути вашего профессионального и личностного роста!

#appeal
👍6💯3👎2😁1
Python roadmap

Ловите схему, которая поможет вам лучше ориентироваться в процессе изучения нашего любимого языка программирования.

Всем продуктивного дня!

#roadmap
🔥12🆒4👍21👎1😱1
This media is not supported in your browser
VIEW IN TELEGRAM
4💩2🍌2👎1
Что такое асинхронное программирование?

В прошлом посте мы с вами рассматривали, какие знания нужны крутому Python разработчику. Сегодня мы начинаем наш цикл постов об асинхронном программировании. Для начала разберемся, что это такое и чем этот подход отличается от синхронного выполнения кода.

В синхронном программировании методы написаны для выполнения одной задачи за раз. Если функция зависит от вывода другой функции, она должна дождаться завершения выполнения этой функции. Программа фактически останавливается до тех пор, пока функция не завершит свое выполнение. Это означает, что только одна операция может выполняться одновременно.

Это замедляет работу программы, поскольку она вынуждена останавливаться и ждать, пока что-то завершится. В программе есть много блоков, которые могли бы выполняться одновременно.

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

Это означает, что процессор нашего компьютера и сама программа не ждет выполнения только одной конкретной операции, которая выполняется в другой среде, например запрос к API, наш процессор может начать выполнение другой части программы, в то время как предыдущая еще не завершена и все еще выполняется в другом месте.

Надеемся вам понравился наш пост, если у вас есть какие-то предложения или исправления, то не стесняйтесь их писать в комментариях.

#learning_python
👍30🆒1
Как работать с асинхронными функциями в Python?

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

Давайте сначала посмотрим на обычную функцию, а потом рассмотрим чем она отличается от асинхронной.

def say_hello(name):
print(“Hello, “ + name)

А теперь взглянем на асинхронный код:

import asyncio
async def say_hello(name):
print("Hello, " + name)

async def join_channel(name):
for i in range(0, 10):
print("I want to join, " + name)

async def main():
task1 = asyncio.create_task(
join_channel("Python_No_Panic")
)
await say_hello("Python")

asyncio.run(main())

Первое, на что мы должны обратить внимание, это слово «async». Оно появляется при импорте библиотеки «asyncio», которая позволяет нам как раз работать с асинхронными функциями.

Чтобы создать асинхронную функцию мы как раз пишем ключевое слово «async».

Надо учитывать, что просто асинхронную функцию вызывать мы не сможем. Для вызова асинхронной функции нам понадобиться ключевое слово «await».

Также стоит обратить внимание на интересный метод «create_task». Он предоставляет инструмент для запланированного coroutine (функции с ключевым словом «async»), который асинхронная программа может запрашивать и использовать для взаимодействия с coroutine(функции с ключевым словом «async»).

Метод «run» мы используем для запуска асинхронного процесса. То-есть это будет начальной точкой для запуска нашей асинхронной программы.

Ставьте свои реакции, если вам понравился этот пост. Пишите свои предложения и замечания в нашем чате и комментариях ниже.

Желаем вам хороших выходных, ваша команда Python_No_Panic!

#learning_python
👍26💯3👎2🤯1
Как заработать на ChatGPT?

Всем привет, на связи команда Python_No_Panic. Вы уже скорее всего слышали про нашумевшую нейросеть ChatGPT, которая является самым передовым чат-ботом на данный момент, и предоставляет возможность получать хорошо сформулированные ответы на ваши вопросы, может составить вам сценарий для видео и даже умеет писать код.

Так вот, мы уже продолжительное время используем ChatGPT в своих повседневных нуждах - поиск информации, ее анализ, поиск ответов на любые вопросы. И недавно ребята с канала Back to the Future, фокусирующиеся как раз на теме AI, наткнулись на парочку идей по заработку на ChatGPT, а также подогнали нам видос, раскрывающий эту тему более подробно.

Дисклеймер:
«Все изложенное является мнением авторов, а не официальным инвестиционным советом — пожалуйста, проведите собственное исследование, прежде чем рисковать своими деньгами.»
6
Алгоритмы!

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

Списки Python — это упорядоченные наборы данных, как и массивы в других языках программирования. Это позволяет использовать различные типы элементов в списке. Реализация Python List похожа на Vectors в C++ или ArrayList в Java. Дорогостоящей операцией является вставка или удаление элемента из начала списка, поскольку все элементы необходимо сдвинуть. Вставка и удаление в конце списка также могут стать дорогостоящими в случае, если предварительно выделенная память переполняется.

Пример: создание списка Python

List = [1, 2, 3, "Python_No_Panic", 5.5]
print(List)

Вывод

[1, 2, 3, "Python_No_Panic", 5.5]

Доступ к элементам списка можно получить по назначенному индексу. В python начальный индекс списка последовательность равна 0, а конечный индекс (если есть N элементов) N-1.

Пример:

No_Panic_List = [“N“, “o“, “_“, “P“, “a“, “n“, “i“, “c“]

print(No_Panic_List[0]) #“N“

print(No_Panic_List[-1]) #“c“

Здесь приведены сложности наших операций со списком. Учитывайте, что буква «l» означает список, то-есть просто создание конструкции типа test_list = []

┃Операция┃Пример┃Сложность┃

┃Получение элемента┃l[i]┃O(1)┃

┃Сохранение элемента┃l[i] = 0┃O(1)┃

┃Размер списка┃len(l)┃O(1)┃

┃Добавление элемента в конец списка┃l.append(5)┃O(1)┃

┃Удаление последнего элемента (pop)┃l.pop()┃O(1)┃

┃Очищение списка┃l.clear()┃O(1)┃

Надеюсь мы помогли вам чуть лучше понять конструкцию списка. Если у вас есть какие-то вопросы, то мы ждем их в комментариях, также как и лайки под этим постом. А также у нас есть вопрос: интересна вам тема с изучением сложности алгоритмов? Если да, то напишите плюсик в чате, посмотрим, насколько данная тема востребована.

#learnng_python #algorithms
👍121🆒1
Как Python разработчику зарабатывать больше?

Если сейчас вы думаете о том, как:

💰Увеличить свой доход

💰Повысить качество жизни

💰Обновить гаджеты и технику

💰А может даже переехать в другую страну, то наша команда вас отлично понимает.

А еще вас прекрасно понимают ребята с канала Money_Python, и именно поэтому они сделали бота, который предоставляет крутой и разнообразный контент по теме заработка на программировании на нашем с вами любимом питоне.

Мы уже затестили бота на себе, и можем смело рекомендовать его вам, так что залетайте в Money_Python_Bot - он расскажет о том, как нарастить свой доход в нашем с вами любимом деле, и не забудьте передать от нас привет.

Всем отличного дня и хороших доходов!
🆒4👍1
Как повысить эффективность алгоритмов ч.1

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

Для того, чтобы сделать ваш алгоритм более быстрым и эффективным, вы можете выполнить следующие действия:

Оптимизируйте сам алгоритм. Ищите способы упростить логику алгоритма, чтобы уменьшить количество шагов, необходимых для его выполнения.

Используйте более эффективные структуры данных. Рассмотрите возможность использования структур данных, оптимизированных для определенного типа выполняемых операций.

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

Надеемся, что вы нашли для себя полезные шаги для оптимизации ваших алгоритмов. В следующем посте мы обсудим новые методики для улучшения ваших алгоритмов.

Поддержите нас реакцией, ваша обратная связь очень важна для нас.

Всем отличного и продуктивного дня!

#learning_python #algorithms
🔥7💯2👍1
Поговорим про Django

Django — это высокоуровневая веб-инфраструктура Python, которая позволяет быстро разрабатывать безопасные и удобные в обслуживании веб-сайты. Фреймворк следует архитектурному шаблону модель-шаблон-представление и предоставляет полнофункциональную структуру для создания динамических веб-сайтов и веб-приложений.

Вот некоторые из ключевых особенностей Django:

Маршрутизация URL-адресов — Django позволяет вам сопоставлять URL-адреса с представлениями чистым и организованным способом.

Объектно-реляционное сопоставление (ORM) — платформа предоставляет высокоуровневый API базы данных, который упрощает взаимодействие с вашими базами данных с помощью кода Python.

Встроенная панель администратора. Django поставляется со встроенной панелью администратора, которая предоставляет веб-интерфейс для управления данными приложения.

Безопасность. Django имеет ряд встроенных функций безопасности, таких как защита от межсайтового скриптинга (XSS), подделки межсайтовых запросов (CSRF) и атак путем внедрения SQL.

Модульный дизайн. Django имеет модульный дизайн, который упрощает повторное использование кода и расширение существующей функциональности.

В целом, Django — это мощная и гибкая веб-инфраструктура, которая упрощает создание надежных и масштабируемых веб-приложений.

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

Всем прекрасного дня!

#learning_python #learning_django
🔥81
Как повысить эффективность алгоритма ч.2

Всем привет! В прошлом посте мы говорили про Django, а сегодня вернемся к беседе об увеличении эффективности наших алгоритмов. Как вы помните, от эффективности наших алгоритмов будет зависеть работа и быстродействие нашей программы. Во второй части мы добавили несколько пунктов к уже имеющимся, а именно:

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

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

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

Профилирование кода. Используйте инструменты профилирования, чтобы выявить узкие места в коде и сосредоточить на них усилия по оптимизации.

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

Всем отличного настроения!

#learning_python #algorithms
4
Словари!

В прошлом посте мы с вами говорили про повышение эффективности наших алгоритмов, а сегодня поговорим про такую структуру данных как словарь. Данная структура данных очень часто используется для решения повседневных и технических задач на собеседованиях.

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

Вот пример того, как вы можете создать и использовать словарь в Python:

Создание словаря

dict = {'key1': 'value1', 'key2': 'value2', 'key3': 'value3'}

Доступ к значениям с помощью ключей

print(dict['key1'])

Вывод: значение1

Добавление новой пары ключ-значение

dict['key4'] = 'value4'

Обновление значения ключа

dict['key1'] = 'new_value1'

Удаление пары ключ-значение

del dict['key2']

Цикл по словарю

for key, value in dict.items():

print(key, ':', value)

Надеемся вам поможет наш материал в устранении пробелов по этой теме. Ставьте ваши лайки и пишите предложения в комментариях. Ваша обратная связь очень цена для нас. Всем отличного настроения!
9👍6👎1
Что такое пузырьковая сортировка

В прошлом посте мы рассказали вам о такой важной теме как словари. А сегодня поговорим о чем-то более замысловатом, но в меру сложном. Мы вправду хотим подробно рассказать вам о том, как пройти техническое интервью не в самые простые компании. Наша задача состоит в том, чтобы помочь вам расти и быть вашим каналом-помощником в обучении. Так что надеемся, что этот пост будет для вам действительно полезен. А теперь к делу!

Пузырьковая сортировка — это простой алгоритм сортировки, который многократно проходит по списку, сравнивает соседние элементы и меняет их местами, если они расположены в неправильном порядке. Алгоритм получил свое название из-за того, что более мелкие элементы «всплывают» вверх списка. Вот реализация Python алгоритма пузырьковой сортировки выглядит следующим образом:

def bubble_sort(arr):
n = len(arr)
for i in range(n):
for j in range(0, n-i-1):
if arr[j] > arr[j+1] :
arr[j], arr[j+1] = arr[j+1], arr[j]

В приведенном выше коде arr — это список для сортировки, а n — длина списка. Внешний цикл для i в диапазоне (n) проходит через все элементы в массиве. Внутренний цикл для j в диапазоне (0, n-i-1) проходит через несортированную часть списка. Оператор if arr[j] > arr[j+1] проверяет, больше ли текущий элемент, чем следующий элемент, и если это так, то два элемента меняются местами.

Анализ временной сложности:

Временная сложность алгоритма пузырьковой сортировки составляет O(n^2), где n — количество элементов в списке. Это связано с тем, что в худшем случае внутренний цикл будет выполняться n*(n-1) раз, что дает в общей сложности n^2 - n итераций.

Надеемся, что этот пост вам понравился и вы поддержите нашу работу лайком. Если у вас есть предложения или идеи для наших дальнейших постов, то мы готовы вас выслушать и работать как партнеры!

Отличного вам настроения!

#learning_python_algorithms
👍17💯2🍌1
Реализация и анализ сортировки выбором

Всем привет! Совсем недавно мы говорили с вами про bubble sort - сортировку пузырьком. А теперь пришло время говорить о более быстрых алгоритмах, так как в прошлом посте мы выяснили, что сортировка пузырьком хоть и выполняет свою задачу, но делает это не очень эффективно. И так начнем:

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

Вот реализация сортировки выбором в Python:

def selection_sort(arr):
n = len(arr)
for i in range(n):
min_idx = i
for j in range(i+1, n):
if arr[j] < arr[min_idx]:
min_idx = j
arr[i], arr[min_idx] = arr[min_idx], arr[i]
return arr

Внешний цикл проходит от 0 до n-1, где n — длина массива. На каждой итерации минимальный элемент находится из несортированной части массива (т. е. от i+1 до n-1) с помощью внутреннего цикла. Затем минимальный элемент заменяется элементом в текущей позиции (т. е. i).

Временная сложность:

Временная сложность сортировки выбором O (n ^ 2)

Надеемся вам понравился наш разбор сортировки выбором. Если у вас есть какие-то предложение, то пишите их в комментариях. Также не забудьте поставить вашу реакцию на этот пост, ведь именно это мотивирует нас делать крутой контент.

Всем отличного дня!

#learning_python_algorithms
👍113
Реализация и анализ Insertion Sort

Всем привет!
Мы продолжаем радовать вас контентом, который обычно заставляет нас боятся собеседований. Надеемся вы пытаетесь осмыслить все алгоритмы, которые мы тут с вами разбираем, ведь совсем скоро вступим в бой с задачками на лит код и будем устранять все пробелы в наших знаниях.
Если вы забыли про что мы говорили в предыдущем посте, то мы советуем освежить его в памяти, перейдя по этой ссылке. А теперь вернемся к нашим красивым алгоритмам :)

Сегодня разговор пойдет про insertion sort.
Алгоритм работает, перебирая массив и вставляя каждый элемент в правильное положение в отсортированной части массива.

Реализация алгоритма:

def insertion_sort(arr):
for i in range(1, len(arr)):
key = arr[i]
j = i-1
while j >= 0 and key < arr[j] :
arr[j+1] = arr[j]
j -= 1
arr[j+1] = key

Вот как работает алгоритм:

⚡️ Мы начинаем со второго элемента массива (i=1) и предполагаем, что первый элемент (i=0) уже отсортирован.
⚡️ Мы сохраняем текущий элемент в переменной с именем key.
⚡️ Мы сравниваем ключ с каждым предшествующим ему элементом (j=i-1), начиная с последнего элемента отсортированной части массива, и перемещаем все элементы, которые больше ключа, на одну позицию вправо.
⚡️ Мы вставляем ключ в правильное положение в отсортированной части массива, вставляя его после последнего элемента, который меньше или равен ключу.
⚡️ Мы повторяем этот процесс для каждого элемента массива.

Временная сложность:
O(n)

Надеемся вам нравится наш материал. Если у вас есть какие-то предложения или идеи, то не стесняйтесь их озвучивать в комментариях. Мы желаем вам успехов в изучении алгоритмов и суперского настроения!

#learning_python_algorithms
5👍2💩2🆒2