Разбор кода по шагам:
1. s[1:5:2]
Формат среза: [start:stop:step]
start = 1, stop = 5 (не включительно), step = 2
Берём символы с индексами 1 и 3:
s[1] = 'y'
s[3] = 'h'
Результат: 'yh'
2. s[::-1]
Шаг -1 → идём с конца к началу → переворачиваем строку полностью
'python' → 'nohtyp'
Результат: 'nohtyp'
3. s[::3]
Шаг 3, start и stop не указаны → берём от начала до конца, каждый 3-й символ
Индексы, которые берём: 0, 3
s[0] = 'p'
s[3] = 'h'
Результат: 'ph'
Итоговый вывод:
'yh', 'nohtyp', 'ph'
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9🔥5❤4
class CustomList:
def init(self, data):
self.data = data
def getitem(self, index):
return self.data[index] # Позволяет использовать obj[index]
nums = CustomList([10, 20, 30])
print(nums[1]) # 20
- Позволяет настроить доступ к элементам объекта.
- Делает объекты итерируемыми (например, в for-циклах).
- Помогает создавать свои структуры данных, работающие как списки или словари.
getitem делает объекты гибкими и удобными в использовании, улучшая читаемость кода!Please open Telegram to view this post
VIEW IN TELEGRAM
👍7❤4🔥2
from uscrapper import extract_tables
url = "https://en.wikipedia.org/wiki/List_of_countries_by_population"
tables = extract_tables(url)
# Первые 5 строк первой таблицы
print(tables[0].head())
Инструмент оснащен передовыми модулями обхода анти-парсинга и поддерживает технологии для извлечения информации из всех ссылок в пределах одного домена. Кроме того, в программе предусмотрена возможность создания отчета, содержащего все извлеченные данные.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤10👍6🔥4
Если честно, меня бесят каналы, где непонятно кто учит программированию. На деле там копипаста с первой страницы гугла, которая грузит мозги.
Но есть и исключения. Например, канал @devsp. Его автор — ведущий разраб в области искусственного интеллекта. На минуточку, он приложил руку к самым нашумевшим нейронкам — Claude, Chat GPT и DeepSeek.
А теперь представьте, что мастодонт такого уровня ЛИЧНО делится внутрянкой своей работы и объясняет сложные концепции так, что поймёт даже отсталый двоечник.
Вещает про Data Science и машинное обучение с упором на практику (которой даже в платных курсах сильно не хватает).
Короче, если хотите быстро и без проблем расти в профессии — обязательно подпишитесь. Редко где найдешь такой баланс теории, подачи и практики: @devsp
Но есть и исключения. Например, канал @devsp. Его автор — ведущий разраб в области искусственного интеллекта. На минуточку, он приложил руку к самым нашумевшим нейронкам — Claude, Chat GPT и DeepSeek.
А теперь представьте, что мастодонт такого уровня ЛИЧНО делится внутрянкой своей работы и объясняет сложные концепции так, что поймёт даже отсталый двоечник.
Вещает про Data Science и машинное обучение с упором на практику (которой даже в платных курсах сильно не хватает).
Короче, если хотите быстро и без проблем расти в профессии — обязательно подпишитесь. Редко где найдешь такой баланс теории, подачи и практики: @devsp
❤4🤣2
Он предотвращает проблемы с управлением памятью и упрощает работу интерпретатора. Однако из-за него многопоточные программы не могут эффективно использовать несколько ядер процессора.
- В CPU-интенсивных задачах (например, обработка данных, вычисления) многопоточность не дает прироста производительности.
- В I/O-интенсивных задачах (сетевые запросы, работа с файлами) GIL почти не влияет, так как потоки могут освобождать блокировку во время ожидания операций ввода-вывода.
Если нужна настоящая параллельность, используйте многопроцессорность (
multiprocessing), которая запускает отдельные процессы без GIL, или попробуйте альтернативные реализации Python, такие как Jython или PyPy.Please open Telegram to view this post
VIEW IN TELEGRAM
❤7👍3🔥3
x, y, z = 1, 2, 3
print(x, y, z) # 1 2 3
a, b = 5, 10
a, b = b, a
print(a, b) # 10 5
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8❤5🔥4
Приложение должно понять:
- Где находится пользователь
- Как далеко курьер от адреса
- Какие ближайшие отели или кафе показать
Всё это можно сделать прямо из Python с помощью библиотеки Geopy.
- Геокодинг — превращает адрес в координаты
(«Москва, Красная площадь» → 55.7539, 37.6208)
- Обратный геокодинг — по координатам даёт адрес
(55.7539, 37.6208 → «Красная площадь, Москва, Россия»)
- Расстояния — считает путь между точками (в км, милях, морских милях)
- Поддержка разных сервисов: OpenStreetMap (Nominatim), Google, Яндекс, Bing, ArcGIS и др.
from geopy.geocoders import Nominatim
from geopy.distance import geodesic
# Инициализация геокодера
geo = Nominatim(user_agent="geo_app")
# 1️⃣ Адрес → координаты
moscow = geo.geocode("Москва, Красная площадь")
print("Москва:", moscow.latitude, moscow.longitude)
# 2️⃣ Координаты → адрес
place = geo.reverse("55.7539, 37.6208")
print("Адрес:", place.address)
# 3️⃣ Расстояние Москва–СПб
p1 = (moscow.latitude, moscow.longitude)
p2 = (59.9343, 30.3351) # Санкт-Петербург
print("Расстояние:", geodesic(p1, p2).km, "км")
Москва: 55.7539, 37.6208
Адрес: Красная площадь, Москва, Россия
Расстояние: ~634 км 🚄
- Логистика: рассчитывать маршруты доставки
- Аналитика: строить тепловые карты заказов
- Travel-сервисы: находить ближайшие отели или достопримечательности
- Стартапы: от «поиска ближайшей кофейни» до «глобального трекера велосипедов»
Geopy делает Python ближе к реальному миру.
С его помощью можно писать приложения, которые не просто что-то считают, а реально «понимают» где находится человек, бизнес или объект.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10❤4🔥2
DevPyConf на Cтачке
Python-разработка│ 3 октября │ Санкт-Петербург
На DevPyConf соберутся ведущие Python разработчики, чтобы обсудить тренды, архитектуру и инструменты.
Ключевые треки конференции:
— Архитектура и python
— Современный ML, AI тулинг
Программа и билеты на сайте
Следите за новостями в Телеграме и ВК
Python-разработка│ 3 октября │ Санкт-Петербург
На DevPyConf соберутся ведущие Python разработчики, чтобы обсудить тренды, архитектуру и инструменты.
Ключевые треки конференции:
— Архитектура и python
— Современный ML, AI тулинг
Выступят спикеры:
→ Михаил Гурбанов, TechLead в Райффайзенбанке. Тема доклада: «Архитектура сервисов в AI ландшафте»
→ Евгений Блинов, Разработчик в Авито. Тема доклада: «Дружим sync и async питоны»
→ Юрий Маркин, Старший разработчик в X5 Tech. Тема доклада: «Pythorust не серебряная пуля»
→ Денис Воронкин, Backend разработчик в KTS. Тема доклада: «Почему надежно кешировать данные сложно?»
→ Александр Кучин, Python разработчик в Литрес. Тема доклада: «Мы уменьшили длительность нашего пайплайна в несколько раз - до 17 минут»
→ Алексей Фиссон, Тим лид в X5 Tech. Тема доклада: «Чем вам asyncio не фреймворк, а Redis не брокер?»
→ Сергей Волков, Team Lead в Сбере. Тема доклада: «Метрики без боли: AI-агент вместо BI-навигации»
→ Денис Аникин, Тимлид/Комьюнити лид в Райффайзенбанке. Тема доклада: «Выбираем LLM gateway»
Программа и билеты на сайте
Следите за новостями в Телеграме и ВК
❤2
Синтаксис:
range(начало, конец, шаг)
По умолчанию: начало = 0, шаг = 1.
# Простой range от 0 до 2
for i in range(3):
print(i)
# Range с началом и шагом
for i in range(1, 10, 2):
print(i)
# Вывод:
# 0
# 1
# 2
# 1
# 3
# 5
# 7
# 9
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7❤3🔥3
- Динамическая типизация: Если вы хотите задать контракт для классов без явного указания на наследование.
- Гибкость: Позволяет различным классам предоставлять свою реализацию методов, сохраняя общий интерфейс.
- Улучшение читаемости: Помогает лучше понять как должны взаимодействовать различные части кода.
from typing import Protocol
# Определяем протокол
class Movable(Protocol):
def move(self) -> None:
...
# Класс, реализующий этот протокол
class Car:
def move(self) -> None:
print("Car is moving")
class Bird:
def move(self) -> None:
print("Bird is flying")
def drive(vehicle: Movable) -> None:
vehicle.move()
# Используем
car = Car()
bird = Bird()
drive(car) # Output: Car is moving
drive(bird) # Output: Bird is flying
Protocol — мощный инструмент для задания интерфейсов в Python. Он обеспечивает гибкость и улучшает структуру вашего кода. Используйте его, когда нужно задать контракты для различных классов без строгой иерархии наследования.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤6👍5🔥3
fruits = ["apple", "banana", "orange"]
for index, fruit in enumerate(fruits, start=1):
print(index, fruit)
1 apple
2 banana
3 orange
enumerate() вернёт кортежи с индексом и значением.enumerate() удобно использовать вместо range(len()) для более чистого и читаемого кода при переборе списков, кортежей и других коллекций.Please open Telegram to view this post
VIEW IN TELEGRAM
❤7👍4🔥3
Pickle — это стандартная библиотека Python, которая позволяет сохранять (сериализовать) и восстанавливать (десериализовать) объекты Python в файлы. Это особенно полезно для долгосрочного хранения данных или передачи их между программами. С помощью pickle можно сохранить сложные структуры данных, такие как списки, словари, классы и даже функции.
import pickle
# Исходные данные
data = {
"name": "Alice",
"age": 30,
"skills": ["Python", "Data Science", "Machine Learning"]
}
# Сохраняем данные в файл
with open('data.pkl', 'wb') as file:
pickle.dump(data, file)
print("Данные успешно сохранены!")
import pickle
# Восстанавливаем данные из файла
with open('data.pkl', 'rb') as file:
loaded_data = pickle.load(file)
print("Восстановленные данные:")
print(loaded_data)
Восстановленные данные:
{'name': 'Alice', 'age': 30, 'skills': ['Python', 'Data Science', 'Machine Learning']}
- Простота использования: Легко сохранять и восстанавливать сложные структуры данных.
- Гибкость: Поддерживает практически все типы данных Python.
- Быстродействие: Pickle работает быстрее, чем другие форматы, такие как JSON.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9❤5🔥3
👍4🤔2👌2
Список nums = [1, 2, 3, 4, 5]
В генераторе [x**2 for x in nums if x % 2 == 0]:
берём только те x, которые делятся на 2 (чётные)
это 2 и 4
возводим их в квадрат: 2**2 = 4, 4**2 = 16
Результат: [4, 16]
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥8❤5👍2
def greet():
print("Hello!")
if name == "main":
greet()
greet() вызовется только если файл запущен напрямую, но не при импорте его в другой модуль.if name == "main" удобно использовать для тестирования, запуска скриптов и избежания лишнего выполнения кода при импорте.Please open Telegram to view this post
VIEW IN TELEGRAM
👍8❤5🔥4
# Выводит числа от 0 до 4
for i in range(5):
print(i)
# Выводит чётные числа от 2 до 10
for i in range(2, 11, 2):
print(i)
Please open Telegram to view this post
VIEW IN TELEGRAM
❤10👍7🔥2🤣1
def greet(name, greeting="Привет"):
print(f"{greeting}, {name}!")
greet("Анна") # Привет, Анна!
greet(name="Иван", greeting="Здравствуйте") # Здравствуйте, Иван!
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🔥4❤3
from langchain import LLMChain
from langchain.llms import OpenAI
# Инициализация языковой модели
llm = OpenAI(api_key="YOUR_API_KEY")
# Определение шаблона для вопроса
template = "Какой ответ на вопрос: {question}?"
# Создание цепочки с использованием шаблона
chain = LLMChain(llm=llm, prompt=template)
# Ввод вопроса
question = "Что такое LangChain?"
# Получение ответа
response = chain.run({"question": question})
print(response)
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6❤5🔥4
POSTMAN - это инструмент для тестирования и отладки API, который предоставляет разработчикам простой и удобный способ отправки HTTP-запросов и получения ответов. Он имеет интуитивно понятный пользовательский интерфейс, который позволяет легко создавать и отправлять запросы различных типов, таких как GET, POST, PUT и DELETE. POSTMAN также позволяет добавлять параметры запросов, заголовки и тело запроса, что делает его мощным инструментом для тестирования различных сценариев.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤9👍5🔥2
def apply(func, value):
return func(value)
def square(x):
return x * x
result = apply(square, 5)
print(result) # 25
Please open Telegram to view this post
VIEW IN TELEGRAM
❤6👍4🔥2