Строки Python - Обзор основных операций со строками

Строки - один из основных типов данных в Python. Строки Python представляют собой комбинацию любого количества символов, состоящих из букв, цифр и других специальных символов. В этом руководстве вы узнаете, как создавать, изменять и форматировать их для использования в различных сценариях.



Создание новых строк в Python

Чтобы создать новую строку Python, вам просто нужно объявить последовательность символов, заключенную в одинарные или двойные кавычки. Тройные кавычки также используются для строк, состоящих из нескольких строк.

double_quotes = 'My name is John!' single_quotes = 'My name is John!' multi_line_string = '''1. My name is John!



2. I am a programmer'''


Индексирование строк

Каждый символ в строке Python имеет целочисленный индекс. Индексирование начинается с 0 первого символа и увеличивается по строке. Вы можете использовать индекс отдельного символа для извлечения этого символа из строки, как показано в следующем примере.


myPet = 'Dog not a cat' myPet[0] # 'D' myPet[5] # 'o' myPet[7] # ' ' myPet[12] # 't' # myPet[15] # IndexError

Попытка получить доступ к символу за пределами индекса последнего символа приводит к IndexError .

Вы можете получить доступ к символу в строке, используя отрицательный индекс. В этом случае индексация начинается с -1 в последнем символе строки и отрицательно увеличивается при движении назад.


myPet = 'Dog not a cat' myPet[-1] # 't' myPet[-6] # ' ' myPet[-8] # 'o' myPet[-13] # 'D'

Нарезка строки

Нарезка - это метод извлечения подстроки (части строки) из строки. Эта задача достигается с помощью индексации строк.

myPet = 'Dog not a cat' myPet[5:7] # 'ot' myPet[1:12] # 'og not a ca'

Здесь представлены два индекса, разделенных двоеточием, первый индекс указывает, где начать нарезку, а второй индекс указывает, где остановиться. Результирующая подстрока включает символы от начального индекса до символа перед конечным индексом, символ в конечном индексе не включается в подстроку.

Если вы не укажете начальный индекс, нарезка начнется с первого символа строки. Если вы не укажете конечный индекс, нарезка заканчивается на последнем символе, включая его в результирующую подстроку.

myPet = 'Dog not a cat' myPet[:7] # 'Dog not' myPet[10:] # 'cat' myPet[:] # 'Dog not a cat'

Вы также можете указать отрицательные индексы в качестве индексов среза.


myPet = 'Dog not a cat' myPet[10:-1] # 'ca'

Длина строки

Встроенный метод Python len() выводит длину строки.

myPet = 'Dog not a cat' len(myPet) # 13

Итерировать по строке

Вы можете перебирать каждый символ в строке, используя for петля.

Пример:

name = 'John' for char in name:
print(char) # 'J', 'o', 'h', 'n'


Конкатенация строк

Конкатенация строк - это объединение двух или более строк для создания одной строки. В Python есть несколько методов объединения строк.


Один из них использует + оператор.

str1 = 'Hello' str2 = 'World' concat_str = str1 + str2 # 'HelloWorld' concat_str = str1 + ' ' + str2 # 'Hello World'

Вы можете использовать * оператор для присоединения строки к самой себе любое количество раз.

concat_str = str1*3 # 'HelloHelloHello'

Другой способ объединения строк - использование join() метод.

Встроенный join() используется для объединения массива строк с использованием общего разделителя.


arr = [str1, str2] concat_str = (' ').join(arr) # 'Hello World' concat_str = (',').join(arr) # 'Hello,World'

В приведенном выше коде первый join() добавляет пробел между каждым словом в массиве.

Второй join() Метод вставляет запятую между каждым словом в массиве.



Конкатенация строк и int

В Python мы также можем объединить строку с целым числом, но не с + оператор. Если мы попытаемся использовать следующий код:

name = 'John' age = 35 print(a + b)

Получим:


Traceback (most recent call last): File 'concat.py', line 5, in
print(a + b) TypeError: can only concatenate str (not 'int') to str
Примечание:Вы не можете объединить строку и целое число с помощью + оператор.

Чтобы избежать этой ошибки, мы можем использовать str() метод преобразования целого числа в строку, например:

name = 'John ' age = '35' print(a + str(b)) #John 35

Как разбить строку

Встроенный split() используется для разделения одной строки на массив строк.

string = 'My name is John' split_arr = string.split(' ') # ['My', 'name', 'is', 'John'] We can also split a string using a separator: string = 'John, Rose, Jack, Mary' split_arr = string.split(', ') # ['John', 'Rose', 'Jack', 'Mary']

Полоса - удаление пустых пространств

strip(), встроенный строковый метод используется для удаления пробелов в начале и в конце строки.

string = ' Hello, World ' stripper_str = string.strip() # 'Hello, World'

Как видите, strip() не удаляет пробелы между другими символами, а только с двух сторон.

Есть два варианта strip() метод, левая полоса и правая полоса:

  • lstrip()
  • rstrip()

Эти методы удаляют пробелы слева и справа от строки соответственно.

Пример:

lsplit_str = string.lstrip() # 'Hello, World ' rsplit_str = string.rstrip() # ' Hello, World'

Методы полосы особенно полезны при чтении вводимых пользователем данных, когда пользователи могут пропускать лишние пробелы.



Форматирование строки

Python format() используется для форматирования строки. Фигурные скобки {} используются внутри строки, которую необходимо отформатировать в качестве заполнителя для части, которую необходимо заменить аргументами, предоставленными для format() метод.

Пример:

'Hello, {}'.format('John') # 'Hello, John'

В приведенном выше примере {} заменяется на «Джон» в форматированной строке.

Внутри строки для форматирования можно использовать несколько фигурных скобок. Они заменяются аргументами, предоставленными format() метод либо в указанном порядке (если в фигурных скобках не указаны позиционные индексы), либо в позиционном порядке.

Пример:

'I have a {}, {}, and a {}'.format('dog', 'cat', 'rabbit') # 'I have a dog, cat, and a rabbit' 'I have a {1}, {0}, and a {2}'.format('dog', 'cat', 'rabbit') # 'I have a cat, dog, and a rabbit'

Вместо использования индексов вы можете предоставить аргументы ключевого слова для format() , чтобы эти ключевые слова можно было использовать в фигурных скобках.

Пример:

print('{friend} is my friend and {enemy} is my enemy'.format(friend='John', enemy='Jack')) # 'John is my friend and Jack is my enemy'

format() метод довольно универсален, так как его можно использовать во многих случаях использования.

Вот еще несколько вариантов применения format() метод:

arr = [3, 5] 'I have {0[0]} dogs and {0[1]} cats'.format(arr) # 'I have 3 dogs and 4 cats' #convert numbers to different bases 'int: {0:d}; hex: {0:x}; oct: {0:o}; bin: {0:b}'.format(42) # 'int: 42; hex: 2a; oct: 52; bin: 101010'

Преобразование строки в нижний регистр

Используя Python lower() , вы можете преобразовать строку в нижний регистр.

Пример:

string = 'Hello, World!' string.lower() # 'hello, world!'

Преобразование строки в верхний регистр

Аналогичным образом, используя Python upper() , вы можете преобразовать строку в верхний регистр.

Пример:

string = 'Hello, World!' string.upper() # 'HELLO, WORLD!'

Заключение

Я надеюсь, что с помощью этого руководства вы теперь знакомы со строками Python и с тем, как использовать различные методы для строковых операций.

Справка: Строковая документация Python