ENote
  • ✨Home
    • Відмова від відповідальності
  • Progr
    • Python
      • Модулі
        • pip
        • cgitb
        • datetime
          • Класс datetime() модуля datetime
            • Методы объекта datetime.datetime()
            • datetime.datetime examples
          • Класс timedelta() модуля datetime
            • datetime.timedelta examples
          • Класс date() модуля datetime
            • datetime.date examples
          • Класс time() модуля datetime
            • Формат для функций .strftime() и .strptime(). модуля datetime
        • os.path
        • pathlib
          • pathlib to str
        • subproces
        • os
        • Jinja
          • Синтаксис шаблонів Jinja
          • Клас Environment()
          • Простой пример cgi-скрипта c Jinja-шаблоном
          • Создание переменных
            • Як оновити глобальну змінну зсередини оператора IF / ELSE або циклу FOR
          • Фільтри і методи
          • Число у рядок, slices
          • Вбудовані фільтри Jinja2
        • re
          • re.search - example
          • re.findall - example
        • email / smtplib
          • Как отправлять электронные письма с помощью Python
        • requests
          • Як зберегти та завантажити файли cookie в запитах Python?
          • Извлечение и установка cookies с модулем requests в Python
          • Links
        • http.cookies
          • Всё о работе с cookie в Python — класс http.cookies
        • xlrd
        • xlwt
        • borb
          • ChunkOfText
          • send_usage_statistics
          • borb clear
          • 2.1.3 vs 2.1.15
          • QR-code
          • Залежності borb
        • JSON
          • Кирилиця в JSON
        • matplotlib
        • argparse
        • click
        • configparser
        • traceback
        • sys
          • exit()
        • mysql-connector-python
        • logging
        • icrawler
        • Auto Plates
        • rembg
        • random
      • Strings
        • Built-in methods
        • Форматування виводу
        • Початкові нулі
        • Рядок в число
      • list
        • Об’єднання списків
        • list.sort(), sorted()
        • list.reverse(), reversed()
        • all(), any()
        • sum(), min(), max()
        • map(), filter(), reduce()
        • join(), split()
      • tuple
      • dict
        • Об'єднання / злиття словників
        • Сортування словника Python: значення, ключі тощо
      • set
      • class Enum
      • Середнє арифметичне
      • Virtual environment
        • web-app
      • type(), isinstance()
      • __main__
      • Files & Dirs
        • Try except for exception handling
        • Cписок файлов директории
        • User Home Dir
        • Copy file
      • *args, **qwargs
      • Links
      • Область видимости
      • Handling a File Error
      • assert
      • if
      • Числа
        • Округлення чисел
        • Отримати число з рядка
      • Обработка исключений в Python
      • Файлы и сериализация данных
      • OOP
      • Net and Web
      • Структура проекта на Python
      • Распаковка итерируемых объектов
      • Links
      • Algorithms
      • Python exit commands: quit(), exit(), sys.exit() and os._exit()
      • Цикли for / while
      • uuid
    • JavaScript
      • String
        • replaceAll() polyfill
        • Шаблонные строки
      • Array
        • Все способы перебора массива в JavaScript
      • Object
      • document.location
      • RegExp
      • Examples
        • Вычисление остатка от деления
        • Остаток от деления и деление без остатка
        • Округление числа
      • XMLHttpRequest
      • alert, prompt, confirm
      • onclick
      • hidden, display:none
      • LocalStorage, sessionStorage
      • null, undefined
      • cookies (js)
      • var, let и const
        • var vs let
        • const
      • Модифікація DOM
        • DOM select
      • JSON
        • Try
      • fetch
      • typeof
      • FormData не включає disabled набори полів
      • FormData, fdata
      • Більше одного відео YouTube на одній сторінці
    • HTML, CSS
      • favicon
      • Деякі спецсимволи
      • meta
      • ASCII table
      • lang
      • Псевдоелементи ::after і ::before
      • Cursor
      • Об использовании нестандартных пробелов
      • Картинка фоном
      • Безпечні веб-шрифти
      • Завжди внизу, незалежно від пропорцій екрану
      • напівпрозорий елемент
      • Символи з тінью
      • SVG (bootstrap)
      • rel = canonical
      • link stylesheet: integrity & crossorigin
      • rel = noopener
    • Bootstrap
      • Form Validate
      • Password show/hide
    • Errors
  • Dev
    • Git
      • clone
      • git-scm (book)
      • git config
        • files .git*
        • core.filemode
        • core.sharedRepository
      • .gitignore
      • .gitkeep
      • Видалити з репозиторію
        • Видалений файл з однієї гілки...
      • Пам’ятка
        • Перегляд історії комітів
        • Скасувати git add
        • revert
        • Скасувати внесені зміни у файл
        • Додати до коміту файл
        • Видалити історію попередніх коммітів, та почати "з нуля"
        • Додати файли в останній коміт
      • Робота з гілками
        • Порівняти гілки
      • Git за полчаса
      • Три розділи проєкту Git
      • Merge conflict
      • Pull error
        • Git Error: You have divergent branches...
      • diff
      • Video
      • Merge скасувати
      • .gitignore: Permission denied
    • GitHub
      • SSH-підключення до GitHub
      • Перенести на сервер локальный репозиторий
      • Перенести на сервер репозиторій разом з історією
      • Створення змісту
    • Security
      • robots.txt
      • Cookies
    • Аутентифікація і cookies
      • ChatGPT
  • data
    • MySQL
      • MyISAM vs InnoDB
      • Типи даних
        • NULL (todo)
        • TIMESTAMP
        • YEAR
        • JSON
        • Требования к памяти для символьных типов
        • Поиск записей в таблице, которым нет соответствия в другой
      • Приклад створення БД, та користувача
        • Права для пользователей
      • Переглянути всі індекси таблиці
      • Копіювання, клонування таблиць
      • TEMPORARY TABLE
      • JOIN
      • ALTER TABLE
      • AUTO_INCREMENT
        • AUTO_INCREMENT у складовому індексі
      • LIMIT
        • Использование MySQL LIMIT
      • 10 Примеров входной загрузки данных из текстового файла в таблицы MySQL
      • Рішення
        • Выявление и удаление несвязанных записей
        • Выборка произвольных записей
        • Коректне сортування українських літер
        • Найти записи, которые присутствуют в одной таблице и отсутствуют во второй
        • Как удобно посмотреть данные...
        • Нахождение "дыр" в нумерации
        • Знайти дубликати полів в одній таблиці
        • Дані колонки 1 табл. перенести в 2 табл.
      • Функції
        • LAST_INSERT_ID()
        • GROUP_CONCAT
        • COUNT + DISTINCT
        • Функции для работы с датами и временем
      • Автоматизируйте создание бэкапов
      • mysqldump
        • Time Zone UTC
      • Результат запиту у файл
      • Результат запиту у змінну
      • Пособие по MySQL на Python
      • Змінні
      • Эмуляция функции row_number() в MySQL
      • Изучаем хранимые процедуры MySQL
      • SELECT DISTINCT
      • Dump всієї бази даних
      • Індекси
      • FOREIGN KEY
      • MAX(), MIN()
      • LENGTH, CHAR_LENGTH
      • Встановлення
    • MariaDB
    • PostgreSQL
      • Работа с базой данных PostgreSQL
      • Работаем с PostgreSQL через командную строку в Linux
    • Domains
      • Життєвий цикл доменів
      • Статус домена
    • SQLite, MySQL и PostgreSQL: сравниваем популярные реляционные СУБД
  • Linux
    • DNS
      • Как в DNS прописать 301 редирект
      • mail
        • SPF
          • Mirohost
        • _dmarc _domainkey
        • DKIM
        • Прописати ключі DKIM в exim
        • Листи з неіснуючим адресатом
    • Server
      • Zomro
        • pip
        • SSH-доступ по ключу (zomro)
        • venv
        • UnicodeEncodeError: 'latin-1' codec can't encode character
        • Mail Ports
        • Редірект з SSL-сертификатом на транзитному сайті
        • Редірект з SSL за допомогою .htaccess
      • Створення нового користувача з привілеями sudo в Ubuntu
      • SSH-доступ по ключу
      • Часовий пояс в Ubuntu 20.04
      • SSH-підключення командний рядок
      • Як встановити Python 3.9 (нижчу) на Ubuntu 22.04
      • Автозагрузка сервисов в Ubuntu
      • Підвищення безпеки SSH
      • Ubuntu Server
        • Art 01
    • Commands
      • adduser
      • apt
      • cat
      • ls
      • tar
      • ln
      • find
      • chmod
      • chown
      • mv
      • dig
      • ping
      • passwd
      • htpasswd
      • umask
      • usermode
      • history
      • cmp
      • chattr +i
    • Config
      • Keyboard
      • windows
      • My kbdswtch
      • Затримка при завантаженні системи
      • Files
        • /etc/resolv.conf
        • /boot/grub/grub.cfg
        • .config/user-dir.dirs
        • /etc/fstab
      • Як встановити шрифти
    • Apache
      • Встановлення
      • Подключить виртуальный хост
      • Файл .htaccess
        • Установка индексного файла
        • Фільтр IP-адрес
        • ModRewrite
          • Заборонити доступ за User-Agent
          • Перенаправити на іншу сторінку
          • Додавати слеш до адреси
        • Включити SSI
        • Виконувати скрипти CGI
        • Тимчасовий перехід з одного домену на інший
      • SSI
      • SSL
      • Відключити старт Apache з системою
      • Помилки
        • Скрипт не працює
        • CGI-скрипт не виводить кирилицю
        • Could not reliably determine
        • Permissions are missing on a component of the path
        • Symbolic link not allowed or link target not accessible
      • AddType, AddLanguage, AddCharset
    • Nginx
      • 301 редирект з www. та http: на https://(без www.)domain
    • Soft
      • SublimeText
        • Plugins
      • Firefox
      • Gwenview
      • inkscape
      • Double Commander
      • nano
      • mc
        • Знайти потрібний файл
      • meld / diffuse
      • hexedit
      • Kazam - відео з екрану
      • VeraCrypt
      • XnView MP
      • LibreOffice
      • xdotool
      • System Load Monitor
      • Battery Monitor
      • qBittorrent
    • Перетворення .RPM в .DEB
    • Bash
      • Конкатенация строк в Bash
      • Page
    • Файлові часові позначки в Linux: atime, mtime, ctime
    • Права доступу для файлів і каталогів
    • Зміна паролю root
    • Быстро удалить огромное количество файлов в каталоге
    • Як узнати версію Linux?
    • USB Flash ext4
    • Clear Cache
    • Доступ до спільної папки на Windows
    • Віртуальні консолі TTY1–TTY6
    • APT. Заборона оновлення
  • Різне
    • GitBook
    • Банковское округление
    • Ім’я користувача Youtube
  • Hard
    • Hardware
      • Acer Extensa
      • Таймер Feron TM22
      • WD My Book World Edition 2Tb
        • FTP
        • SSH
          • Проблеми
        • SSHFS
      • Canon PIXMA E3340
      • Термометри
    • Auto
      • Акумулятор
    • Electro
    • USB Flash recovery
