Строки в Python - это последовательности символов, заключенные в одинарные (
'
), двойные ("
) или тройные кавычки ('''
или """
). Строки используются для представления текстовых данных. В Python строки являются неизменяемыми, то есть их нельзя изменить после создания.Создание строк
Одинарные и двойные кавычки
Строки могут быть заключены в одинарные или двойные кавычки. Разницы между ними нет, кроме того, как они обрабатывают кавычки внутри строки.
str1 = 'Hello, World!'
str2 = "Hello, World!"
print(str1) # Hello, World!
print(str2) # Hello, World!
Тройные кавычки
Тройные кавычки используются для создания многострочных строк или строк, содержащих кавычки внутри.
str3 = """Это
многострочная
строка"""
str4 = '''Эта строка содержит "кавычки" внутри'''
print(str3)
print(str4)
Экранированные символы
Экранированные символы используются для включения специальных символов в строку.
newline = "Первая строка\nВторая строка"
tabbed = "Первая строка\tВторая строка"
escaped_quote = "Он сказал: \"Привет!\""
print(newline)
print(tabbed)
print(escaped_quote)
Специальные символы
-
\n
- Новая строка -
\t
- Табуляция -
\\
- Обратный слеш -
\'
- Одинарная кавычка -
\"
- Двойная кавычка
Операции со строками
Конкатенация строк
Конкатенация (объединение) строк осуществляется с помощью оператора
+
.str1 = "Hello"
str2 = "World"
str3 = str1 + ", " + str2 + "!"
print(str3) # Hello, World!
Повторение строк
Повторение строк осуществляется с помощью оператора
*
.str1 = "Hi! "
str2 = str1 * 3
print(str2) # Hi! Hi! Hi!
Индексация строк
Каждый символ строки имеет индекс, начиная с 0. Отрицательные индексы отсчитываются с конца строки.
str1 = "Hello"
print(str1[0]) # H
print(str1[-1]) # o
Срезы строк
Срезы используются для извлечения части строки.
str1 = "Hello, World!"
print(str1[0:5]) # Hello
print(str1[7:]) # World!
print(str1[:5]) # Hello
print(str1[::2]) # Hlo ol!
print(str1[::-1]) # !dlroW ,olleH
Перебор строки через цикл for
a = "1516 the best"
for i in range(len(a)):
if(a[i] in "1234567890"):
print(a[i])
# вывод: 1
# вывод: 5
# вывод: 1
# вывод: 6
Методы строк
Метод len()
Функция
len()
возвращает длину строки.str1 = "Hello"
print(len(str1)) # 5
Метод .lower() и .upper()
str1 = "Hello, World!"
print(str1.lower()) # hello, world!
print(str1.upper()) # HELLO, WORLD!
Метод .strip()
Метод
.strip()
удаляет пробелы (или другие символы) с начала и конца строки.str1 = " Hello, World! "
print(str1.strip()) # "Hello, World!"
Метод .replace()
Метод
.replace()
заменяет подстроку в строке на другую подстроку.str1 = "Hello, World!"
print(str1.replace("World", "Python")) # Hello, Python!
Метод .split() и .join()
Метод
.split()
разбивает строку по указанному разделителю и возвращает список строк. Метод .join()
объединяет элементы списка в строку, используя указанный разделитель.str1 = "Hello, World!"
list1 = str1.split(", ")
print(list1) # ['Hello', 'World!']
str2 = ", ".join(list1)
print(str2) # Hello, World!
Метод .find() и .rfind()
Метод
.find()
возвращает индекс первого вхождения подстроки, а метод .rfind()
- индекс последнего вхождения. Если подстрока не найдена, возвращается -1.str1 = "Hello, World!"
print(str1.find("o")) # 4
print(str1.rfind("o")) # 8
print(str1.find("Python")) # -1
Метод .startswith() и .endswith()
Методы
.startswith()
и .endswith()
проверяют, начинается ли или заканчивается ли строка на указанную подстроку.str1 = "Hello, World!"
print(str1.startswith("Hello")) # True
print(str1.endswith("World!")) # True
Проверочные методы
-
.isalpha()
возвращает True, если строка состоит только из букв. -
.isdigit()
возвращает True, если строка состоит только из цифр. -
.isalnum()
возвращает True, если строка состоит только из букв и цифр.
str1 = "Hello"
str2 = "12345"
str3 = "Hello123"
print(str1.isalpha()) # True
print(str2.isdigit()) # True
print(str3.isalnum()) # True
Форматирование строк
Оператор %
Оператор
%
используется для форматирования строк.name = "Alice"
age = 25
str1 = "My name is %s and I am %d years old." % (name, age)
print(str1) # My name is Alice and I am 25 years old.
Метод .format()
Метод
.format()
предоставляет более мощный способ форматирования строк.name = "Alice"
age = 25
str1 = "My name is {} and I am {} years old.".format(name, age)
print(str1) # My name is Alice and I am 25 years old.
F-строки (f-strings)
F-строки (форматированные строковые литералы) - это самый современный и удобный способ форматирования строк в Python.
name = "Alice"
age = 25
str1 = f"My name is {name} and I am {age} years old."
print(str1) # My name is Alice and I am 25 years old.
Форматирование чисел
pi = 3.14159
str1 = f"Число Пи примерно равно {pi:.2f}"
print(str1) # Число Пи примерно равно 3.14
Многострочные строки
Для работы с многострочными строками удобно использовать тройные кавычки.
str1 = """Это
многострочная
строка"""
print(str1)
Проверка строк в Python
В Python есть множество встроенных методов для проверки строк. Эти методы позволяют определить различные свойства строк, такие как содержат ли они только цифры, буквы, являются ли они в верхнем или нижнем регистре и многое другое. Рассмотрим наиболее часто используемые методы для проверки строк.
-
str.isalpha()
: Проверяет, состоит ли строка только из алфавитных символов (букв).s = "Hello" print(s.isalpha()) # Вывод: True s = "Hello123" print(s.isalpha()) # Вывод: False
-
str.isdigit()
: Проверяет, состоит ли строка только из цифр.s = "12345" print(s.isdigit()) # Вывод: True s = "12345abc" print(s.isdigit()) # Вывод: False
-
str.isalnum()
: Проверяет, состоит ли строка только из алфавитных символов и цифр.s = "Hello123" print(s.isalnum()) # Вывод: True s = "Hello 123" print(s.isalnum()) # Вывод: False
-
str.islower()
: Проверяет, состоит ли строка только из символов в нижнем регистре.s = "hello" print(s.islower()) # Вывод: True s = "Hello" print(s.islower()) # Вывод: False
-
str.isupper()
: Проверяет, состоит ли строка только из символов в верхнем регистре.s = "HELLO" print(s.isupper()) # Вывод: True s = "Hello" print(s.isupper()) # Вывод: False
-
str.isspace()
: Проверяет, состоит ли строка только из пробельных символов (например, пробелов, табуляций, новых строк).s = " " print(s.isspace()) # Вывод: True s = "Hello" print(s.isspace()) # Вывод: False
-
str.startswith(prefix)
: Проверяет, начинается ли строка с заданного префикса.s = "Hello, world!" print(s.startswith("Hello")) # Вывод: True print(s.startswith("world")) # Вывод: False
-
str.endswith(suffix)
: Проверяет, заканчивается ли строка заданным суффиксом.s = "Hello, world!" print(s.endswith("world!")) # Вывод: True print(s.endswith("Hello")) # Вывод: False