Python Hub - сборище Питонистов
1.71K subscribers
657 photos
1 video
37 files
276 links
Уголок счастья для любого питониста.

Сотрудничество или заказы: @leshunist

https://shcoder.dev - студия разработки ShcoderDevelopment

https://t.me/pythonhub_chat - чат
Download Telegram
🧐 Бинарный поиск на примере Python


Бинарный поиск - это эффективный алгоритм поиска элемента в упорядоченном списке данных.

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

Вот пример реализации бинарного поиска на языке 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), что делает его очень эффективным даже для больших списков данных. Во-вторых, он работает только с упорядоченными списками, что позволяет сократить количество операций поиска. И, наконец, бинарный поиск является универсальным и может быть применен для поиска элементов в любом упорядоченном списке данных.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🤯1
🤖 Основы использования библиотеки OpenAI Gym

OpenAI Gym - это библиотека Python, которая предоставляет набор виртуальных сред для обучения агентов искусственного интеллекта. Среды Gym представляют собой упрощенные модели реальных задач, таких как игра в гольф, вождение автомобиля или управление роботом.

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

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

➡️Библиотека Gym может использоваться для визуализации действий агентов искусственного интеллекта.

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

P.S. Сам узнал про либу только сегодня, вдруг кому-то будет интересно и полезно. Делюсь😎💕

Для получения дополнительной информации о библиотеке OpenAI Gym вы можете посетить официальный сайт библиотеки:

https://www.gymlibrary.dev/
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
🤟🤟🤟 Суббота, чиллинг 🤟🤟🤟

💻 Гоу рассказывать про всякие мотивационные и крутые фильмы, связанные с программированием!

Я помню, как меня замотивировал, вдохновил, оживил фильм "Кто я"

Есть кто еще его смотрел?

https://www.youtube.com/watch?v=gRemLkNP0d0
Please open Telegram to view this post
VIEW IN TELEGRAM
💔2
Функция filter() в Python: Использование и Примеры

👩‍💻 Программисты, имеющие долгий опыт работы с 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 легко фильтровать данные в соответствии с определенным условием, повышая читаемость и эффективность кода.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
🚩 Как работают f-строки в Python?


В программировании на языке 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." Здесь мы использовали форматирование значений с помощью двоеточия и точки с двумя знаками после запятой.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
Python Hub - сборище Питонистов
что выведет код выше?
😏 Разбор !

Начнём с скобок, в которых кроется 50% процентов загадки

Скобки - это не структура данных, а просто группировка для правильной последовательности выполнения действий. Поэтому у нас переменная хранит число 25.
! Чтобы получить кортеж, нужно чтобы в скобках была хотябы одна запятая.
так, ("hello, world") является строкой, а вот ("hello, world",) уже структурой — кортежем.

type() возвращает класс типа данных аргумента. Если мы передадим строку, то получим класс str, если целое число, то int.
А если попробовать вывести класс, то получим вывод <class 'имя класса'>.

В итоге получаем вывод <class 'int'> !
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
🤨 Почему же встроенные функции в Python намного лучше чем самописные?

🐍 Все дело в том, что Python создан на языке C 💻, и встроенные методы выполняются именно на этом языке. Это делает их более быстрыми, эффективными и оптимизированными. В итоге, использование встроенных инструментов не только упрощает код, но и повышает производительность программы. Так что советую отказаться от своих решений в пользу встроенных
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6
Что выдаст код выше?
Anonymous Quiz
36%
19
0%
4
10%
15
6%
12
7%
18
29%
Error
13%
Не знаю
👍4
Python Hub - сборище Питонистов
Photo
Разбор 👨‍💻

Если у функции указаны уже значения переменных в скобках аргументов, то эти значения будут подставлены по умолчанию, если в функцию не передадут данный параметр.
В нашей задаче в функцию передается 2 числа a,b , потом они складываются —> результат суммы возвращается из функции.

Если не было передано а, то по умолчанию оно будет равно 5, если не передано b, то b будет равно 1.

Сначала вычисляем суммы 3(передали) + 1(по умолчанию) = 4 и 5(по умолчанию) + 10(передали) = 15
Потом вычисляем сумму этих двух чисел —> 19

Вот и ответ.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
👩‍💻 Что такое POSTMAN? 👩‍💻


В современном мире разработки программного обеспечения все больше и больше акцент делается на создании API (Application Programming Interface) для обмена данными между различными приложениями. Когда дело доходит до тестирования и отладки этих API, инструменты, такие как POSTMAN, становятся незаменимыми.

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

POSTMAN - это инструмент для тестирования и отладки API, который предоставляет разработчикам простой и удобный способ отправки HTTP-запросов и получения ответов. Он имеет интуитивно понятный пользовательский интерфейс, который позволяет легко создавать и отправлять запросы различных типов, таких как GET, POST, PUT и DELETE. POSTMAN также позволяет добавлять параметры запросов, заголовки и тело запроса, что делает его мощным инструментом для тестирования различных сценариев.

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

Сайт: https://www.postman.com/
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
📚 Создание ZIP архива в чистом Python без сторонних библиотек

💡 А вы знали что на чистом Python можно создать архив? Я тоже не знал.

🐍 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.

Попробуйте создать свои собственные ZIP архивы, это интересно!
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🤯2
❗️ Что такое Linked List в примере на Python'e?


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


🧐 А приходилось ли вам где-то применять знания Linked List'ов?
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2🤯1
Что выдаст код выше?
Anonymous Quiz
30%
True
29%
False
7%
None
23%
Error
11%
Не знаю
👍7
Python Hub - сборище Питонистов
Photo
Разбор 👨‍💻

В переменную L будет помещен список [1, 1, 1, 2, 2, 2]
Далее мы считаем длину set'a этого списка. set убирает все повторяющиеся элементы —> длина 1, 2 —> 2
Далее то же самое, только со всей длиной списка —> 6

Задача на внимательность: выводим выражение 2 in 6 —> мы не можем in'ом проверять int в int'е.
Ответ: ошибка
кто попался?
💀
Please open Telegram to view this post
VIEW IN TELEGRAM
😁2🤯1