Строки
@ProgHelpBot- Представление
- Управляющие последовательности
- Вставка значений
- Обращение к символам
- Получение части
- Объединение
- Повторение
- Сравнение
- Проверка наличия символа
- Методы и функции
- Форматирование
Представление
Представляет строку - последовательность символов, заключенную в одинарные или двойные кавычки. Строки представляют набор символов в кодировке Unicode.
a = "Hello, World!" print(a) # Hello, World! b = 'Hi!' print(b) # Hi!
Если строка имеет много символов, её можно разбить на части и разместить их на разных строках кода.
text = ("Lorem ipsum dolor sit amet, "
"consectetur adipiscing elit.")
print(text) # Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Если нужно определить многострочный текст, то текст заключается в тройные двойные или одинарные кавычки.
text = '''Lorem ipsum dolor sit amet,
consectetur adipiscing elit.
Vivamus finibus erat quis nisl aliquet,
at pulvinar augue eleifend.
'''
print(text) '''
Lorem ipsum dolor sit amet,
consectetur adipiscing elit.
Vivamus finibus erat quis nisl aliquet,
at pulvinar augue eleifend.
'''
Управляющие последовательности
Строка может содержать ряд специальных символов - управляющих последовательностей. Некоторые из них:
\: позволяет добавить внутрь строки слеш\': позволяет добавить внутрь строки одинарную кавычку\": позволяет добавить внутрь строки двойную кавычку\n: осуществляет переход на новую строку\t: добавляет табуляцию (4 отступа)
Если в строке такие символы не должны восприниматься как управляющие последовательности, перед строкой необходимо поставить символ r.
a = "C:\python\name.py"
print(a) # C:\python
# ame.py
b = r"C:\python\name.py"
print(b) # C:\python\name.py
Вставка значений
Чтобы встроить в строку значения других переменных, эти переменные размещаются в фигурных скобках, а перед всей строкой ставится символ f.
name = "Alex"
age = 23
message = f"Name: {name}, age: {age}"
print(message) # Name: Alex, age: 23
Обращение к символам
Для обращения к символам строки используются индексы (начиная с 0), представляющие номер символа в строке. Для обращения к элементам с конца используются отрицательные индексы (-1 - последний, -2 - предпоследний и т.д.).
message = "Hello, World!" print(message[0]) # H print(message[5]) # , print(message[11]) # ! print(message[-1]) # ! print(message[-3]) # l
Стоит отметить, что строка - это неизменяемый (immutable) тип. Это означает, что мы не можем изменить отдельно взятый символ.
Получение части
Для получения определённой части строки применяется специальный синтаксис:
string[:end]-endуказывает на индекс элемента, до которого нужно копировать строку;string[start:]-startуказывает на индекс элемента, начиная с которого надо скопировать элементы;string[::step]-stepуказывает на шаг, через который будут копироваться элементы из строки (по умолчанию равен1).
message = "Hello, World!" print(message[:5]) # Hello print(message[2:5]) # llo print(message[:9:2]) # Hlo o
Объединение
Для объединения строк применяется операция сложения.
name1 = "Alex" name2 = "Bill" print(name1 + " " + name2) # Alex Bill
Повторение
Для повторения строки определенное количество раз применяется операция умножения.
print("abc" * 3) # abcabcabc
Сравнение
При сравнении строк принимается во внимание символы и их регистр. Так, цифровой символ условно меньше, чем любой алфавитный символ. Алфавитный символ в верхнем регистре условно меньше, чем алфавитные символы в нижнем регистре.
str1 = "1a" str2 = "aa" str3 = "Aa" print(str1 > str2) # False print(str2 > str3) # True
Проверка наличия символа
Для проверки наличия символа используется оператор in.
message = "Hello, World!"
print("Hello" in message) # True
Методы и функции
Наиболее важные методы для работы со строками:
string.isalpha()- возвращаетTrue, если строка состоит только из алфавитных символов;string.islower()- возвращаетTrue, если строка состоит только из символов в нижнем регистре;string.isupper()- возвращаетTrue, если все символы строки в верхнем регистре;string.isdigit()- возвращаетTrue, если все символы строки - цифры;string.isnumeric()- возвращаетTrue, если строка представляет собой число;string.startswith(str)- возвращаетTrue, если строка начинается с подстроки str;string.endswith(str)- возвращаетTrue, если строка заканчивается на подстрокуstr;string.lower()- переводит строку в нижний регистр;string.upper()- переводит строку в верхний регистр;string.title()- начальные символы всех слов в строке переводятся в верхний регистр;string.capitalize()- переводит в верхний регистр первую букву только самого первого слова строки;string.lstrip()- удаляет начальные пробелы из строки;string.rstrip()- удаляет конечные пробелы из строки;string.strip()- удаляет начальные и конечные пробелы из строки;string.ljust(width)- если длина строки меньше параметраwidth, то справа от строки добавляются пробелы, чтобы дополнить значениеwidth, а сама строка выравнивается по левому краю;string.rjust(width)- если длина строки меньше параметраwidth, то слева от строки добавляются пробелы, чтобы дополнить значениеwidth, а сама строка выравнивается по правому краю;string.center(width)- если длина строки меньше параметраwidth, то слева и справа от строки равномерно добавляются пробелы, чтобы дополнить значениеwidth, а сама строка выравнивается по центру;string.find(str[, start [, end])- возвращает индекс подстроки в строке. Если подстрока не найдена, возвращается число-1;string.replace(old, new[, num])- заменяет в строке одну подстроку на другую;string.split([delimeter[, num]])- разбивает строку на подстроки в зависимости от разделителя;string.partition(delimeter)- разбивает строку по разделителю на три подстроки и возвращает кортеж из трех элементов - подстрока до разделителя, разделитель и подстрока после разделителя;string.join(strs)- объединяет строки в одну строку, вставляя между ними определенный разделитель.
Наиболее важные функции для работы со строками:
len(string)- возвращает длину строки;ord(string)- возвращает числовое значение для символа в кодировке Unicode.
Форматирование
Метод string.format() позволяет форматировать строку, вставляя в нее на место плейсхолдеров определенные значения. Для вставки в строку используются специальные параметры, которые обрамляются фигурными скобками {}.
message = "Hello, {name}!".format(name="Alex") # Hello, Alex!
Можно последовательно передавать в метод format набор аргументов, а в самой форматируемой строке вставлять эти аргумента, указывая в фигурных скобках их номер (нумерация начинается с нуля).
info = "Name: {0}, age: {1}".format("Alex", 18) # Name: Alex, age: 18
Еще один способ передачи форматируемых значений в строку - использование подстановок или специальных плейсхолдеров, на место которых вставляются определенные значения. Доступны следующие плейсхолдеры:
s: для вставки строкd: для вставки целых чиселf: для вставки дробных чисел. Для этого типа также можно определить через точку количество знаков в дробной части.%: умножает значение на 100 и добавляет знак процентаe: выводит число в экспоненциальной записи
message = "Hello, {:s}!"
name = "Alex"
print(message.format(name)) # Hello, Alex!