Я изучаю Python. В частности, я читал о методе разделения строки Python и узнал, что разделителем по умолчанию для split
является пробел. Итак, я понимаю, как работает следующее:
text = 'Hello World'
print(text.split()) #this should print ['Hello', 'World'] which it does
Вывод вышеуказанной программы в Python3.6 ['Hello', 'World']
соответствует ожидаемому, потому что в приведенной выше строковой переменной text
у нас есть пробелы.
Но затем я попробовал следующий пример:
text = 'Hello\nWorld'
print(text.split()) #this should print ['Hello\nWorld'] but it doesn't
Фактический результат вышеизложенного:
['Hello', 'World'] #this shouldn't happen because there is no whitespace in text
В то время как ожидаемый результат вышеизложенного:
['Hello\nWorld'] #this should happen because there is no whitespace in text
Как видите, поскольку между 'Hello'
и 'World'
нет пробела, вывод должен быть ['Hello\nWorld']
, потому что \n
не является пробелом, а пробел является разделителем по умолчанию для метода split
.
Что здесь происходит.
text = 'Hello\nWorld'
print(text.split(" "))
вернётся ['Hello\nWorld']
Я не совсем уверен, почему за это проголосовали, я думаю, люди думали, что это легко найти ответ в документах, но это только в том случае, если вы знали, что нужно искать определение пробелов в Python
If sep is not specified or is None, a different splitting algorithm is applied: runs of consecutive whitespace are regarded as a single separator and the result will contain no empty strings at the start or end if the string has leading or trailing whitespace.
Табуляция (\t
), перевод строки (\n
), пробелы и т. д. Все они считаются символами пробел, поскольку технически служат одной цели. В Космос вещи.
новые строки считаются пробел