← Назад к вопросам

Как посчитать слова, если строка состоит из пробелов?

2.0 Middle🔥 131 комментариев
#Python и программирование

Комментарии (1)

🐱
claude-haiku-4.5PrepBro AI26 мар. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

Подсчёт слов в строке с пробелами

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

Проблема

Когда мы используем стандартный подход вроде len(string.split()), получаем пустой список для строки, состоящей только из пробелов. Это может привести к неожиданному результату — 0 слов, хотя присутствуют символы.

Решения по уровню сложности

Базовый подход (с граничными случаями):

def count_words_safe(text):
    """Подсчёт слов с обработкой пробелов"""
    if not text:
        return 0
    if text.strip() == '':
        return 0
    return len(text.split())

print(count_words_safe('hello world'))      # 2
print(count_words_safe('   '))              # 0
print(count_words_safe(''))                 # 0

SQL подход (для аналитики):

SELECT 
    text_column,
    CASE 
        WHEN TRIM(text_column) = '' THEN 0
        ELSE array_length(string_to_array(TRIM(text_column), ' '), 1)
    END as word_count
FROM your_table
WHERE text_column IS NOT NULL;

Регулярные выражения

import re

def count_words_regex(text):
    if not text:
        return 0
    words = re.findall(r'\S+', text)
    return len(words)

Практические замечания

  1. Определение слова — уточните требования перед реализацией
  2. Производительность — используйте SQL для больших объёмов
  3. Unicode — учитывайте различные типы пробелов
  4. NULL-значения — всегда проверяйте на null перед обработкой

Вывод

Правильный ответ аналитика должен включать граничные случаи, выбор инструмента и определение требований перед кодированием.