Задачка: Поиск наибольшего и наименьшего слова

Напишите функцию find_extreme_words(), которая принимает на вход строку, представляющую предложение, и возвращает кортеж из наибольшего и наименьшего по длине слова в этом предложении. Предполагается, что слова разделены пробелами.

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

Пишите ваши варианты в комментариях.

Подпишитесь на наш ТЕЛЕГРАМ КАНАЛ ПО АВТОМАТИЗАЦИИ ТЕСТИРОВАНИЯ
# find_extreme_words.py
def find_extreme_words(sentence):
    words = sentence.split()
    if not words:
        return None, None
    return max(words, key=len), min(words, key=len)

# test_find_extreme_words.py
import pytest
from find_extreme_words import find_extreme_words

def test_regular_sentence():
    assert find_extreme_words("This is a test sentence.") == ("sentence.", "a")

def test_empty_sentence():
    assert find_extreme_words("") == (None, None)

def test_sentence_with_whitespace():
    assert find_extreme_words("     ") == (None, None)
    assert find_extreme_words("  Word  spacing   test  ") == ("spacing", "test")

def test_sentence_with_numbers():
    assert find_extreme_words("There are 123 numbers.") == ("There", "123")
    assert find_extreme_words("This sentence has 7 words.") == ("sentence", "7")

В данном примере функция find_extreme_words() принимает на вход строку и преобразует ее в список, разбивая по пробелам. Далее, при помощи встроенных функция max() и min(), возвращается кортеж, состоящий из максимального и минимального по длине слова. Тесты проверяют правильность работы функции для различных входных данных.

Оставьте комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *