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

Сотрудничество – пишите в коментариях
Download Telegram
Библиотека 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