Python Map | Обучение
250 subscribers
198 photos
4 videos
1 file
87 links
Образовательный канал для программистов на Python 🐍

Сотрудничество – пишите в коментариях
Download Telegram
Когда наняли грамотного пиарщика
5
>>> int('۹')
9
>>> int('߇७𝟟')
777
>>> '੨'.isdecimal()
True
>>> bool(__import__('re').match('\d', '߁'))
True

Важное про цифры и Юникод

0, 1, 2, 3, 4, 5, 6, 7, 8, 9 — не единственные символы, которые считаются цифрами. Python следует правилам Юникода и обрабатывает несколько сотен символов как цифры. Полный список находится здесь.

Это крайне важно знать, потому что эти символы влияют на такие функции, как int, unicode.isdecimal и даже re.match.

Предупрежден — значит вооружен.


Python Map | Обучение
🐍
🤯32
Понаберут с улицы
from types import MethodType

class MyClass:
def __init__(self, value):
self.value = value

def external_func(self, increment):
return self.value + increment

instance = MyClass(10)
instance.method = MethodType(external_func, instance)

print(instance.method(5))


Модуль types: класс MethodType

types.MethodType — это способ динамического добавления функций в экземпляры класса как методы. Это позволяет создавать методы "на лету" и добавлять их в объекты, что может быть полезно в сложных сценариях, когда структура класса определяется динамически.

В этом примере функция external_func добавляется в экземпляр класса MyClass как метод. Это позволяет вызывать её как обычный метод класса, используя атрибуты экземпляра.


@PyMapChannel 🐍
2
Главное, чтоб работало, а остальное неважно

(не делайте так)
😁4
Библиотека deep-translator: мощный инструмент для многоязычного перевода

deep-translator - это библиотека Python, разработанная для многоязычного перевода текстов. Она поддерживает более 100 языков и обеспечивает высокую точность перевода. Библиотека работает с различными API (Google Translate, Yandex Translator, и т.д.), что делает её гибким инструментом для разработчиков.

Пример:
from deep_translator import GoogleTranslator

# Объект переводчика
translator = GoogleTranslator(source='en', target='ru')
text_to_translate = 'Hello, how are you?'

# Вызов метода для перевода
translated_text = translator.translate(text_to_translate)

print(text_to_translate) # Hello, how are you?
print(translated_text) # Привет, как дела?


Документация доступна тут: deep-translator
4
Вместо того, чтобы выполнить задачу за 20 минут, я потрачу 2 дня на ее автоматизацию
🔥3🥰1💯1
Библиотека shlex: мощный инструмент для разбора строк в Python

shlex - это библиотека Python, предназначенная для разбора строк, которые содержат текстовые команды, подобно тому, как это делает командная оболочка Unix. Она позволяет легко разделять строки на токены, учитывая при этом кавычки и экранирование, что делает её идеальным инструментом для работы с командными строками и аргументами.

Пример:
import shlex

# Строка с командой
command_line = 'python script.py --arg1 "value with spaces" --arg2=value2'

# Разбор строки на токены
tokens = shlex.split(command_line)

print(tokens) # ['python', 'script.py', '--arg1', 'value with spaces', '--arg2=value2']


Документация доступна тут: shlex
👍4🔥1💯1
Модуль argparse: функция ArgumentParser

import argparse

parser = argparse.ArgumentParser(description='Пример использования argparse')
parser.add_argument('--name', type=str, help='Ваше имя')
args = parser.parse_args()

print(f'Привет, {args.name}!')


Функция argparse.ArgumentParser() позволяет создавать интерфейс командной строки для ваших программ.

С помощью этого модуля вы можете легко определять, какие аргументы принимает ваша программа, и автоматически генерировать справку по использованию. Например, в приведенном выше коде мы создаем парсер, который ожидает аргумент --name, и выводим приветствие с указанным именем.

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

🐍 Python Map | Обучение
2🔥2💯1
Модуль unittest: создание тестов

import unittest

def multiply(a, b):
return a * b

class TestMultiply(unittest.TestCase):
def test_multiply_numbers(self):
self.assertEqual(multiply(3, 4), 12)

def test_multiply_negative(self):
self.assertEqual(multiply(-1, 5), -5)

if __name__ == '__main__':
unittest.main()

Функция unittest.TestCase позволяет создавать классы с тестами для проверки корректности работы функций и методов.

Модуль unittest — это встроенный в Python инструмент для автоматизированного тестирования кода. Он помогает создавать тестовые случаи, группировать их в тестовые наборы и автоматически запускать с проверкой ожидаемых результатов.

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

Использование unittest облегчает поддержку и развитие проектов, позволяя гарантировать, что изменения не ломают существующую функциональность.

🐍 Python Map | Обучение
🔥3
Модель pytest: создание тестов

def multiply(a, b):
return a * b

def test_multiply_numbers():
assert multiply(3, 4) == 12

def test_multiply_negative():
assert multiply(-1, 5) == -5

Pytest — это популярный сторонний фреймворк для тестирования в Python, который предоставляет простой и мощный способ писать тесты. В отличие от unittest, pytest не требует использования классов, а тесты можно писать в виде обычных функций с ассертами.

Pytest автоматически находит тестовые функции по префиксу test_ и запускает их. Ассерты в pytest работают с расширенными отчетами об ошибках, что упрощает отладку. Кроме того, pytest поддерживает фикстуры — специальные функции для подготовки тестового окружения и повторного использования кода.

pip install pytest

В приведённом примере описаны два простых теста для функции multiply, которые проверяют умножение положительных и отрицательных чисел. Такой подход делает тесты компактными и читаемыми.

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

🐍 Python Map | Обучение
2
Модель pytest: использование фикстур

import pytest

@pytest.fixture
def sample_data():
return [1, 2, 3, 4, 5]

def test_sum(sample_data):
assert sum(sample_data) == 15

def test_max(sample_data):
assert max(sample_data) == 5


Pytest — это популярный сторонний фреймворк для тестирования в Python, который предоставляет простой и мощный способ писать тесты. В отличие от unittest, pytest не требует использования классов, а тесты можно писать в виде обычных функций с ассертами.

Pytest автоматически находит тестовые функции по префиксу test_ и запускает их. Ассерты в pytest работают с расширенными отчетами об ошибках, что упрощает отладку. Кроме того, pytest поддерживает фикстуры — специальные функции для подготовки тестового окружения и повторного использования кода.

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

Чтобы установить pytest, выполните команду:

pip install pytest


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

🐍 Python Map | Обучение
2
🆒4🔥2👍1