Как удалить пробелы из строки?
Проблема: Как удалить начальные и конечные пробелы из строки в Python?
Пример:
- строка
" Hello world "
должна преобразоваться в"Hello world"
- строка
" Hello world"
должна стать"Hello world"
- строка
"Hello world "
должна превратиться в"Hello world"
- строка
"Hello world"
должна остаться"Hello world"
Как правильно это сделать?
5 ответ(ов)
strip
не ограничивается только пробельными символами. Например, вы можете использовать strip
для удаления других символов, таких как запятые, точки и дефисы в начале и конце строки:
# удаляем все ведущие и завершающие запятые, точки и дефисы
title = title.strip(',.-')
Чтобы удалить все пробелы в начале и в конце строки myString
, вы можете использовать следующий код:
myString.strip()
Этот метод возвращает новую строку, из которой убраны все пробелы, включая пробелы, табуляции и символы новой строки.
Это также можно сделать с помощью регулярного выражения. Вот пример:
import re
input = " Hello "
output = re.sub(r'^\s+|\s+$', '', input)
# output будет 'Hello'
В этом коде используется функция re.sub()
, которая заменяет пробелы в начале и в конце строки на пустую строку. Регулярное выражение r'^\s+|\s+$'
находит пробелы (\s+
) в начале строки (^
) и в конце строки ($
).
Как новичку, мне стало сложно разобраться в этой теме, поэтому я придумал простой способ.
Хотя str.strip() удаляет пробелы в начале и в конце строки, он ничего не делает со пробелами между символами.
words = input("Введите слово для тестирования: ")
# Если пользователь вводит разрывные строки, это становится проблемой
# input = " he llo, ho w are y ou "
n = words.strip()
print(n)
# вывод "he llo, ho w are y ou" - только пробелы в начале и в конце удалены
Вместо этого используйте str.replace(), чтобы сделать код более понятным, уменьшить количество ошибок и повысить эффективность. Следующий код можно обобщить для использования str.replace():
def whitespace(words):
r = words.replace(' ', '') # удаляет все пробелы
n = r.replace(',', '|') # другие применения replace
return n
def run():
words = input("Введите слово для тестирования: ") # принимаем ввод пользователя
m = whitespace(words) # оборачиваем функцию в run() для улучшения удобства использования
o = m.count('f') # для тестирования
return m, o
print(run())
# вывод - ('hello|howareyou', 0)
Этот подход может быть полезен при использовании схожих функций в разных местах.
Чтобы удалить "лишние пробелы", которые могут вызывать множество ошибок отступов при выполнении вашего кода или программы на Python, выполните следующие шаги. Если Python продолжает сообщать, что ошибка заключается в отступе в строках 1, 2, 3, 4, 5 и т.д., просто исправьте эти строки туда и обратно.
Однако, если у вас по-прежнему возникают проблемы с программой, связанные с опечатками, операторами и т.д., убедитесь, что вы внимательно прочитали сообщение об ошибке, которое выдает Python:
Первое, что нужно проверить, — это правильность ваших отступов. Если с отступами все в порядке, проверьте, есть ли у вас смешивание табуляций и пробелов в коде.
Помните: код может выглядеть нормально (для вас), но интерпретатор отказывается его выполнять. Если вы подозреваете, что проблема в этом, быстрым решением будет открыть ваш код в окне редактора IDLE, затем выберите в меню "Правка" → "Выбрать все", а затем "Формат" → "Убрать табуляцию из области". Если у вас смешаны табуляции и пробелы, это преобразует все ваши табуляции в пробелы сразу (и решит любые проблемы с отступами).
Удалить все пробелы в строке
Как удалить пробелы?
Есть ли в Python метод подстроки 'contains' для строк?
Объединение двух столбцов текста в DataFrame pandas
Вывод строки в текстовый файл