Строки - один из основных типов данных в 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()
Метод вставляет запятую между каждым словом в массиве.
В 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