S = ‘str’; S = «str»; S = »’str»’; S = «»»str»»» | Литералы строк |
S = «s\np\ta\nbbb» | Экранированные последовательности |
S = r»C:\temp\new» | Неформатированные строки (подавляют экранирование) |
S = b»byte» | Строка байтов |
S1 + S2 | Конкатенация (сложение строк) |
S1 * 3 | Повторение строки |
S[i] | Обращение по индексу |
S[i:j:step] | Извлечение среза |
len(S) | Длина строки |
S.find(str, [start],[end]) | Поиск подстроки в строке. Возвращает номер первого вхождения или -1 |
S.rfind(str, [start],[end]) | Поиск подстроки в строке. Возвращает номер последнего вхождения или -1 |
S.index(str, [start],[end]) | Поиск подстроки в строке. Возвращает номер первого вхождения или вызывает ValueError |
S.rindex(str, [start],[end]) | Поиск подстроки в строке. Возвращает номер последнего вхождения или вызывает ValueError |
S.replace(шаблон, замена) | Замена шаблона |
S.split(символ) | Разбиение строки по разделителю |
S.isdigit() | Состоит ли строка из цифр |
S.isalpha() | Состоит ли строка из букв |
S.isalnum() | Состоит ли строка из цифр или букв |
S.islower() | Состоит ли строка из символов в нижнем регистре |
S.isupper() | Состоит ли строка из символов в верхнем регистре |
S.isspace() | Состоит ли строка из неотображаемых символов (пробел, символ перевода страницы (‘\f’), «новая строка» (‘\n’), «перевод каретки» (‘\r’), «горизонтальная табуляция» (‘\t’) и «вертикальная табуляция» (‘\v’)) |
S.istitle() | Начинаются ли слова в строке с заглавной буквы |
S.upper() | Преобразование строки к верхнему регистру |
S.lower() | Преобразование строки к нижнему регистру |
S.startswith(str) | Начинается ли строка S с шаблона str |
S.endswith(str) | Заканчивается ли строка S шаблоном str |
S.join(список) | Сборка строки из списка с разделителем S |
ord(символ) | Символ в его код ASCII |
chr(число) | Код ASCII в символ |
S.capitalize() | Переводит первый символ строки в верхний регистр, а все остальные в нижний |
S.center(width, [fill]) | Возвращает отцентрованную строку, по краям которой стоит символ fill (пробел по умолчанию) |
S.count(str, [start],[end]) | Возвращает количество непересекающихся вхождений подстроки в диапазоне [начало, конец] (0 и длина строки по умолчанию) |
S.expandtabs([tabsize]) | Возвращает копию строки, в которой все символы табуляции заменяются одним или несколькими пробелами, в зависимости от текущего столбца. Если TabSize не указан, размер табуляции полагается равным 8 пробелам |
S.lstrip([chars]) | Удаление пробельных символов в начале строки |
S.rstrip([chars]) | Удаление пробельных символов в конце строки |
S.strip([chars]) | Удаление пробельных символов в начале и в конце строки |
S.partition(шаблон) | Возвращает кортеж, содержащий часть перед первым шаблоном, сам шаблон, и часть после шаблона. Если шаблон не найден, возвращается кортеж, содержащий саму строку, а затем две пустых строки |
S.rpartition(sep) | Возвращает кортеж, содержащий часть перед последним шаблоном, сам шаблон, и часть после шаблона. Если шаблон не найден, возвращается кортеж, содержащий две пустых строки, а затем саму строку |
S.swapcase() | Переводит символы нижнего регистра в верхний, а верхнего – в нижний |
S.title() | Первую букву каждого слова переводит в верхний регистр, а все остальные в нижний |
S.zfill(width) | Делает длину строки не меньшей width, по необходимости заполняя первые символы нулями |
S.ljust(width, fillchar=» «) | Делает длину строки не меньшей width, по необходимости заполняя последние символы символом fillchar |
S.rjust(width, fillchar=» «) | Делает длину строки не меньшей width, по необходимости заполняя первые символы символом fillchar |
S.format(*args, **kwargs) | Форматирование строки |
pythonworld.ru
Обработка строк в Python
В Python существуют несколько видов данных. Основные типы данных, с которыми вы столкнетесь – это string, ingteger, float, list, dict и tuple. В данной статье мы рассмотрим тип данных string (строка). Вы удивитесь тому, сколько всего можно делать со строками в Python. Также существует модуль string, который можно импортировать для получения доступа к еще большим возможностям, но мы рассмотрим его в другой статье. Вместо этого, мы пройдемся по следующим разделам:
- Как создавать строки
- Конкатенация строк
- Методы строк
- Замена строк
Как создать строку
Строки всегда создаются одним из трех способов. Вы можете использовать одинарные, двойные и тройные скобки. Давайте посмотрим
my_string = «Добро пожаловать в Python!» another_string = ‘Я новый текст тут…’ a_long_string = »’А это у нас новая строка в троичных скобках»’
my_string = «Добро пожаловать в Python!» another_string = ‘Я новый текст тут…’
a_long_string = »’А это у нас новая строка в троичных скобках»’ |
Строка с тремя скобками может быть создана с использованием трех одинарных скобок или трех двойных скобок. Так или иначе, с их помощью программист может писать строки в нескольких линиях. Если вы впишете это, вы увидите, что выдача сохраняет разрыв строк. Если вам нужно использовать одинарные скобки в вашей строке, то впишите двойные скобки. Давайте посмотрим на пример:
my_string = «I’m a Python programmer!» otherString = ‘Слово «Python» обычно подразумевает змею’ tripleString = «»»В такой «строке» мы можем ‘использовать’ все.»»»
my_string = «I’m a Python programmer!» otherString = ‘Слово «Python» обычно подразумевает змею’ tripleString = «»»В такой «строке» мы можем ‘использовать’ все.»»» |
Данный код демонстрирует то, как вы можете вписать одинарные или двойные скобки в строку. Существует еще один способ создания строки, при помощи метода str. Как это работает:
my_number = 123 my_string = str(my_number)
my_number = 123 my_string = str(my_number) |
Если вы впишете данный код в ваш интерпретатор, вы увидите, что вы изменили значение интегратора на строку и присвоили ее переменной my_string. Это называется
int(‘ABC’) Traceback (most recent call last): File «<string>», line 1, in <fragment> ValueError: invalid literal for int() with base 10: ‘ABC’
int(‘ABC’)
Traceback (most recent call last): File «<string>», line 1, in <fragment> ValueError: invalid literal for int() with base 10: ‘ABC’ |
Мы рассмотрели обработку исключений в другой статье, но как вы могли догадаться из сообщения, это значит, что вы не можете конвертировать сроки в цифры. Тем не менее, если вы вписали:
То все должно работать. Обратите внимание на то, что строка – это один из неизменных типов Python. Это значит, что вы не можете менять содержимое строки после ее создания. Давайте попробуем сделать это и посмотрим, что получится:
my_string = «abc» my_string[0] = «d» Traceback (most recent call last): File «<string>», line 1, in <fragment> TypeError: ‘str’ object does not support item assignment
my_string = «abc» my_string[0] = «d»
Traceback (most recent call last): File «<string>», line 1, in <fragment> TypeError: ‘str’ object does not support item assignment |
Здесь мы пытаемся изменить первую букву с «а» на «d«, в итоге это привело к ошибке TypeError, которая не дает нам сделать это. Теперь вы можете подумать, что присвоение новой строке то же значение и есть изменение строки. Давайте взглянем, правда ли это:
my_string = «abc» a = id(my_string) print(a) # 19397208 my_string = «def» b = id(my_string) print(b) # 25558288 my_string = my_string + «ghi» c = id(my_string) print(c) # 31345312
my_string = «abc» a = id(my_string) print(a) # 19397208
my_string = «def» b = id(my_string) print(b) # 25558288
my_string = my_string + «ghi» c = id(my_string) print(c) # 31345312 |
Проверив id объекта, мы можем определить, что когда мы присваиваем новое значение переменной, то это меняет тождество. Обратите внимание, что в версии Python, начиная с 2.0, строки могут содержать только символы ASCII. Если вам нужен
# -*- coding: utf-8 -*- my_unicode_string = u»Это юникод!»
# -*- coding: utf-8 -*- my_unicode_string = u»Это юникод!» |
В Python, начиная с версии 3, все строки являются юникодом.
Мы собрали ТОП Книг для Python программиста которые помогут быстро изучить язык программирования Python. Список книг: Книги по PythonКонкатенация строк
Конкатенация – это важный момент, это означает соединение или добавление двух объектов вместе. В нашем случае, нам нужно узнать, как добавить две строки вместе. Как вы можете догадаться, в Python эта операция очень простая:
# -*- coding: utf-8 -*- string_one = «Собака съела » string_two = «мою книгу!» string_three = string_one + string_two print(string_three) # Собака съела мою книгу!
# -*- coding: utf-8 -*-
string_one = «Собака съела « string_two = «мою книгу!» string_three = string_one + string_two
print(string_three) # Собака съела мою книгу! |
Оператор + конкатенирует две строки в одну
Методы строк
Строка является объектом в Python. Фактически, все, что есть в Python – является объектом. Если вы хотите узнать больше об Объектно-ориентированном программирование, мы рассмотрим это в другой статье «Классы в Python«. В данный момент достаточно знать, что строки содержат собственные встроенные методы. Например, допустим, у вас есть следующая строка:
my_string = «This is a string!»
my_string = «This is a string!» |
Теперь вам нужно сделать так, чтобы вся эта строка была в верхнем регистре. Чтобы сделать это, все, что вам нужно, это вызвать метод upper(), вот так:
Если вы открыли ваш интерпретатор, вы также можете сделать то же самое:
«This is a string!».upper()
«This is a string!».upper() |
Существует великое множество других методов строк. Например, если вам нужно, что бы все было в нижнем регистре, вам нужно использовать метод lower(). Если вы хотите удалить все начальные и конечные пробелы, вам понадобится метод strip(). Для получения списка всех методов строк, впишите следующую команду в ваш интерпретатор:
Вы увидите что-то на подобие этого:
[‘__add__’, ‘__class__’, ‘__contains__’, ‘__delattr__’, ‘__doc__’, ‘__eq__’, ‘__format__’, ‘__ge__’, ‘__getattribute__’, ‘__getitem__’, ‘__getnewargs__’, ‘__getslice__’, ‘__gt__’, ‘__hash__’, ‘__init__’, ‘__le__’, ‘__len__’, ‘__lt__’, ‘__mod__’, ‘__mul__’, ‘__ne__’, ‘__new__’, ‘__reduce__’, ‘__reduce_ex__’, ‘__repr__’, ‘__rmod__’, ‘__rmul__’, ‘__- setattr__’, ‘__sizeof__’, ‘__str__’, ‘__subclasshook__’, ‘_formatter_field_name_split’, ‘_formatter_parser’, ‘capitalize’, ‘center’, ‘count’, ‘decode’, ‘encode’, ‘endswith’, ‘expandtabs’, ‘find’, ‘format’, ‘index’, ‘isalnum’, ‘isalpha’, ‘isdigit’, ‘islower’, ‘isspace’, ‘istitle’, ‘isupper’, ‘join’, ‘ljust’, ‘lower’, ‘lstrip’, ‘partition’, ‘replace’, ‘rfind’, ‘rindex’, ‘rjust’, ‘rpartition’, ‘rsplit’, ‘rstrip’, ‘split’, ‘splitlines’, ‘startswith’, ‘strip’, ‘swapcase’, ‘title’, ‘translate’, ‘upper’, ‘zfill’]
[‘__add__’, ‘__class__’, ‘__contains__’, ‘__delattr__’, ‘__doc__’, ‘__eq__’, ‘__format__’, ‘__ge__’, ‘__getattribute__’, ‘__getitem__’, ‘__getnewargs__’, ‘__getslice__’, ‘__gt__’, ‘__hash__’, ‘__init__’, ‘__le__’, ‘__len__’, ‘__lt__’, ‘__mod__’, ‘__mul__’, ‘__ne__’, ‘__new__’, ‘__reduce__’, ‘__reduce_ex__’, ‘__repr__’, ‘__rmod__’, ‘__rmul__’, ‘__- setattr__’, ‘__sizeof__’, ‘__str__’, ‘__subclasshook__’, ‘_formatter_field_name_split’, ‘_formatter_parser’, ‘capitalize’, ‘center’, ‘count’, ‘decode’, ‘encode’, ‘endswith’, ‘expandtabs’, ‘find’, ‘format’, ‘index’, ‘isalnum’, ‘isalpha’, ‘isdigit’, ‘islower’, ‘isspace’, ‘istitle’, ‘isupper’, ‘join’, ‘ljust’, ‘lower’, ‘lstrip’, ‘partition’, ‘replace’, ‘rfind’, ‘rindex’, ‘rjust’, ‘rpartition’, ‘rsplit’, ‘rstrip’, ‘split’, ‘splitlines’, ‘startswith’, ‘strip’, ‘swapcase’, ‘title’, ‘translate’, ‘upper’, ‘zfill’] |
Вы можете спокойно игнорировать методы, которые начинаются и заканчиваются двойным подчеркиванием, например __add__. Они не используются в ежедневном программировании в Python. Лучше обратите внимание на другие. Если вы хотите узнать, что делает тот или иной метод, просто обратитесь к справке. Например, если вы хотите узнать, зачем вам capitalize, впишите следующее, чтобы узнать:
help(my_string.capitalize)
help(my_string.capitalize) |
Вы получите следующую информацию:
Help on built-in function capitalize: capitalize(…) S.capitalize() -> string Выдача копии строки S только с заглавной буквой.
Help on built-in function capitalize:
capitalize(…) S.capitalize() -> string
Выдача копии строки S только с заглавной буквой. |
Вы только что узнали кое-что о разделе, под названием интроспекция. Python может исследовать все свои объекты, что делает его очень легким в использовании. В основном, интроспекция позволяет вам спрашивать Python о нём. Вам моет быть интересно, как сказать о том, какой тип переменной был использован (другими словами int или string). Вы можете спросить об этом у Python!
type(my_string) # <type ‘str’>
type(my_string) # <type ‘str’> |
Как вы видите, тип переменной my_string является str!
Нарезка строк
Одной из тем, которую вы часто будете делать на практике, является нарезка строк. Помню, меня удивило то, как часто мне нужно было узнать, как это делается в повседневной работе. Давайте посмотрим, как нарезка сработает в следующей строке:
my_string = «I like Python!»
my_string = «I like Python!» |
Каждый символ в строке может стать доступным при помощи слайсинга (нарезки). Например, если вам нужно взять только первый символ, вы можете сделать это следующим образом:
print( my_string[0:1] ) # I
print( my_string[0:1] ) # I |
Таким образом, мы берем первый символ в строке до второго символа, но, не включая его. Да, в Python отсчет ведется с нуля. Это проще понять, если мы определим позицию каждого символа в таблице:
0 1 2 3 4 5 6 7 8 9 10 11 12 13 — I l i k e P y t h o n !
0 1 2 3 4 5 6 7 8 9 10 11 12 13 — I l i k e P y t h o n ! |
Таким образом, у нас есть строка длиной в 14 символов, начиная с нуля и до тринадцати. Давайте приведем несколько примеров, чтобы понять это лучше.
my_string[:1] # ‘I’ my_string[0:12] # ‘I like Pytho’ my_string[0:13] # ‘I like Python’ my_string[0:14] # ‘I like Python!’ my_string[0:-5] # ‘I like Py’ my_string[:] # ‘I like Python!’ my_string[2:] # ‘like Python!’
my_string[:1] # ‘I’ my_string[0:12] # ‘I like Pytho’ my_string[0:13] # ‘I like Python’ my_string[0:14] # ‘I like Python!’ my_string[0:-5] # ‘I like Py’ my_string[:] # ‘I like Python!’ my_string[2:] # ‘like Python!’ |
Как видно в данных примерах, мы можем назначить срез, лишь указав его начало (другими словами, my_string[2:]), конец среза (my_string[:1]), или оба (my_string[0:13]). Мы можем даже использовать отрицательные значения, которые начинаются с конца строки. Так что в примере, где мы указали my_string[0:-5], начало ведется с нуля и заканчивается 5 символами, перед концом строки. Вы можете задаться вопросом «Зачем мне это и где это можно применить?». Лично я использовал это для разбора записей с фиксированной шириной в файлах, или ситуативно для парсинга сложных названий файлов, с очень специфическими наименованиями. Также я использовал это для парсинга значений в бинарных файлах. Любая работа, которая включает в себя обработку текстовых файлов, может быть намного проще, если вы понимаете, как работает нарезка и как эффективно использовать данный инструмент. Вы также можете получить доступ к отдельным символам в строке с помощью индексации. Например:
Данный код выдаст первый символ в строке.
Форматирование строк
Форматирование строк (также известно как замещение) – это замещение значений в базовой строке. Большую часть времени вы будете вставлять строки внутри строк, однако, вам также понадобиться вставлять целые числа и числа с запятыми в строки весьма часто. Существует два способа достичь этой цели. Начнем с старого способа, после чего перейдем к новому:
# -*- coding: utf-8 -*- my_string = «Я люблю %s» % «Python» print(my_string) # Я люблю Python var = «яблоки» newString = «Я ем %s» % var print(newString) # Я ем яблоки another_string = «Я люблю %s и %s» % («Python», var) print(another_string) # Я люблю Python и яблоки
# -*- coding: utf-8 -*-
my_string = «Я люблю %s» % «Python» print(my_string) # Я люблю Python
var = «яблоки» newString = «Я ем %s» % var print(newString) # Я ем яблоки
another_string = «Я люблю %s и %s» % («Python», var) print(another_string) # Я люблю Python и яблоки |
Как вы могли догадаться, % — это очень важная часть вышеописанного кода. Этот символ указывает Python, что вы скоро вставите текст на его место. Если вы будете следовать за строкой со знаком процента и другой строкой или переменной, тогда Python попытается вставить ее в строку. Вы можете вставить несколько строк, добавив несколько знаков процента в свою строку. Это видно в последнем примере. Обратите внимание на то, что когда вы добавляете больше одной строки, вам нужно закрыть эти строки в круглые скобки. Теперь взглянем на то, что случится, если мы вставим недостаточное количество строк:
another_string = «Я люблю %s и %s» % «Python» Traceback (most recent call last): File «<string>», line 1, in <fragment> TypeError: not enough arguments for format string
another_string = «Я люблю %s и %s» % «Python»
Traceback (most recent call last): File «<string>», line 1, in <fragment> TypeError: not enough arguments for format string |
О-па. Мы не передали необходимое количество аргументов для форматирования строки. Если вы внимательно взгляните на пример, вы увидите, что у нас есть два экземпляра %, но для того, чтобы вставить строки, вам нужно передать столько же %, сколько у нас строк. Теперь вы готовы к тому, чтобы узнать больше о вставке целых чисел, и чисел с запятыми. Давайте взглянем.
my_string = «%i + %i = %i» % (1,2,3) print(my_string) # ‘1 + 2 = 3’ float_string = «%f» % (1.23) print(float_string) # ‘1.230000’ float_string2 = «%.2f» % (1.23) print(float_string2) # ‘1.23’ float_string3 = «%.2f» % (1.237) print(float_string3) # ‘1.24’
my_string = «%i + %i = %i» % (1,2,3) print(my_string) # ‘1 + 2 = 3’
float_string = «%f» % (1.23) print(float_string) # ‘1.230000’
float_string2 = «%.2f» % (1.23) print(float_string2) # ‘1.23’
float_string3 = «%.2f» % (1.237) print(float_string3) # ‘1.24’ |
Первый пример достаточно простой. Мы создали строку, которая принимает три аргумента, и мы передаем их. В случае, если вы еще не поняли, Python не делает никаких дополнений в первом примере. Во втором примере, мы передаем число с запятой. Обратите внимание на то, что результат включает множ
python-scripts.com
Введение в функции Python 3 для работы со строками
В Python есть несколько встроенных функций для работы со строками. Встроенные функции — это методы, которые определены в языке программирования.
В этом руководстве мы рассмотрим несколько строковых функций в Python 3.
Функции str.upper() и str.lower() возвращают строку со всеми буквами исходной строки, преобразованными в прописные или строчные буквы. Символы в строке, которые не являются буквами, меняться не будут.
Преобразуем строку Sammy Shark в верхний регистр:
ss = "Sammy Shark" print(ss.upper())
Вывод:
Теперь преобразуем эту же строку в нижний регистр:
Вывод:
строк. Например, если пользователь записывает свое имя в нижнем регистре, мы все равно можем определить, хранится ли логин в базе данных.
В Python есть несколько методов, которые оценивают логический тип значения. Они применяются для валидации полей форм регистрации. Если мы запрашиваем почтовый индекс, то поле должно «принимать» только числовую строку. Но когда пользователь вводит имя, строка должна состоять только из букв.
Существует ряд строковых методов, которые возвращают логические значения:
Метод | True если |
str.isalnum() | Строка состоит только из буквенно-цифровых символов (без специальных символов). |
str.isalpha() | Строка состоит только из буквенных символов (без специальных символов). |
str.islower() | Все буквенные символы строки имеют нижний регистр. |
str.isnumeric() | Строка состоит только из цифровых символов. |
str.isspace() | Строка состоит только из символов пробелов. |
str.istitle() | Строка заглавными буквами. |
str.isupper() | Все буквенные символы строки имеют верхний регистр. |
Рассмотрим несколько методов в действии:
number = "5" letters = "abcdef" print(number.isnumeric()) print(letters.isnumeric()) Вывод: True False
Метод str.isnumeric() возвращает для строки number = «5» значение True, а тот же метод для строки letters = «abcdef» возвращает значение False.
Точно так же мы можем проверить, являются ли буквенные символы строки заглавными, прописными или строчными.
Создадим несколько строк:
movie = "2001: A SAMMY ODYSSEY" book = "A Thousand Splendid Sharks" poem = "sammy lived in a pretty how town"
Теперь применим логические методы, которые проверяют регистр:
print(movie.islower()) print(movie.isupper()) print(book.istitle()) print(book.isupper()) print(poem.istitle()) print(poem.islower())
Выполним код и посмотрим на результат:
Вывод для строки movie:
Вывод для строки book:
Вывод для строки poem:
Проверка регистра строки позволяет правильно отсортировать данные. Логические методы также полезны для валидации полей форм на сайте.
Метод len() возвращает количество символов в строке. Его можно использовать в тех случаях, когда необходимо установить минимальную или максимальную длину пароля. А также, если необходимо усечь длинные строки.
Чтобы продемонстрировать этот метод в действии, найдем длину предложения:
open_source = "Sammy contributes to open source." print(len(open_source))
Вывод:
Мы инициализируем переменную open_source строковым значением «Sammy contributes to open source.». Затем передаем эту переменную в метод len() с помощью len(open_source). После этого используем print() для вывода результата на экран.
Помните, что любой символ, заключенный в одинарные или двойные кавычки, будет учитываться методом len().
Метод str.join() объединяет две строки и разделяет их указанным символом.
Давайте создадим строку:
balloon = "Sammy has a balloon."
Теперь воспользуемся методом str.join(), чтобы добавить пробел к этой строке. Мы можем сделать так:
Если мы выведем это:
то увидим, что в новой возвращаемой строке добавлены пробелы между символами правой части строки.
Вывод:
S a m m y h a s a b a l l o o n .
Мы также можем использовать метод str.join() для возврата строки, которая является перевернутой исходной строкой:
print("".join(reversed(balloon)))
Вывод:
Метод str.join() также полезен для объединения списка строк в новую единственную строку.
Создадим разделенную запятыми строку из списка строк:
print(",".join(["sharks", "crustaceans", "plankton"]))
Вывод:
sharks,crustaceans,plankton
Если нужно добавить запятую и пробел между строковыми значениями в, можно просто переписать выражение с пробелом после запятой: «,
".join(["sharks", "crustaceans", "plankton"]).
Также можно и разбивать строки. Для этого используется метод str.split():
Вывод:
['Sammy', 'has', 'a', 'balloon.']
Метод str.split() возвращает список строк, разделенных пробелами, если никакой другой параметр не задан.
Также можно использовать str.split() для удаления определенных частей строки. Например, давайте удалим из строки букву a:
print(balloon.split("a"))
Вывод:
['S', 'mmy h', 's ', ' b', 'lloon.']
Теперь буква a удалена, и строки разделены там, где она располагалась.
Метод str.replace() применять для замены части строки. Допустим, что шарик, который был у Сэмми, потерян. Поскольку у Сэмми больше нет этого шарика, изменим подстроку «has» на новую строку «had»:
print(balloon.replace("has","had"))
В скобках первая подстрока — это то, что мы хотим заменить, а вторая подстрока — это то, на что мы заменяем первую подстроку.
Вывод:
Методы str.join(), str.split() и str.replace() позволяют более эффективно управлять строками в Python.
В этом руководстве были рассмотрены некоторые встроенные методы, которые можно использовать для работы со строками в Python-программах.
Данная публикация представляет собой перевод статьи «An Introduction to String Functions in Python 3» , подготовленной дружной командой проекта Интернет-технологии.ру
www.internet-technologies.ru
Что такое объекты типа str в Python
Имя str в Python используется для обозначения строк. Это встроенный тип данных, представляющий собой упорядоченные последовательности символов Юникода. Обычно строки содержат текстовую информацию. Они аналогичны массивам языка Си, но обладают рядом мощных средств для обработки.
Литералы строк
Существует несколько способов записи строк. Самыми популярными являются кавычки и апострофы. Они взаимозаменяемы и их использование позволяет исключить символ обратного слеша «\»:
- >>>Пример_1 = «Так записываются строки»
При обработке строк в Python также допускаются тройные кавычки. В них удобно заключать крупные блоки текста. Внутри конструкции могут присутствовать апострофы и обычные кавычки:
- >>>Пример_2 = «««Приблизительный набор слов для «блочной строки» в Питоне»»»
Базовые операции
Строки поддерживают напор стандартных операций для последовательностей. Это конкатенация, индексирование, извлечение среза, вычисление длины и повторение:
- >>>Стр_1 = «FB» #Присваиваем значение
- >>>Стр_1
- «FB»
- >>>Стр_2 = Стр_1 + «.» + «ru» #выполняем конкатенацию
- >>>Стр_2
- «FB.ru»
- >>>Стр_3 = «O» * 3 + «PS!» #повторение и конкатенация
- >>>Стр_3
- «OOOPS!»
- >>>len(Стр_3) #вычисление длины
- 6
Так как в Python str являются неизменяемыми типами, каждая операция создает новый строковый объект.
Индексирование строк
К каждому элементу строки можно обращаться по его позиции или по порядковому номеру. Отсчет начинается не с привычной единицы, а с нуля. Для работы с индексами используются квадратные скобки. Поэтому если вы хотите извлечь второй символ, вам нужно передать интерпретатору команду «имя объекта»[1]:
При извлечении среза номер слева от оператора «:» означает левую границу включительно. Номер справа означает элемент, до которого будет извлечен срез. Важно помнить, что объект, указанный справа от двоеточия, в срез не входит:
Преобразование строк
В языке Python str() может вызываться как встроенная функция. В качестве аргумента она принимает любые объекты и возвращает их строковое представление. Например, если вам нужно выполнить конкатенацию, с обеих сторон знака «+» должны быть данные одного типа. Иначе интерпретатор выдаст сообщение об ошибке:
- >>>5+ «dogs» + «run»
- Traceback (most recent call last): … TypeError
- >>>str(5) + « dogs » + « run.»
- «5 dogs run.»
Вместо str() допускается использование другой функции repr(). Она также выполняет преобразование, но возвращает объект в качестве строчки кода в расширенном варианте.
Для углубленной обработки строк существует мощный набор специфичных для этого типа данных методов. Формально – это атрибуты, присоединенные к объектам, ссылающимся на функции.
Синтаксически конструкция использования строковых методов выглядит следующим образом: «объект.метод(аргумент)».
- >>>l= «ggffkkllrr»
- >>>l.replace(«ff», «gg»)
- «ggggkkllrr»
В примере использовался способ замены элементов .replace(). Этот универсальный метод в качестве аргументов принимает строки любой длины и выполняет глобальный поиск с последующей заменой.
Существуют другие методы и операторы для работы со строками, их форматирования и преобразования. Полный перечень находится в официальном руководстве по языку.
fb.ru
Строки. Функции и методы строк — Документация Python Summary 1
# Литералы строк S = 'str'; S = "str"; S = '''str'''; S = """str""" # Экранированные последовательности S = "s\np\ta\nbbb" # Неформатированные строки (подавляют экранирование) S = r"C:\temp\new" # Строка байтов S = b"byte" # Конкатенация (сложение строк) S1 + S2 # Повторение строки S1 * 3 # Обращение по индексу S[i] # Извлечение среза S[i:j:step] # Длина строки len(S) # Поиск подстроки в строке. Возвращает номер первого вхождения или -1 S.find(str, [start],[end]) # Поиск подстроки в строке. Возвращает номер последнего вхождения или -1 S.rfind(str, [start],[end]) # Поиск подстроки в строке. Возвращает номер первого вхождения или вызывает ValueError S.index(str, [start],[end]) # Поиск подстроки в строке. Возвращает номер последнего вхождения или вызывает ValueError S.rindex(str, [start],[end]) # Замена шаблона S.replace(шаблон, замена) # Разбиение строки по разделителю S.split(символ) # Состоит ли строка из цифр S.isdigit() # Состоит ли строка из букв S.isalpha() # Состоит ли строка из цифр или букв S.isalnum() # Состоит ли строка из символов в нижнем регистре S.islower() # Состоит ли строка из символов в верхнем регистре S.isupper() # Состоит ли строка из неотображаемых символов (пробел, символ перевода страницы ('\f'), "новая строка" ('\n'), "перевод каретки" ('\r'), "горизонтальная табуляция" ('\t') и "вертикальная табуляция" ('\v')) S.isspace() # Начинаются ли слова в строке с заглавной буквы S.istitle() # Преобразование строки к верхнему регистру S.upper() # Преобразование строки к нижнему регистру S.lower() # Начинается ли строка S с шаблона str S.startswith(str) # Заканчивается ли строка S шаблоном str S.endswith(str) # Сборка строки из списка с разделителем S S.join(список) # Символ в его код ASCII ord(символ) # Код ASCII в символ chr(число) # Переводит первый символ строки в верхний регистр, а все остальные в нижний S.capitalize() # Возвращает отцентрованную строку, по краям которой стоит символ fill (пробел по умолчанию) S.center(width, [fill]) # Возвращает количество непересекающихся вхождений подстроки в диапазоне [начало, конец] (0 и длина строки по умолчанию) S.count(str, [start],[end]) # Возвращает копию строки, в которой все символы табуляции заменяются одним или несколькими пробелами, в зависимости от текущего столбца. Если TabSize не указан, размер табуляции полагается равным 8 пробелам S.expandtabs([tabsize]) # Удаление пробельных символов в начале строки S.lstrip([chars]) # Удаление пробельных символов в конце строки S.rstrip([chars]) # Удаление пробельных символов в начале и в конце строки S.strip([chars]) # Возвращает кортеж, содержащий часть перед первым шаблоном, сам шаблон, и часть после шаблона. Если шаблон не найден, возвращается кортеж, содержащий саму строку, а затем две пустых строки S.partition(шаблон) # Возвращает кортеж, содержащий часть перед последним шаблоном, сам шаблон, и часть после шаблона. Если шаблон не найден, возвращается кортеж, содержащий две пустых строки, а затем саму строку S.rpartition(sep) # Переводит символы нижнего регистра в верхний, а верхнего – в нижний S.swapcase() # Первую букву каждого слова переводит в верхний регистр, а все остальные в нижний S.title() # Делает длину строки не меньшей width, по необходимости заполняя первые символы нулями S.zfill(width) # Делает длину строки не меньшей width, по необходимости заполняя последние символы символом fillchar S.ljust(width, fillchar=" ") # Делает длину строки не меньшей width, по необходимости заполняя первые символы символом fillchar S.rjust(width, fillchar=" ")
ps.readthedocs.io
используемые методы, функции и операторы, примеры кода
От автора: в Python все является объектом, и строка тоже. Строка Python может быть создана просто с помощью заключения символов в двойные кавычки.
Например:
В этом руководстве мы узнаем:
Бесплатный курс «Python. Быстрый старт»
Получите курс и узнайте, как создать программу для перевода текстов на Python
Получить курсКак получать доступ к значениям в строках
О различных строковых операторах
Еще несколько примеров
О методе Python String replace()
Как приводить строки к верхнему и нижнему регистру
Об использование для строки функцию «join»
О реверсе строк
О разделении строк
Доступ к значениям в строках
Python не поддерживает тип символов, они обрабатываются как одна строка, а также рассматриваются как подстроки. Мы используем для разбивки квадратные скобки вместе с индексом или индексами, чтобы получить подстроки.
var1 = «Guru99!» var2 = «Software Testing» print («var1[0]:»,var1[0]) print («var2[1:5]:»,var2[1:5])
var1 = «Guru99!» var2 = «Software Testing» print («var1[0]:»,var1[0]) print («var2[1:5]:»,var2[1:5]) |
Различные строковые операторы
Существуют различные строковые операторы, которые можно использовать по-разному, например, объединять строки. Предположим, что если a=guru, а b=99, то a+b= «guru99″. Точно так же, если вы используете *2, это будет «GuruGuru». Также вы можете использовать другие операторы.
Оператор []. Описание: Фрагмент — дает символ с данным индексом. Пример: a[1] дает «u» из слова Guru, так как (0=G, 1=u, 2=r и 3=u).
Оператор [:]. Описание: Диапазон фрагментов — дает символы из заданного диапазона. Пример: x[1:3] даем «ur» из слова гуру Guru. Помните, что это не учитывать 0, который является G, это будет учитывать буквы после него.
Оператор in. Описание: Содержит — возвращает true, если в заданной строке есть буква. Пример: u присутствует в слове Guru и, следовательно, это даст 1 (true).
Оператор not in. Описание: Не содержит -возвращает true, если буква не существует в данной строке. Пример: l не присутствует в слове Guru и, следовательно, это даст 1.
x=»Guru» print «l» not in x
x=»Guru» print «l» not in x |
Оператор r/R. Описание: Необработанная строка подавляет фактическое значение escape-символов. Пример: Напечатайте r’\n’ печатает \n и напечатайте R’\n’ печатает \n.
Оператор % — используется для формата строк. Описание: %r — вставляет каноническое строковое представление объекта (т. е. repr(o)), %s — вставляет строковое представление объекта (т. е. str(o)), %d — форматирует число для отображения. Пример: Вывод этого кода будет «guru 99″.
name = ‘guru’ number = 99 print’%s %d’ % (name,number)
name = ‘guru’ number = 99 print’%s %d’ % (name,number) |
Оператор +. Описание: Объединение 2 строк. Пример: Объединяет строки и дает результат.
x=»Guru» y=»99″ print x+y
x=»Guru» y=»99″ print x+y |
Оператор *. Описание: Повторение. Пример: Выводит символ дважды.
x=»Guru» y=»99″ print x*2
x=»Guru» y=»99″ print x*2 |
Еще несколько примеров
Вы можете обновить строку Python, переназначив переменную другой строке. Новое значение может быть связано с предыдущим значением или с совершенно другой строкой.
x = «Hello World!» print(x[:6]) print(x[0:6] + «Guru99»)
x = «Hello World!» print(x[:6]) print(x[0:6] + «Guru99») |
Примечание: — Slice:6 или 0:6 дает тот же результат.
Метод строк Python replace()
Метод replace() возвращает копию строки, в которой значения старой строки были заменены новым значением.
oldstring = ‘I like Guru99’ newstring = oldstring.replace(‘like’, ‘love’) print(newstring)
oldstring = ‘I like Guru99’ newstring = oldstring.replace(‘like’, ‘love’) print(newstring) |
Бесплатный курс «Python. Быстрый старт»
Получите курс и узнайте, как создать программу для перевода текстов на Python
Получить курсИзменение верхнего и нижнего регистра строк
В Python вы можете даже привести строку к верхнему или нижнему регистру.
string=»python at guru99″ print(string.upper())
string=»python at guru99″ print(string.upper()) |
Кроме того, вы также можете использовать другую функцию, такую как capitalize:
string=»python at guru99″ print(string.capitalize())
string=»python at guru99″ print(string.capitalize()) |
Вы также можете преобразовать строку в нижний регистр:
string=»PYTHON AT GURU99″ print(string.lower())
string=»PYTHON AT GURU99″ print(string.lower()) |
Использование для строки функции «join»
Функция join является более гибким способом объединения строк. С помощью функции join вы можете добавить в строку любой символ.
Например, если вы хотите добавить двоеточие (:) после каждого символа в строке «Python», вы можете использовать следующий код.
print(«:».join(«Python»))
print(«:».join(«Python»)) |
Реверс строк
Используя функцию реверса, вы можете перевернуть строку. Например, если у нас есть строка «12345», а затем, если вы применяете код для обратной функции, как показано ниже.
string=»12345″ print(».join(reversed(string)))
string=»12345″ print(».join(reversed(string))) |
Разделение строк
Разделение строк — это еще одна функция, которая может применяться в Python, давайте посмотрим на строку «guru99 career guru99″. Сначала мы разделим строку с помощью команды word.split и получим результат.
word=»guru99 career guru99″ print(word.split(‘ ‘))
word=»guru99 career guru99″ print(word.split(‘ ‘)) |
Чтобы лучше это понять, мы рассмотрим еще один пример разделения, вместо пробела (») мы используем (‘r’), и это будет разбивать строку везде, где в строке встречается ‘r’:
word=»guru99 career guru99″ print(word.split(‘r’))
word=»guru99 career guru99″ print(word.split(‘r’)) |
Важное примечание: В Python строки являются неизменяемыми. Рассмотрим следующий код:
x = «Guru99″ x.replace(«Guru99″,»Python») print(x)
x = «Guru99» x.replace(«Guru99″,»Python») print(x) |
все равно возвращает Guru99. Это связано с тем, что x.replace («Guru99″, «Python») возвращает копию X с выполненными заменами. Вам нужно будет использовать следующий код, чтобы увидеть изменения:
x = «Guru99″ x = x.replace(«Guru99″,»Python») print(x)
x = «Guru99» x = x.replace(«Guru99″,»Python») print(x) |
Приведенные выше коды являются примерами Python 3. Если вы хотите запустить Python 2, рассмотрите следующий код.
#Accessing Values in Strings var1 = «Guru99!» var2 = «Software Testing» print «var1[0]:»,var1[0] print «var2[1:5]:»,var2[1:5] #Some more examples x = «Hello World!» print x[:6] print x[0:6] + «Guru99″ #Python String replace() Method oldstring = ‘I like Guru99’ newstring = oldstring.replace(‘like’, ‘love’) print newstring #Changing upper and lower case strings string=»python at guru99″ print string.upper() string=»python at guru99″ print string.capitalize() string=»PYTHON AT GURU99″ print string.lower() #Using «join» function for the string print»:».join(«Python») #Reversing String string=»12345″ print».join(reversed(string)) #Split Strings word=»guru99 career guru99″ print word.split(‘ ‘) word=»guru99 career guru99″ print word.split(‘r’) x = «Guru99″ x.replace(«Guru99″,»Python») print x x = «Guru99″ x = x.replace(«Guru99″,»Python») print x
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | #Accessing Values in Strings var1 = «Guru99!» var2 = «Software Testing» print «var1[0]:»,var1[0] print «var2[1:5]:»,var2[1:5] #Some more examples x = «Hello World!» print x[:6] print x[0:6] + «Guru99» #Python String replace() Method oldstring = ‘I like Guru99’ newstring = oldstring.replace(‘like’, ‘love’) print newstring #Changing upper and lower case strings string=»python at guru99″ print string.upper() string=»python at guru99″ print string.capitalize() string=»PYTHON AT GURU99″ print string.lower() #Using «join» function for the string print»:».join(«Python») #Reversing String string=»12345″ print».join(reversed(string)) #Split Strings word=»guru99 career guru99″ print word.split(‘ ‘) word=»guru99 career guru99″ print word.split(‘r’) x = «Guru99» x.replace(«Guru99″,»Python») print x x = «Guru99» x = x.replace(«Guru99″,»Python») print x |
В Python появилась функция .format, которая позволяет использовать %d и т. д. для форматирования строк.
Заключение
Поскольку Python является объектно-ориентированным языком программирования, многие функции могут быть применены к объектам Python. Примечательной особенностью Python являются отступы исходных операторов, облегчающие чтение кода.
Доступ к значениям через разделение — квадратные скобки используются для нарезки вместе с индексом или индексами для получения подстроки.
В нарезке, если диапазон объявлен [1: 5], он может фактически извлечь значение из диапазона [1: 4]
Вы можете обновить строку Python, переназначив переменную другой строке
Метод replace() возвращает копию строки, в которой вхождение старых символов заменяется новыми.
Синтаксис для метода replace: oldstring.replace(«значение, на которое заменяем», «значение, которое заменяем»)
Строковые операторы, такие как [], [:], in, Not in и т. д., могут применяться для конкатенации строки, извлечения или вставки определенных символов в строку или для проверки того, существует ли определенный символ в строке
Другие строковые операции включают:
Изменение верхнего и нижнего регистра
Функция Join, чтобы добавить любой символ в строку
Реверс строк
Разделение строк
Источник: https://www.guru99.com
Редакция: Команда webformyself.
Бесплатный курс «Python. Быстрый старт»
Получите курс и узнайте, как создать программу для перевода текстов на Python
Получить курсwebformyself.com
Работа со строками в Python
В этой статье, мы познакомимся с базовыми основами работы со строками в Python. Строка (string) содержит в себе набор символов в кодировке ASCII и относится к неизменяемому типу данных.
Создание строки в Python
Для создания строки в Python существует три способа.
1) В одинарных кавычках (апострофы)
'одинарные кавычки в строке'
2) В двойных кавычках
"двойные кавычки в строке"
3) В тройных одинарных или двойных кавычках
'''строка_1
строка_2
строка_3'''
'строка_1\nстрока_2\nстрока_23\n' // после нажатия ENTER
print(‘строка_1\nстрока_2\nстрока_23\n’)
// выведет на экране
строка_1
строка_2
строка_3
Последний способ применяется для создания многострочной строки. Когда часть строки нужно перенести на новую строку. Внутри программы на месте переноса строк, Python добавляет символ \n. При выводе на экран многострочной строки, в параметрах print(‘строка_1\nстрока_2\nстрока_23\n’), передается вся эта конструкция.
Нельзя смешивать разновидности кавычек в одной строке, если открыли строку двойной кавычкой, то и закройте строку так же двойной кавычкой.
Обычно строки помещают в переменные, используя оператор присваивания.
new_str = 'переменной присвоили строку'
В Python допускается создание пустой строки.
empty = ''
Конкатенация строк в Python
Операция конкатенация (concatenate) объединяет несколько строк в одну.
a = 'con'
b = 'cat'
c = 'enate'
a + b + c
'concatenate'
Если надо объединить строки с пробелами, то добавляем пробел в кавычках:
d = 'конкатенация'
f = 'строк'
d + ' ' + f
'конкатенация строк'
Как преобразовать число в строку
Попытка склейки разного типа данных, например строки и целого числа, приведет к ошибке. Поэтому, для начала нужно преобразовать число в строку — поставить перед числом оператор str.
'строка' + 10 // неправильно
'строка' + str(10) // правильно
'строка10' // результат
Повторение строки в Python
Как быстро выполнить операцию повторения строки? Очень просто — умножить строку на число повторений.
multi = 'ой-'
print(multi*3)
ой-ой-ой
Длина строки в Python
Операция по вычислению длины строки, довольно часто применяется в программировании. Название функции len — сокращенное от анг. слова length (длина). Функция len() вычисляет количество символов в строке вместе с пробелами. Буквы, знаки пунктуации, пробелы в строке — все это символы.
>>> d_str = 'Длина строки'
>>> len(d_str)
12 // результат
Поиск подстроки в строке в Python
С помощью команды in, можно проверить содержится ли подстрока (символ/ы) в строке, ответом будет истина / ложь.
>>> sub_str = 'поиск подстроки'
>>> 'к' in sub_str
True>>> s = 'найти подстроку'
>>> 'ю' in s
False
Сравнение строк в Python
К строкам в Python, также можно применять математические операторы сравнения (больше, меньше, равно), однако сравниваются они совсем по другим принципам, нежели числа. Машина сравнивает строки по кодовым значениям символов.
Утверждение, что:
'xy' > 'abc'
True // верно
Здесь у вас наверняка возник вопрос: «Ведь буква «a» стоит выше по алфавиту, чем «x»? В чем подвох? Выведем кодировку первых символов у двух строк. Число 120 явно больше, чем 97.
>>> ord('x')
120
>>> ord('a')
97
Строка из заглавных букв, всегда будет меньше строки из маленьких букв. Поскольку кодовые значения больших букв меньше, чем у маленьких.
Заключение
Я слышал не один раз от разных людей, что программирование они начинали изучать с JavaScript или PHP и не сильно в этом преуспели. И сразу после первой неудачной попытки, поставили крест на программировании, посчитали, что нет у них способностей к этому. Позже, они признались, что непонятные вещи в JavaScript / PHP, стали понятными в процессе изучения Python.
Почему так произошло? Я объясняю этот феномен, более простым синтаксисом в Python. Новичок мог позволить себе больше концентрироваться на логике, засчет легкого восприятия синтаксиса. Вот и весь секрет успеха! Не сдавайтесь так просто, попробуйте мой видеокурс по Python, на простом языке и с упражнениями к урокам!
- Создано 28.10.2019 10:23:57
- Михаил Русаков
Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!
Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.
Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления
Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.
Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):
myrusakov.ru