Powered by GitBook
On this page
  1. Progr
  2. Python
  3. Strings

Built-in methods

PreviousStringsNextФорматування виводу

Last updated 1 year ago

Вбудовані методи рядків у python

У посібнику за ви дізналися, що Python — це об'єктно-орієнтована мова. Кожен елемент даних у програмі python є об'єктом.

Ви також знайомі з функціями: самостійними блоками коду, які можна викликати для виконання певних завдань.

Методи схожі функції. Метод - спеціалізований тип процедури, що викликається, тісно пов'язаний з об'єктом. Як і функція, метод викликається для виконання окремого завдання, але він викликається лише разом із певним об'єктом і знає про нього під час виконання.

Синтаксис для виклику методу об'єкта виглядає так:

obj.foo(<args>)

Цей код викликає метод .foo()об'єкта obj. - аргументи, що передаються методом (якщо є).

Ви дізнаєтеся набагато більше про визначення та виклик методів пізніше у статтях про об'єктно-орієнтоване програмування. Зараз мета засвоїти вбудовані методи, що часто використовуються, які є в python для роботи з рядками.

У наведених методах аргументи, зазначені у квадратних дужках ( []), є необов'язковими.

Зміна регістру рядка

Методи цієї групи виконують перетворення регістру рядка.

string.capitalize()наводить першу літеру у верхній регістр, інші у нижній.

s.capitalize()повертає копію sз першим символом, перетвореним на верхній регістр, та іншими символами, перетвореними на нижній регістр:

>>> s = 'everyTHing yoU Can IMaGine is rEAl'
>>> s.capitalize()
'Everything you can imagine is real'

Не алфавітні символи не змінюються:

>>> s = 'follow us @PYTHON'
>>> s.capitalize()
'Follow us @python'

string.lower()перетворює всі буквені символи на малі.

s.lower()повертає копію sз усіма літерними символами, перетвореними на нижній регістр:

>>> 'everyTHing yoU Can IMaGine is rEAl'.lower()
'everything you can imagine is real'

string.swapcase()змінює регістр буквених символів на протилежний.

s.swapcase()повертає копію sз великими літерними символами, перетвореними на малі і навпаки:

>>> 'everyTHing yoU Can IMaGine is rEAl'.swapcase()
'EVERYthING YOu cAN imAgINE IS ReaL'

string.title()перетворює перші літери всіх слів у великі

s.title()повертає копію, sв якій перша літера кожного слова перетворюється на верхній регістр, а решта літер — у нижній регістр:

>>> 'the sun also rises'.title()
'The Sun Also Rises'

Цей метод використовує досить простий алгоритм. Він не намагається розрізнити важливі та неважливі слова і не обробляє апострофи, імена чи абревіатури:

