Метод `strip` в Python по умолчанию удаляет пробельные символы (пробелы, табуляция, переводы строк и др.) с начала и конца строки. Это поведение предназначено для очистки строки от нежелательного пространства вокруг значащего текста, что часто пригождается при обработке текстовых данных, приходящих с пользовательского ввода, из файлов и т.д.
Вы можете также использовать `strip` с конкретным аргументом. Когда вы передаёте аргумент в метод `strip`, он удаляет все комбинации символов, которые входят в ваш аргумент, с начала и конца строки, до тех пор, пока не встретит символ, не входящий в аргумент.
Давайте рассмотрим примеры с аргументами 'on' и 'to':
```python
s = "notion"
print(s.strip('on')) # выводит: "ti"
```
Здесь `strip` удаляет все 'o' и 'n' с начала и конца строки. В нашем случае 'notion'.strip('on') будет продолжать удалять 'o' и 'n', пока не встретится символ, не содержащийся в 'on', в данном случае 'ti'.
Важно понимать, что аргумент 'on' не означает конкретную последовательность 'on', а означает любые комбинации и вхождения 'o' и 'n'. Поэтому сначала удаляется 'n', потом 'o' в начале строки, и аналогично 'n', затем 'o' в конце строки.
Для второго примера с 'to':
```python
s = "totally optional"
print(s.strip('to')) # выводит: "tally op"
```
Здесь `strip` удаляет все комбинации 't' и 'o' с начала и конца строки. Метод будет удалять 'to', 'ot', 'tt', 'oo', и т.д., пока не встретит символы, которые не 't' и не 'o'.
На этом примере удаление будет идти так: 'total' из начала строки и 'onal' из конца, оставляя 'tally op'.
Это может привести к неожиданным результатам, если не понимать, что аргумент в `strip` — это набор символов для удаления, а не подстрока или конкретная последовательность символов.