Строки
Строки
Строки это не изменяемыц тип данных
Для объявления строк в python используются:
"some string"
- двойные кавычки'some string'
- одинарные кавычки"""some string"""
- двойные-тройные кавычки'''some string'''
- одинарные-тройные кавычки
В тройных кавычках вы можете переносить текст на следующую строчку, Т.е 'muliline strings'
Если в коде встречается несколько строчных литералов друг за другом, то они объединяются
Над строками можно совершать математические операции
Когда-нибудь у вас возникнет вопрос, а как написать многострочный текст, без отступов слева, это можно будет сделать так:
SOME_MESSAGE_STRING = ("Hello {name}\n""Your account balance: {balance}\n""Good luck!")А вот второй способ:
from textwrap import dedentSOME_MESSAGE_STRING = dedent(f"""\Hello {name}Your account balance: {balance}Good luck!""")
str
Использование класса Если у нас есть последовательность байт, допустим прочитанных из файла, и мы хотим перевети их в строку, мы можем воспользоваться классом str
Но как видите из кода вы долны так же указать кодировку вторым параметром. Вы так же будете часто использовать класс str
, когда вам понадобится получить текстовое представление объекта. У объектов имеется магический метод __str__
который должен возвращать строку, но есть загвоздка в том, что прямое обращение к магическим методам не приветсвуется, в этом случае вы можете воспользоваться классом str
repr
Функция Нужна чтобы вывести питоновское представление объекта, используется для дебагинга
Форматирование строк
Очень частой задачей является подставлять значения в строки, в Python 3.6
появился новый способ это делать, но прежде чем говорить про f-strings
, стоит вспомнить пердыдущие способы.
Cтарые способы форматирования строк
Используя старый синтаксис (
fprint
)"%s:%s" % ("a", "b") # 'a:b'"%x:%x" % (1, 15) # '1:f'Используя метод строк
format
"{}:{}".format("a", "b") # 'a:b'"{:0b}:{}".format(300, "b") # '100101100:b'
F-strings
В последних версиях python
вы наконец можете удобнее подставлять значения с троки использую синтаксис f-strings
, выглядит это следующим образом:
Методы строк
Мы перечислим только некоторые из методов которые часто используются на практике:
str.encode() -> bytes
- перевести строку вbytes
"байтовую строчку"some_str = "some string"print(some_str.encode()) # b'some string'str.split(separator: str, [limit: int]) -> List[str]
- разбить строку на подстрокиsome_str = "a:b:c"print(some_str.split(":"))str.lower() -> str
- привести символы к нижнему региструsome_str = "ABC"print(some_str.lower()) # abcstr.upper() -> str
- привести символы к верхнему региструstr.format(*args, **kwargs) -> str
- Подставить в места подстановки значения
Остальные примеры: