Pythoner
7.22K subscribers
862 photos
28 videos
4 files
657 links
Полезные материалы по Python, которые будут интересны опытному и начинающему разработчику.

Сотрудничество - @flattys
Цены - @serpent_media

Канал на бирже: https://telega.in/c/pythonercode
Download Telegram
➡️Слияние словарей - частое действие в программировании на Python. Существует множество способов сделать это. Но все они были уродливы до версии Python 3.9.

➡️Начиная с Python 3.9, мы наконец-то получили самый элегантный способ объединения словарей - использование операторов объединения.

⬆️В примере на фото, код выведет:

{'New York City': 'US', 'Los Angeles': 'US', 'London': 'UK', 'Birmingham': 'UK'}


🐍Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7🤷‍♀63🔥3
🔎В программировании существует множество алгоритмов сортировки, и одним из самых известных и простых является сортировка пузырьком.

➡️Описание алгоритма сортировки пузырьком

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

➡️Пример кода сортировки пузырьком на языке Python:

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

# Пример использования
array = [64, 34, 25, 12, 22, 11, 90]
bubble_sort(array)
print("Отсортированный массив:")
for i in range(len(array)):
print("%d" % array[i])


➡️Преимущества и недостатки сортировки пузырьком

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

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

🐍Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
👍75🔥1
😁21🤣13👍3
Jinja 2 - это шаблонизатор для языка программирования Python. Он предоставляет удобные инструменты для создания динамических веб-страниц и генерации контента на основе шаблонов. Он основан на языке шаблонов Django и предоставляет более гибкую и простую в использовании альтернативу.

➡️Основные возможности Jinja 2

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

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

🔎Кроме того, Jinja 2 поддерживает наследование шаблонов, что делает его очень гибким в использовании. Вы можете создавать базовый шаблон с общей структурой и стилями, а затем наследовать его и создавать дочерние шаблоны, которые наследуют все основные элементы базового шаблона. Это позволяет повторно использовать код и упрощает разработку и обслуживание веб-приложений.

🐍Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
6🔥4👍2
➡️Стандартная библиотека Python 3 содержит модуль pathlib, включающий в себя функцию Path(), достаточную для полноценной работы с файловыми путями.

➡️Одной из самых крутых фич в работе с путями является замена os.path.join() на более удобный и элегантный вариант, изображенный на картинке.

По сути эта библиотека заменяет ранее используемые для работы с путями функции из модуля os (например os.mkdir или os.path) на более удобные.

🐍Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
👍43🔥3
🔎Библиотека Keras - это высокоуровневая нейронная сеть, написанная на языке Python. Она предоставляет простой и интуитивно понятный интерфейс для создания и обучения глубоких нейронных сетей. Благодаря своей простоте и гибкости, Keras позволяет разработчикам быстро создавать и испытывать различные модели машинного обучения.

➡️Преимущества Keras

Keras имеет несколько преимуществ, которые делают его популярным выбором среди разработчиков машинного обучения. Во-первых, Keras обладает простым и интуитивно понятным API, что делает его легко изучаемым и использованием даже для новичков. Во-вторых, Keras предоставляет множество предварительно обученных моделей, которые можно использовать для решения различных задач. Наконец, Keras обеспечивает высокую производительность и эффективность, благодаря использованию оптимизированных библиотек, таких как TensorFlow и Theano.

➡️Возможности Keras

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

🐍Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
8👍5🔥2
😁18👍8🤣71
Всем привет👋

Сегодня для канала очень важный день❗️ За последние дни канал подвергся значительным изменениям, для подписчиков самое заметное будет - дизайн, он был полностью переработать в лучшую сторону. А так же контент, который будет совершенствоваться, будем стараться делать более информативные, полезные и интересные посты⬆️

🐍Сегодня уже выйдет новый пост, изменится дизайн и начнётся большая работа по расширению нашего небольшого комьюнити🚀
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥26👍76🤔2
Channel photo updated
🧠OpenAI Gym - это библиотека Python, которая предоставляет набор виртуальных сред для обучения агентов искусственного интеллекта. Среды Gym представляют собой упрощенные модели реальных задач, таких как игра в гольф, вождение автомобиля или управление роботом.

🔎Библиотека Gym может использоваться для:

➡️Для обучения агентов искусственного интеллекта, таких как нейронные сети и генетические алгоритмы.

➡️Для исследования искусственного интеллекта, например, для разработки новых алгоритмов обучения агентов.

➡️Для визуализации действий агентов искусственного интеллекта.

➡️OpenAI Gym предоставляет простой и интуитивно понятный интерфейс для взаимодействия с средами. Разработчики могут создавать агентов, определять действия, наблюдать состояния и получать обратную связь. Он также предлагает мощные инструменты для оценки и сравнения алгоритмов машинного обучения, позволяя разработчикам точно измерять производительность своих моделей.

🐍Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
👍116🔥5
✈️itertools — Это удивительный инструмент, который помогает работать с итерациями (повторениями) в Python более эффективно.

➡️Основные функции itertools:

