← Назад к вопросам
Как посчитать слова, если строка состоит из пробелов?
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)
Практические замечания
- Определение слова — уточните требования перед реализацией
- Производительность — используйте SQL для больших объёмов
- Unicode — учитывайте различные типы пробелов
- NULL-значения — всегда проверяйте на null перед обработкой
Вывод
Правильный ответ аналитика должен включать граничные случаи, выбор инструмента и определение требований перед кодированием.