Строки

Строки

@ProgHelpBot
  1. Представление
  2. Управляющие последовательности
  3. Вставка значений
  4. Обращение к символам
  5. Получение части
  6. Объединение
  7. Повторение
  8. Сравнение
  9. Проверка наличия символа
  10. Методы и функции
  11. Форматирование

Представление

Представляет строку - последовательность символов, заключенную в одинарные или двойные кавычки. Строки представляют набор символов в кодировке 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!


← Множества

Report Page