Строки в Python хранятся в Unicode.
В Python нет отдельного типа для одного символа. Символ это str
длинной 1.
str
индексируются как перечисляемые типы. К ним можно применять срезы и итерировать по символам.
s = "привет"
s[1] == "p" # True
for ss in s:
print(ss)
str
нельзя изменить.
s = "привет"
s[1] = "Ф" # Ошибка
Чтобы изменить строку надо создать новую из старой или превратить ее в список.
s = "привет"
s = s[0:1] + "Ф" + s[2:] # Успешно
s = "привет"
vs = list(s)
vs[1] = "Ф"
s = ''.join(vs) # Успешно
Поиск подстроки
s = "hello world"
x = s.find("world") # x == 6
x = s.find("code") # x == -1
Проверка, что строка начинается или заканчивается на подстроку
s = "hello world"
x = s.startswith("hello") # x == True
x = s.endswith("code") # x == False
Конкатенация строк
a = "hello"
b = "world"
c = a + " " + b #c == "hello world"
Разбивает строку на список строк с использованием разделителя (по умолчанию пробел)
s = "goodbye|blue|sky"
d = s.split("|") # d == ['goodbye', 'blue', 'sky']
Собирает строку из списка строк с использованием разделителя
jp = ["goodbye", "blue", "sky"]
sep = "_"
s = sep.join(jp) # s == "goodbye_blue_sky"
Удаляет из начала и конца строки пробельные символы
s = "\t goodbye blue sky \n \n"
d = s.strip() # d == "goodbye blue sky"
Выполняет замену в строке
s = "goodbye blue sky"
d = s.replace("blue", "red") # d == "goodbye red sky"
Превращают str
в bytes
и обратно в заданной кодировке (по умолчанию utf8
)
s = "привет мир"
d = s.encode("cp866")
# d == b'\xaf\xe0\xa8\xa2\xa5\xe2 \xac\xa8\xe0'
q = d.decode("cp866")
# q == "привет мир"
Догоняет строку заданным символом до нужной длинны.
s = "привет мир"
w = s.ljust(15,"_")
# w == 'привет мир_____'
q = s.rjust(15,"_")
# q == '_____привет мир'