>>> 'follow us @PYTHON'.title()
'Follow Us @Python'

string.upper()перетворює всі буквені символи на великі.

s.upper()повертає копію sз усіма літерними символами у верхньому регістрі:

>>> 'follow us @PYTHON'.upper()
'FOLLOW US @PYTHON'

Знайти та замінити підрядок у рядку

Ці методи надають різні способи пошуку в цільовому рядку зазначеного підрядка.

Кожен метод у цій групі підтримує необов'язкові аргументи та аргументи. Вони визначають діапазон пошуку: дія методу обмежена частиною цільового рядка, що починається в позиції символу і триває аж до позиції символу , але не включаючи його. Якщо зазначено, а ні, метод застосовується до частини рядка від кінця.

string.count([, [, ]])підраховує кількість входжень підрядка у рядок.

s.count()повертає кількість точних входжень підрядки в s:

>>> 'foo goo moo'.count('oo')
3

Кількість входження зміниться, якщо вказати і :

>>> 'foo goo moo'.count('oo', 0, 8)
2

string.endswith([, [, ]])визначає, чи закінчується рядок заданим підрядком.

s.endswith()повертає, Trueякщо sзакінчується зазначеним і Falseякщо ні:

>>> 'python'.endswith('on')
True
>>> 'python'.endswith('or')
False

Порівняння обмежено підрядком, між і якщо вони вказані:

>>> 'python'.endswith('yt', 0, 4)
True
>>> 'python'.endswith('yt', 2, 4)
False

string.find([, [, ]])шукає в рядку заданий підрядок.

s.find()повертає перший індекс у sякий відповідає початку рядка :

>>> 'Follow Us @Python'.find('Us')
7

Цей метод повертає, -1якщо зазначений підрядок не знайдено:

>>> 'Follow Us @Python'.find('you')
-1

Пошук у рядку обмежується підрядком між і , якщо вони вказані:

>>> 'Follow Us @Python'.find('Us', 4)
7
>>> 'Follow Us @Python'.find('Us', 4, 7)
-1

string.index([, [, ]])шукає в рядку заданий підрядок.

Цей метод ідентичний .find(), крім те що він викликає виняток ValueError, а то й знайдено:

>>> 'Follow Us @Python'.index('you')
Traceback (most recent call last):
  File "", line 1, in <module>
    'Follow Us @Python'.index('you')
ValueError: substring not found

string.rfind([, [, ]])шукає в рядку заданий підрядок, починаючи з кінця.

s.rfind()повертає індекс останнього входження підрядка до s, який відповідає початку :

>>> 'Follow Us @Python'.rfind('o')
15

Як і в .find(), якщо підрядок не знайдено, повертається -1:

>>> 'Follow Us @Python'.rfind('a')
-1

Пошук у рядку обмежується підрядком між і , якщо вони вказані:

>>> 'Follow Us @Python'.rfind('Us', 0, 14)
7
>>> 'Follow Us @Python'.rfind('Us', 9, 14)
-1

string.rindex([, [, ]])шукає в рядку заданий підрядок, починаючи з кінця.

Цей метод ідентичний .rfind(), крім те що він викликає виняток ValueError, а то й знайдено:

>>> 'Follow Us @Python'.rindex('you')
Traceback (most recent call last):
  File "", line 1, in <module>
    'Follow Us @Python'.rindex('you')
ValueError: substring not found

string.startswith([, [, ]])визначає, чи починається рядок із заданого підрядка.

s.startswith()повертає, Trueякщо sпочинається із зазначеного і Falseякщо ні:

>>> 'Follow Us @Python'.startswith('Fol')
True
>>> 'Follow Us @Python'.startswith('Go')
False

Порівняння обмежено підрядком, між і якщо вони вказані:

>>> 'Follow Us @Python'.startswith('Us', 7)
True
>>> 'Follow Us @Python'.startswith('Us', 8, 16)
False

Класифікація рядків

Методи у цій групі класифікують рядок на основі символів, які він містить.

string.isalnum()визначає, чи складається рядок із літер та цифр.

s.isalnum()повертає True, якщо рядок sне порожній, а всі символи буквено-цифрові (або буква, або цифра). В іншому випадку False:

>>> 'abc123'.isalnum()
True
>>> 'abc$123'.isalnum()
False
>>> ''.isalnum()
False

string.isalpha()визначає, чи складається рядок лише з літер.

s.isalpha()повертає True, якщо рядок sне порожній, а всі символи літерні. В іншому випадку False:

>>> 'ABCabc'.isalpha()
True
>>> 'abc123'.isalpha()
False

string.isdigit()визначає, чи складається рядок із цифр (перевірка на число).

s.digit()повертає Trueколи рядок sне порожній і всі його символи є цифрами, а якщо Falseні:

>>> '123'.isdigit()
True
>>> '123abc'.isdigit()
False

string.isidentifier()визначає, чи є допустимим ідентифікатором Python.

s.isidentifier()повертає True, якщо sвалідний ідентифікатор (назва змінної, функції, класу і т.д.) python, а якщо Falseні:

>>> 'foo32'.isidentifier()
True
>>> '32foo'.isidentifier()
False
>>> 'foo$32'.isidentifier()
False

Важливо: .isidentifier() поверне Trueдля рядка, який відповідає зарезервованому ключовому слову python, навіть якщо його не можна використовувати:

>>> 'and'.isidentifier()
True

Ви можете перевірити, чи рядок є ключовим словом Python, використовуючи функцію iskeyword(), яка знаходиться в модулі keyword. Один із можливих способів зробити це:

>>> from keyword import iskeyword
>>> iskeyword('and')
True

Якщо ви дійсно хочете переконатися, що рядок можна використовувати як python ідентифікатор, ви повинні перевірити, що .isidentifier()= Trueі iskeyword()= False.

string.islower()визначає, чи є літерні символи рядка малими.

s.islower()повертає True, якщо рядок sне порожній, і всі літерні символи, що містяться в ньому, малі, а Falseякщо ні. Чи не алфавітні символи ігноруються:

>>> 'abc'.islower()
True
>>> 'abc1$d'.islower()
True
>>> 'Abc1$D'.islower()
False

string.isprintable()визначає, чи складається рядок лише з символів, що друкуються.

s.isprintable()повертає, Trueякщо рядок sпорожній або всі літерні символи, які він містить, можна вивести на екран. Повертає, Falseякщо sмістить хоч один спеціальний символ. Чи не алфавітні символи ігноруються:

>>> 'a\tb'.isprintable() # \t - символ табуляции
False
>>> 'a b'.isprintable()
True
>>> ''.isprintable()
True
>>> 'a\nb'.isprintable() # \n - символ перевода строки
False

Важливо: Це єдиний .is****()метод, який повертає True, якщо sпорожній рядок. Всі інші повертаються False.

string.isspace()визначає, чи рядок складається лише з пробельних символів.

s.isspace()повертає True, якщо sне порожній рядок, і всі символи є пробельними, а Falseякщо ні.

Найбільш часто зустрічаються пробільні символи - це пробіл ' ', табуляція '\t'і новий рядок '\n':

>>> ' \t  \n '.isspace()
True
>>> ' a '.isspace()
False

Тим не менш, є кілька символів ASCII, які вважаються пробілами. І якщо враховувати символи Юнікоду, їх ще більше:

>>> '\f\u2005\r'.isspace()
True

'\f'та '\r'є escape-послідовностями для символів ASCII; '\u2005'це escape-послідовність для Unicode.

string.istitle()визначає, чи починаються слова рядка з великої літери.

s.istitle()повертає Trueколи sне порожній рядок і перший алфавітний символ кожного слова у верхньому регістрі, а решта літерних символів у кожному слові малі. Повертає False, якщо ні:

>>> 'This Is A Title'.istitle()
True
>>> 'This is a title'.istitle()
False
>>> 'Give Me The #$#@ Ball!'.istitle()
True

string.isupper()визначає, чи є буквені символи рядка великими.

s.isupper()повертає True, якщо рядок sне порожня, і всі літерні символи, що містяться в ній, є великими, і в False, якщо ні. Чи не алфавітні символи ігноруються:

>>> 'ABC'.isupper()
True
>>> 'ABC1$D'.isupper()
True
>>> 'Abc1$D'.isupper()
False

Вирівнювання рядків, відступи

Методи цієї групи впливають виведення рядка.

string.center([, ])вирівнює рядок по центру.

s.center()повертає рядок, що складається з sвирівняної по ширині . За замовчуванням відступ складається з пробілу ASCII:

>>> 'py'.center(10)
'    py    '

Якщо вказано необов'язковий аргумент , він використовується як символ заповнення:

>>> 'py'.center(10, '-')
'----py----'

Якщо sбільше або дорівнює , рядок повертається без змін:

>>> 'python'.center(2)
'python'

string.expandtabs(tabsize=8)замінює табуляції на прогалини

s.expandtabs()замінює кожен символ табуляції ( '\t') пробілами. За замовчуванням табуляція замінюється на 8 пробілів:

>>> 'a\tb\tc'.expandtabs()
'a       b       c'
>>> 'aaa\tbbb\tc'.expandtabs()
'aaa     bbb     c'

tabsizeнеобов'язковий параметр, що задає кількість прогалин:

>>> 'a\tb\tc'.expandtabs(4)
'a   b   c'
>>> 'aaa\tbbb\tc'.expandtabs(tabsize=4)
'aaa bbb c'

string.ljust([, ])вирівнювання лівим краєм рядка в полі.

s.ljust()повертає рядок s, вирівняний по лівому краю в полі завширшки . За замовчуванням відступ складається з пробілу ASCII:

>>> 'python'.ljust(10)
'python    '

Якщо вказано аргумент , він використовується як символ заповнення:

>>> 'python'.ljust(10, '-')
'python----'

Якщо sбільше або дорівнює , рядок повертається без змін:

>>> 'python'.ljust(2)
'python'

string.lstrip([])обрізає пробільні символи зліва

s.lstrip()повертає копію s, в якій всі пробілові символи з лівого краю видалені:

>>> '   foo bar baz   '.lstrip()
'foo bar baz   '
>>> '\t\nfoo\t\nbar\t\nbaz'.lstrip()
'foo\t\nbar\t\nbaz'

Необов'язковий аргумент визначає набір символів, які будуть видалені:

>>> 'https://www.pythonru.com'.lstrip('/:pths')
'www.pythonru.com'

string.replace(, [, ])замінює входження підрядки у рядку.

s.replace(, )повертає копію sде всі входження підрядки , замінені на :

>>> 'I hate python! I hate python! I hate python!'.replace('hate', 'love')
'I love python! I love python! I love python!'

Якщо вказано необов'язковий аргумент , виконується кількість замін:

>>> 'I hate python! I hate python! I hate python!'.replace('hate', 'love', 2)
'I love python! I love python! I hate python!'

string.rjust([, ])вирівнювання з правого краю рядка в полі.

s.rjust()повертає рядок s, вирівняний праворуч у полі шириною . За замовчуванням відступ складається з пробілу ASCII:

>>> 'python'.rjust(10)
'    python'

Якщо вказано аргумент , він використовується як символ заповнення:

>>> 'python'.rjust(10, '-')
'----python'

Якщо sбільше або дорівнює , рядок повертається без змін:

>>> 'python'.rjust(2)
'python'

string.rstrip([])обрізає пробільні символи праворуч

s.rstrip()повертає копію sбез пробілів, видалених з правого краю:

>>> '   foo bar baz   '.rstrip()
'   foo bar baz'
>>> 'foo\t\nbar\t\nbaz\t\n'.rstrip()
'foo\t\nbar\t\nbaz'

Необов'язковий аргумент визначає набір символів, які будуть видалені:

>>> 'foo.$$$;'.rstrip(';$.')
'foo'

string.strip([])видаляє символи з лівого та правого краю рядка.

s.strip()еквівалентно послідовному виклику s.lstrip()та s.rstrip(). Без аргументу метод видаляє прогалини на початку та наприкінці:

>>> s = '   foo bar baz\t\t\t'
>>> s = s.lstrip()
>>> s = s.rstrip()
>>> s
'foo bar baz'

Як .lstrip()і .rstrip(), необов'язковий аргумент визначає набір символів, які будуть видалені:

>>> 'www.pythonru.com'.strip('w.moc')
'pythonru'

Важливо: Коли значення методу, що повертається, є іншим рядком, як це часто буває, методи можна викликати послідовно:

>>> '   foo bar baz\t\t\t'.lstrip().rstrip()
'foo bar baz'
>>> '   foo bar baz\t\t\t'.strip()
'foo bar baz'

>>> 'www.pythonru.com'.lstrip('w.').rstrip('.moc')
'pythonru'
>>> 'www.pythonru.com'.strip('w.moc')
'pythonru'

string.zfill()доповнює рядок нулями зліва.

s.zfill()повертає копію sдоповнену '0'ліворуч для досягнення довжини рядка вказаної в :

>>> '42'.zfill(5)
'00042'

Якщо sмістить знак перед цифрами, він залишається зліва рядка:

>>> '+42'.zfill(8)
'+0000042'
>>> '-42'.zfill(8)
'-0000042'

Якщо sбільше або дорівнює , рядок повертається без змін:

>>> '-42'.zfill(3)
'-42'

.zfill()найбільш корисний для рядкових уявлень чисел, але python із задоволенням заповнить рядок нулями, навіть якщо в ньому немає чисел:

>>> 'foo'.zfill(6)
'000foo'

Методи перетворення рядка до списку

Методи у цій групі перетворюють рядок на інший тип даних і навпаки. Ці методи повертають або приймають об'єкти, що ітеруються, — термін Python для послідовного набору об'єктів.

Багато з цих методів повертають або список, або кортеж. Це два схожі типи даних, які є прототипами прикладів ітерацій у python. Список укладений у квадратні дужки ( []), а кортеж укладено у прості ( ()).

Тепер погляньмо на останню групу рядкових методів.

string.join()поєднує список у рядок.

s.join()повертає рядок, який є результатом конкатенації об'єкта з роздільником s.

Зверніть увагу, що .join()викликається рядок-розділювач s. має бути послідовністю рядкових об'єктів.

Приклади коду допоможуть уникнути. У першому прикладі роздільником sє ​​рядок ', ', а список рядків:

>>> ', '.join(['foo', 'bar', 'baz', 'qux'])
'foo, bar, baz, qux'

В результаті виходить один рядок, що складається зі списку об'єктів, розділених комами.

У наступному прикладі вказується як одне рядкове значення. Коли рядкове значення використовується як ітерований, воно інтерпретується як список окремих символів рядка:

>>> list('corge')
['c', 'o', 'r', 'g', 'e']

>>> ':'.join('corge')
'c:o:r:g:e'

Таким чином, результатом ':'.join('corge')є рядок, що складається з кожного символу 'corge', розділеного символом ':'.

Цей приклад завершується з помилкою TypeError, тому що один з об'єктів не є рядком:

>>> '---'.join(['foo', 23, 'bar'])
Traceback (most recent call last):
  File "", line 1, in <module>
    '---'.join(['foo', 23, 'bar'])
TypeError: sequence item 1: expected str instance, int found

Це можна виправити так:

>>> '---'.join(['foo', str(23), 'bar'])
'foo---23---bar'

Як ви скоро побачите, багато об'єктів в Python можна ітерувати, і .join()особливо корисний для створення рядків.

string.partition()ділить рядок на основі роздільника.

s.partition()відокремлює від sпідрядок довжиною від початку до першого входження . Значення, що повертається, являє собою кортеж з трьох частин:

  • Частина sдо

  • Розділювач

  • Частина sпісля

Ось пара прикладів .partition()у роботі:

>>> 'foo.bar'.partition('.')
('foo', '.', 'bar')
>>> 'foo@@bar@@baz'.partition('@@')
('foo', '@@', 'bar@@baz')

Якщо не знайдено в s, повертається кортеж містить sдва порожні рядки:

>>> 'foo.bar'.partition('@@')
('foo.bar', '', '')

s.rpartition()ділить рядок на основі роздільника, починаючи з кінця.

s.rpartition()працює як , за винятком того, що ділиться при останньому входженні замість першого:s.partition()s

>>> 'foo@@bar@@baz'.partition('@@')
('foo', '@@', 'bar@@baz')

>>> 'foo@@bar@@baz'.rpartition('@@')
('foo@@bar', '@@', 'baz')

string.rsplit(sep=None, maxsplit=-1)ділить рядок на список із підрядків.

Без аргументів s.rsplit()ділить sна підрядки, розділені будь-якою послідовністю прогалин, і повертає список:

>>> 'foo bar baz qux'.rsplit()
['foo', 'bar', 'baz', 'qux']
>>> 'foo\n\tbar   baz\r\fqux'.rsplit()
['foo', 'bar', 'baz', 'qux']

Якщо зазначено, він використовується як роздільник:

>>> 'foo.bar.baz.qux'.rsplit(sep='.')
['foo', 'bar', 'baz', 'qux']

Якщо = None, рядок розділяється пробілами, якби не було вказано взагалі.

Коли явно вказано як роздільник s, послідовні повтори роздільника будуть повернуті як порожні рядки:

>>> 'foo...bar'.rsplit(sep='.')
['foo', '', '', 'bar']

Це не працює, коли не вказано. У цьому випадку послідовні символи пробілів об'єднуються в один роздільник, і результуючий список ніколи не міститиме порожніх рядків:

>>> 'foo\t\t\tbar'.rsplit()
['foo', 'bar']

Якщо вказано необов'язковий параметр , виконується максимальна кількість поділів, починаючи з правого краю s:

>>> 'www.pythonru.com'.rsplit(sep='.', maxsplit=1)
['www.pythonru', 'com']

Стандартне значення для — -1. Це означає, що всі можливі поділи мають бути виконані:

>>> 'www.pythonru.com'.rsplit(sep='.', maxsplit=-1)
['www', 'pythonru', 'com']
>>> 'www.pythonru.com'.rsplit(sep='.')
['www', 'pythonru', 'com']

string.split(sep=None, maxsplit=-1)ділить рядок на список із підрядків.

s.split()веде себе як s.rsplit(), за винятком того, що при вказівці , розподіл починається з лівого краю s:

>>> 'www.pythonru.com'.split('.', maxsplit=1)
['www', 'pythonru.com']
>>> 'www.pythonru.com'.rsplit('.', maxsplit=1)
['www.pythonru', 'com']

Якщо не вказано, між .rsplit()і .split()в python різниці немає.

string.splitlines([])ділить текст на список рядків.

s.splitlines()ділить sна рядки та повертає їх у списку. Будь-який із наступних символів або послідовностей символів вважається межею рядка:

Розділювач

Значення

Новий рядок

Повернення каретки

\r

Повернення каретки + переклад рядка

\v або \x0b

Таблиці рядків

\f або \x0c

Подання форми

\x1c

Розділювач файлів

\x1d

Розділювач груп

\x1e

Розділювач записів

85

Наступний рядок

&2028

Новий рядок (Unicode)

&2029

Новий абзац (Unicode)

Ось приклад використання декількох різних роздільників рядків:

>>> 'foo\nbar\r\nbaz\fqux\u2028quux'.splitlines()
['foo', 'bar', 'baz', 'qux', 'quux']

Якщо у рядку присутні послідовні символи межі рядка, вони з'являться у списку результатів як порожні рядки:

>>> 'foo\f\f\fbar'.splitlines()
['foo', '', '', 'bar']

Якщо необов'язковий аргумент вказано і його булеве значення True, то символи межі рядків зберігаються у списку підрядків:

>>> 'foo\nbar\nbaz\nqux'.splitlines(True)
['foo\n', 'bar\n', 'baz\n', 'qux']
>>\> 'foo\nbar\nbaz\nqux'.splitlines(8)
['foo\n', 'bar\n', 'baz\n', 'qux']

типами змінних у python