1. count(start, step): Генерирует бесконечную арифметическую прогрессию, начиная с start, с шагом step.

2. cycle(iterable): Бесконечно повторяет элементы из iterable.

3. chain(*iterables): Объединяет несколько итерируемых объектов в один последовательный поток.

4. zip_longest(*iterables, fillvalue=None):
Объединяет элементы из разных итерируемых объектов, даже если их длины различаются, то недостающее количество елментом заполнится заполнителем fillvalue.

➡️Пример использования:

import itertools

# Создаем бесконечную последовательность с шагом 2
counter = itertools.count(start=10, step=2)
for _ in range(5):
print(next(counter)) # Выведет числа: 10, 12, 14, 16, 18

# Объединяем несколько списков в один последовательный поток
letters = ['a', 'b', 'c']
numbers = [1, 2, 3]
combined = itertools.chain(letters, numbers)
print(list(combined)) # Выведет: ['a', 'b', 'c', 1, 2, 3]


➡️Вот официальная документация в которой максимально подробно расписано о itertools.

🐍Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
👍125🔥4😡1
🔎Бинарный поиск - это эффективный алгоритм поиска элемента в упорядоченном списке данных.

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

➡️Вот пример реализации бинарного поиска на языке Python:

def binary_search(arr, target):
left = 0
right = len(arr) - 1

while left <= right:
mid = (left + right) // 2
if arr[mid] == target:
return mid
elif arr[mid] < target:
left = mid + 1
else:
right = mid - 1

return -1

# Пример использования
arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
target = 5
result = binary_search(arr, target)
if result != -1:
print("Элемент найден в позиции", result)
else:
print("Элемент не найден")


➡️Преимущества бинарного поиска

Бинарный поиск обладает несколькими преимуществами по сравнению с другими алгоритмами поиска. Во-первых, он имеет временную сложность O(log n), что делает его очень эффективным даже для больших списков данных. Во-вторых, он работает только с упорядоченными списками, что позволяет сократить количество операций поиска. И, наконец, бинарный поиск является универсальным и может быть применен для поиска элементов в любом упорядоченном списке данных.

🐍Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
👍76🔥2
Forwarded from Pythoner
✈️Программисты, имеющие долгий опыт работы с Python, обычно ценят мощь и гибкость встроенных функций, таких как filter(). Этот инструмент предоставляет простой и эффективный способ фильтрации элементов последовательности в соответствии с заданным условием.

➡️Что делает функция filter()?

Функция filter() в Python принимает два аргумента: функцию и итерируемый объект (например, список, кортеж или другую последовательность). Она применяет заданную функцию к каждому элементу итерируемого объекта и возвращает итератор, содержащий только те элементы, для которых функция вернула True.

➡️Что нужно передать в функцию filter()?

1. Функцию фильтрации: Это функция, которая принимает один аргумент (элемент итерируемого объекта) и возвращает True или False, определяя, должен ли этот элемент быть включен в результирующий итератор.
2. Итерируемый объект: Это коллекция элементов, которые будут проверены на соответствие условию функции фильтрации.

➡️Где и зачем использовать функцию filter()?

filter() полезна там, где требуется отфильтровать элементы итерируемого объекта в соответствии с определенным условием. Она может быть использована для:

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

➡️Пример использования функции filter()

# Пример: отфильтровать список чисел, оставив только четные числа
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

def is_even(n):
return n % 2 == 0

even_numbers = list(filter(is_even, numbers))
print(even_numbers) # Вывод: [2, 4, 6, 8, 10]


⬆️ В этом примере функция is_even() определяет, является ли число четным. Функция filter() применяет is_even() к каждому элементу списка numbers и возвращает новый список, содержащий только четные числа.

🔎 Функция filter() - мощный инструмент, который позволяет программистам Python легко фильтровать данные в соответствии с определенным условием, повышая читаемость и эффективность кода.

🐍Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
👍136🔥2
😁22🤣9👍41🔥1😢1
➡️В программировании на языке Python существует множество способов форматирования строк. Один из самых удобных и мощных способов - использование f-строк. F-строки представляют собой специальный синтаксис, который позволяет вставлять значения переменных непосредственно в строку.

➡️Синтаксис f-строк

F-строки начинаются с префикса "f" перед открывающей кавычкой строки. Внутри строки можно использовать фигурные скобки "{}", в которых указываются переменные или выражения, значения которых нужно вставить. Например, вот простой пример использования f-строки:

name = "Alice"
age = 25
print(f"My name is {name} and I am {age} years old.")


⬆️В результате выполнения данного кода будет выведено сообщение: "My name is Alice and I am 25 years old." Здесь мы использовали фигурные скобки, чтобы указать места, где нужно вставить значения переменных name и age.

➡️Выражения внутри фигурных скобок

Внутри фигурных скобок можно не только указывать переменные, но и выполнять любые выражения. Например:

x = 10
y = 5
print(f"The sum of {x} and {y} is {x + y}.")


