метод python strip, показывающий противоречивые результаты

#python

#питон

Вопрос:

Почему приведенный ниже код ведет себя по-другому ?

Код 1:

 line = ' dd-- -- ' len1 = len(line) line2 = line.strip('') len2 = len(line2) print(line) print(line2) print(len1) print(len2)  

выход:

 dd-- --  dd-- -- 16 16  

Код 2:

 line = ' dd-- -- ' len1 = len(line) line2 = line.strip(' ') len2 = len(line2) print(line) print(line2) print(len1) print(len2)  

выход:

 dd-- -- dd-- -- 16 8  

Комментарии:

1. '' и ' ' являются двумя разными аргументами и line.strip ведут себя по — разному в каждом конкретном случае. Что вы считаете непоследовательным?

2. Извини, я виноват. Я предполагал», оставив его по умолчанию. Спасибо

3. Аргумент по умолчанию None — «нет '' «.

Ответ №1:

strip Функция принимает набор символов для удаления в качестве начальных/конечных символов. В первом случае вы передаете пустую строку, поэтому ничего не удаляется. Во втором случае вы вводите символ пробела, который удаляет 8 начальных/конечных пробелов. Поскольку пробел является символом по умолчанию для удаления, это было бы эквивалентно записи line.strip() .

Комментарии:

1. Извини, я виноват. Я предполагал», оставив его по умолчанию. Спасибо