Строки
Строки
Строки это не изменяемыц тип данных
Для объявления строк в 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- Подставить в места подстановки значения
Остальные примеры: