Что выведет этот код?


s = "  hello   world  "
print(" ".join(s.split()))

Код удаляет лишние пробелы в начале и конце строки, а также между словами, оставляя только один пробел между ними. Результат выполнения: hello world

Задача демонстрирует работу с методом split() и join() для обработки строк в Python.

Разберем код:

  1. s = " hello world ": Инициализируется строковая переменная s, содержащая пробелы в начале, между словами и в конце.
  2. s.split(): Метод split() вызывается без аргументов, что означает разделение строки по любым последовательностям пробельных символов (пробелы, табуляции, переводы строк). В результате возвращается список слов, при этом начальные, конечные и множественные пробелы между словами игнорируются. В данном случае, s.split() вернет ['hello', 'world'].
  3. " ".join(...): Метод join() вызывается у строки " " (один пробел). Он принимает список строк в качестве аргумента и объединяет их в одну строку, вставляя строку, у которой вызывается метод join() (в данном случае, один пробел), между каждым элементом списка. В нашем случае, " ".join(['hello', 'world']) создаст строку "hello world".
  4. print(...): Функция print() выводит полученную строку в консоль.

Результат:

Код выведет в консоль строку "hello world", удалив все лишние пробелы в начале, конце и между словами.

Альтернативные решения:

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

  • С использованием регулярных выражений:
    
                import re
                s = "  hello   world  "
                print(re.sub(r"\s+", " ", s).strip())
              
    Этот вариант заменяет все последовательности пробелов одним пробелом, а затем удаляет пробелы в начале и конце строки.

Важность на собеседовании:

Эта задача проверяет базовые знания работы со строками в Python, понимание методов split() и join(), а также умение обрабатывать пробельные символы. Она также может указывать на знакомство с идиоматичным стилем кодирования в Python. Знание альтернативных решений (например, с использованием регулярных выражений) покажет более глубокое понимание инструментов и возможностей языка.

0