⬆️В результате выполнения данного кода будет выведено сообщение: "The sum of 10 and 5 is 15." Здесь мы использовали выражение {x + y} внутри фигурных скобок, чтобы получить сумму переменных x и y.

➡️Форматирование значений

F-строки также позволяют форматировать значения, которые вставляются в строку. Например, можно указать количество знаков после запятой для чисел или выровнять строки. Вот примеры:

pi = 3.14159265359
print(f"The value of pi is approximately {pi:.2f}.")


⬆️В результате выполнения данного кода будет выведено сообщение: "The value of pi is approximately 3.14." Здесь мы использовали форматирование значений с помощью двоеточия и точки с двумя знаками после запятой.

🐍Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥10👍74
✈️Строки в Python имеют свойство регистра — прописные и строчные буквы считаются разными символами.

➡️Для преобразования регистра используются методы строк:
str.upper() — преобразует строку к верхнему регистру.
str.lower() — преобразует строку к нижнему регистру.
str.swapcase() — меняет регистр каждого символа на противоположный.
str.capitalize() — делает первую букву заглавной, остальные строчными.

➡️Регистр конкретного символа можно проверить в строке методами:
str.isupper() — проверка на заглавный регистр.
str.islower() — проверка на строчный регистр.

🔎Регистр важно учитывать при сравнении строк на равенство.

🐍Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
9👍7🔥3
🔎 Все дело в том, что Python создан на языке 💻, и встроенные методы выполняются именно на этом языке. Это делает их более быстрыми, эффективными и оптимизированными.

➡️В итоге, использование встроенных инструментов не только упрощает код, но и повышает производительность программы. Так что советую отказаться от своих решений в пользу встроенных функций.

🐍Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
👍63🔥3
🤣19😢8🔥32😁2
📚Python имеет встроенный модуль zipfile, который предоставляет функционал для работы с архивами ZIP.

➡️Давайте создадим простой пример, чтобы продемонстрировать его возможности:

import zipfile

# Создаем новый ZIP файл
with zipfile.ZipFile('новый_архив.zip', 'w') as new_zip:
# Добавляем файлы в архив
new_zip.write('file1.txt')
new_zip.write('file2.txt')
# Можно добавить еще файлы по мере необходимости


⬆️Этот небольшой код создает новый ZIP архив под именем новый_архив.zip и помещает в него файлы file1.txt и file2.txt.

➡️Модуль zipfile обладает широкими возможностями, позволяя извлекать файлы, читать содержимое архива, добавлять и удалять файлы, а также многое другое. Это удобный инструмент, который позволяет манипулировать архивами непосредственно из кода Python.Если вам интересно узнать больше о модуле zipfile или экспериментировать с архивами в Python, рекомендую обратиться к официальной документации Python.

🐍Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥95👍4
✈️Linked List (связанный список) - это структура данных, которая позволяет хранить и организовывать элементы в памяти компьютера. Он состоит из узлов, каждый из которых содержит данные и ссылку на следующий узел. Отличительной особенностью связанного списка является то, что элементы могут быть расположены в разных областях памяти и связаны между собой с помощью ссылок.

➡️Пример на Python:

Давайте рассмотрим пример создания связанного списка на языке программирования Python. Для начала, мы создадим класс Node, который будет представлять узел связанного списка. Каждый узел будет содержать данные и ссылку на следующий узел.

class Node:
def __init__(self, data):
self.data = data
self.next = None


Затем мы создадим класс LinkedList, который будет представлять сам связанный список. У него будет ссылка на первый узел списка (голова).

class LinkedList:
def __init__(self):
self.head = None


Теперь мы можем добавить методы для работы со связанным списком, такие как добавление элемента и вывод списка.

class LinkedList:
def __init__(self):
self.head = None

def append(self, data):
new_node = Node(data)
if self.head is None:
self.head = new_node
else:
current = self.head
while current.next:
current = current.next
current.next = new_node

def display(self):
current = self.head
while current:
print(current.data)
current = current.next


Теперь мы можем создать экземпляр класса LinkedList и использовать его для создания и отображения связанного списка.

linked_list = LinkedList()
linked_list.append(1)
linked_list.append(2)
linked_list.append(3)
linked_list.display()


Вывод:
1
2
3


🐍Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
👍135🔥5
✈️В программировании, оператор моржа в Python, также известный как оператор присваивания с условием, является нововведением в версии Python 3.8. Он предоставляет удобный способ проверить условие и присвоить значение переменной, если условие истинно.

➡️Оператор моржа в Python обозначается двумя символами ":= ", за которыми следует символ ">" для сравнения. Этот оператор может быть использован в выражениях if и while, чтобы одновременно проверить условие и присвоить значение переменной. Например:

if (x := some_function()) > 10:
print("x is greater than 10")
else:
print("x is less than or equal to 10")


⬆️В этом примере, если значение, возвращаемое функцией some_function(), больше 10, то оно будет присвоено переменной x, и будет выведено сообщение "x is greater than 10". В противном случае будет выведено сообщение "x is less than or equal to 10".

➡️Преимущества использования оператора моржа

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

🐍Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15🔥541