SharedType_data / string.ipynbOpen in CoCalc
String

Создание:

s1 = 'iu6'
s2 = '3kurs'
print(s1 + s2) # конкатенация строк
print(type(s1 + s2))
iu63kurs <class 'str'>
print(s1 * 3) # повторение строки
iu6iu6iu6
len(s2) # длина строки
5

Доступ к элементам по индексу:

s = 'Hello, world!'
print(s[0])
print(s[2])
print(s[-2])
H l d

Получение среза строк [X:Y:Z]. X – начало среза, Y – окончание, Z - шаг

print(s[:])
Hello, world!
print(s[4:9])
o, wo
print(s[1:-1])
ello, world
print(s[1:-1:2])
el,wrd

Строки - неизменяемые данные, можно создать только новую строку.

s[1] = 'b'
--------------------------------------------------------------------------- TypeError Traceback (most recent call last) <ipython-input-12-1cef18e02cb0> in <module>() ----> 1 s[1] = 'b' TypeError: 'str' object does not support item assignment
s = s[0] + 'b' + s[2:]
print(s)
Hbllo, world!

Функции и методы для строк:

str1.find(str2, [start],[end]) Поиск подстроки str2 в строке str1. start, end - начало и конец поиска в строке str1. Возвращает номер первого вхождения или -1

s.find('bllo', 1,10)
1
s.find('bllo', 1, 4)
-1
s.find('bllo')
1

str1.rfind(str2, [start],[end]) Поиск подстроки str2 в строке str1. start, end - начало и конец поиска в строке str1. Возвращает номер последнего вхождения или -1

s.rfind('bllo')
1
print(s)
Hello, world!
s.find('l')
2
s.rfind('l')
10

str1.replace(шаблон, замена) Замена шаблона, заменой

s.replace('l','ui')
'Hbuiuio, woruid!'
s.replace('ui','l')
'Hbllo, world!'
s = s.replace('b','e')
print(s)
Hello, world!

s.split(разделитель) Разбиение строки по разделителю

mas_s = s.split('l')
print(mas_s)
print(type(mas_s))
['He', '', 'o, wor', 'd!'] <class 'list'>
mas_s = s.split('l')
print(mas_s)
print(type(mas_s))
['He', '', 'o, wor', 'd!'] <class 'list'>
mas_s = s.split('l','o')
print(mas_s)
print(type(mas_s))
--------------------------------------------------------------------------- TypeError Traceback (most recent call last) <ipython-input-40-e9dce50d0ce5> in <module>() ----> 1 mas_s = s.split('l','o') 2 print(mas_s) 3 print(type(mas_s)) TypeError: 'str' object cannot be interpreted as an integer
import re
re.split('\W+', s)
['Hello', 'world', '']
re.split('[lo]', s)
['He', '', '', ', w', 'r', 'd!']