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

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

Канал на бирже: https://telega.in/c/pythonercode
Download Telegram
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
✈️Модуль secrets предоставляет инструменты для создания безопасных случайных данных, сложнее предсказать.

➡️Функции модуля secrets:

1. secrets.choice(sequence): Выбирает случайный элемент из последовательности. Полезно для генерации случайных выборок или паролей из определенного набора символов.

2. secrets.randbelow(n): Возвращает случайное число от 0 до n-1. Используется для генерации случайных чисел в определенном диапазоне.

3. secrets.randbits(k): Генерирует k случайных битов. Полезно для создания случайных битовых строк или чисел.

4. secrets.token_bytes(nbytes=None): Генерирует безопасную случайную последовательность байтов длиной nbytes (по умолчанию - 32 байта).

5. secrets.token_hex(nbytes=None): Генерирует безопасную случайную строку в шестнадцатеричном формате длиной nbytes (по умолчанию - 32 байта).

6. secrets.token_urlsafe(nbytes=None): Генерирует безопасную случайную URL-совместимую строку длиной nbytes (по умолчанию - 32 байта).

7. secrets.compare_digest(a, b): Сравнивает две строки для предотвращения временных атак. Это полезно при сравнении хэшей паролей или токенов без утечки информации о длине сравниваемых строк.

🔎Почему использовать secrets?

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

🔐Используйте модуль secrets для защиты вашей информации и обеспечения безопасности ваших данных в Python.

🐍Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
👍95🔥2
✈️@override используется для переопределения методов в классах-наследниках. Он позволяет указать, что метод в подклассе переопределяет метод базового класса.

➡️Это может быть полезно для:

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

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

— Проверки типов аргументов: декоратор гарантирует, что типы аргументов совпадают с базовым методом.

⬆️На примере метод do_semething в ChildClass переопределяет метод базового класса AbstractClass с помощью декоратора @override. Это делает код более понятным и безопасным.

🐍Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
8🔥4👍2
✈️Многие разработчики не понимают разницу этих двух операторов сравнения. Из-за неправильного использования == и is в приложениях могут возникнуть странные ошибки.

➡️Оператор == проверяет равенство значений двух объектов. А оператор is проверяет идентичность самих объектов. Его используют, чтобы удостовериться, что переменные указывают на один и тот же объект в памяти.

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

🐍Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥116👍5