From bbb086a521d9a4c22f5fa97b32107c089cc8d938 Mon Sep 17 00:00:00 2001 From: Vadim Nifadev <36514612+nifadyev@users.noreply.github.com> Date: Wed, 24 Apr 2024 11:27:46 +0300 Subject: [PATCH] Translate Splitsies example --- translations/README-ru.md | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/translations/README-ru.md b/translations/README-ru.md index 123b59e..ae55c30 100644 --- a/translations/README-ru.md +++ b/translations/README-ru.md @@ -2745,3 +2745,40 @@ def similar_recursive_func(a): * Знание этих тонкостей может сэкономить вам часы отладки в долгосрочной перспективе. --- + + +### ▶ Сплиты (splitsies) * + +```py +>>> 'a'.split() +['a'] + +# эквивалентно +>>> 'a'.split(' ') +['a'] + +# но +>>> len(''.split()) +0 + +# не эквивалентно +>>> len(''.split(' ')) +1 +``` + +#### 💡 Объяснение + +- Может показаться, что разделителем по умолчанию для split является одиночный пробел `' '`, но согласно [документации](https://docs.python.org/3/library/stdtypes.html#str.split) + > если sep не указан или равен `none`, применяется другой алгоритм разбиения: последовательные пробельные символы рассматриваются как один разделитель, и результат не будет содержать пустых строк в начале или конце, если в строке есть ведущие или завершающие пробелы. Следовательно, разбиение пустой строки или строки, состоящей только из пробельных символов, с разделителем none возвращает `[]`. + > если задан sep, то последовательные разделители не группируются вместе и считаются разделителями пустых строк (например, `'1,,2'.split(',')` возвращает `['1', '', '2']`). Разделение пустой строки с указанным разделителем возвращает `['']`. +- Обратите внимание, как обрабатываются ведущие и завершающие пробелы в следующем фрагменте, + ```py + >>> ' a '.split(' ') + ['', 'a', ''] + >>> ' a '.split() + ['a'] + >>> ''.split(' ') + [''] + ``` + +---