160.23K
Category: programmingprogramming

Строки_в_Python

1.

ТЕКСТ И СИМВОЛЫ
Строки в Python
Как программа хранит
и обрабатывает текст
Способы записи, действия со строками и частые ошибки
1

2.

СТРОКИ
Строка хранит текст
name = "Луна"
message = "Привет, мир!"
print(name)
Строка — текстовое значение типа str.
В строке могут быть буквы, цифры, пробелы и знаки.
Переменная name связана со строкой «Луна».
2

3.

СТРОКИ
Один символ — тоже строка
letter = "А"
sign = "!"
digit = "7"
В Python нет отдельного типа char для одного символа.
"А", "!" и "7" имеют тип str.
Цифра в кавычках остаётся текстом.
3

4.

СТРОКИ
Одинарные и двойные кавычки
first = 'кот'
second = "кот"
print(first == second)
Оба способа создают одинаковый текст. Результат: True.
Кавычки обозначают границы строки.
При выводе через print внешние кавычки не появляются.
4

5.

СТРОКИ
Кавычки внутри текста
print('Он сказал: "Привет!"')
print("It's a cat")
Внутри одинарных кавычек удобно писать двойные.
Внутри двойных удобно писать апостроф.
Начало и конец строки оформляются одинаковыми кавычками.
5

6.

СТРОКИ
Тройные кавычки
text = """Первая строка
Вторая строка"""
print(text)
Тройные кавычки сохраняют переносы внутри текста.
Подходят три двойные или три одинарные кавычки.
Это один объект str, даже если текст занимает несколько строк.
6

7.

СТРОКИ
Пустая строка и пробел
print(len(""))
print(len(" "))
print(len("кот"))
Результаты: 0, 1 и 3.
Пустая строка не содержит символов. Пробел — символ.
len сообщает длину строки.
7

8.

СТРОКИ
Специальные символы
print("Кот\nПёс")
print("Имя\tЛуна")
\n обозначает перенос строки: «Кот» и «Пёс» окажутся на разных строках.
\t обозначает табуляцию: отступ до следующей позиции табуляции.
В коде видны два знака, но в строке это один специальный символ.
8

9.

СТРОКИ
Обратная косая черта и кавычки
print("Путь: C:\\Games")
print("Он сказал: \"Привет!\"")
\\ внутри обычной строки даёт одну обратную косую черту.
\" позволяет поместить двойную кавычку в строку.
Такая запись называется экранированием.
9

10.

СТРОКИ
r-строка: запись без переноса
text = r"Кот\nПёс"
print(text)
Результат: Кот\nПёс — всё на одной строке.
Буква r перед кавычкой сохраняет обратные косые черты.
Так удобно записывать пути и другие специальные тексты.
10

11.

СТРОКИ
Соединение строк: +
name = "Луна"
print("Привет, " + name + "!")
Результат: Привет, Луна!
Знак + соединяет строки.
Пробелы и знаки добавляются только там, где они записаны.
11

12.

СТРОКИ
Повторение строки: *
print("ха" * 3)
print("-" * 5)
Результаты: хахаха и -----.
Строку можно умножить на целое число.
Повторение ноль раз даёт пустую строку.
12

13.

СТРОКИ
Символ по номеру
word = "КОТ"
print(word[0])
print(word[2])
print(word[-1])
Результаты: К, Т и Т.
Номер символа называется индексом. Счёт начинается с 0.
Индекс -1 обозначает последний символ.
13

14.

СТРОКИ
Часть строки: срез
word = "ПЛАНЕТА"
print(word[0:4])
print(word[4:])
print(word[:3])
Результаты: ПЛАН, ЕТА и ПЛА.
В записи [начало:конец] конец не входит в результат.
Пропущенное начало означает 0, пропущенный конец — до конца строки.
14

15.

СТРОКИ
Шаг среза
text = "123456"
print(text[::2])
print(text[::-1])
Результаты: 135 и 654321.
Шаг 2 выбирает каждый второй символ.
Шаг -1 позволяет прочитать строку в обратном порядке.
15

16.

СТРОКИ
Строка не меняется по символам
word = "кот"
word = "р" + word[1:]
print(word)
Результат: рот.
Python создал новую строку и связал её с именем word.
Прямое присваивание word[0] = "р" вызвало бы TypeError.
16

17.

СТРОКИ
Поиск текста: in
text = "космический кот"
print("кот" in text)
print("пёс" in text)
Результаты: True и False.
in проверяет, есть ли нужный фрагмент внутри строки.
not in проверяет отсутствие фрагмента.
17

18.

СТРОКИ
Сравнение строк
print("кот" == "кот")
print("Кот" == "кот")
print("кот " == "кот")
Результаты: True, False и False.
Большие и маленькие буквы различаются.
Пробел в конце тоже влияет на сравнение.
18

19.

СТРОКИ
Методы: действия самой строки
text = "Привет"
print(text.upper())
print(text.lower())
Результаты: ПРИВЕТ и привет.
Метод записывается после точки, затем идут скобки.
upper делает буквы большими, lower — маленькими.
19

20.

СТРОКИ
Результат метода нужно сохранить
name = "луна"
name.upper()
print(name)
name = name.upper()
Первый print покажет луна.
Вызов upper создаёт новый текст, но саму строку не меняет.
После последней команды name связано со строкой ЛУНА.
20

21.

СТРОКИ
Удаление пробелов по краям
text = " добрый кот "
clean = text.strip()
print(clean)
Результат: добрый кот.
strip убирает пробелы и другие пробельные символы по краям.
Пробел между словами остаётся.
21

22.

СТРОКИ
Замена фрагмента
text = "кот и кот"
print(text.replace("кот", "пёс"))
Результат: пёс и пёс.
replace создаёт строку с заменёнными фрагментами.
Для сохранения результата подходит text = text.replace("кот", "пёс").
22

23.

СТРОКИ
Позиция и количество
text = "банан"
print(text.find("на"))
print(text.count("а"))
print(text.find("кот"))
Результаты: 2, 2 и -1.
find возвращает индекс первого совпадения, count — число совпадений.
Если фрагмента нет, find возвращает -1.
23

24.

СТРОКИ
Разделение и соединение
words = "кот пёс кит".split()
print(words)
print(", ".join(words))
split() делит текст по пробельным символам.
Получится список: ['кот', 'пёс', 'кит'].
join соединяет его строки: кот, пёс, кит.
24

25.

СТРОКИ
Проверки текста
print("кот".isalpha())
print("123".isdecimal())
print("cat.png".endswith(".png"))
Все три результата: True.
isalpha проверяет буквы, isdecimal — десятичные цифры.
endswith проверяет конец текста, startswith — начало.
25

26.

СТРОКИ
Текст и числа
print("5" + "2")
print(int("5") + 2)
print("Монет: " + str(5))
Результаты: 52, 7 и Монет: 5.
int превращает подходящий текст в целое число.
str превращает число в текст.
26

27.

СТРОКИ
f-строка: значения внутри текста
name = "Луна"
coins = 5
print(f"У героя {name} монет: {coins}")
Результат: У героя Луна монет: 5.
Буква f включает подстановку значений из фигурных скобок.
Результат f-строки — обычная строка str.
27

28.

СТРОКИ
Вычисления в f-строке
coins = 5
print(f"После находки: {coins + 3}")
print(f"Цена: {2.5:.2f}")
Результаты: После находки: 8 и Цена: 2.50.
Внутри скобок может быть вычисление.
Запись :.2f показывает число с двумя знаками после точки.
28

29.

СТРОКИ
input получает строку
name = input("Имя героя: ")
message = f"Привет, {name}!"
print(message)
При ответе Луна программа покажет Привет, Луна!
input всегда возвращает текст.
Для имени преобразование в число не требуется.
29

30.

ОШИБКИ
Частые ошибки записи
print("кот)
print("Монет: " + 5)
print("кот" * 2.5)
Это три отдельных неверных примера.
Без закрывающей кавычки возникает SyntaxError.
Сложение с числом и повторение дробное число раз дают TypeError.
30

31.

ОШИБКИ
Индекс и срез ведут себя по-разному
word = "кот"
print(word[0:100])
print(word[100])
Срез вернёт кот: лишняя часть диапазона не мешает.
Индекс 100 вызовет IndexError: такого символа нет.
Для пустой строки даже индекс 0 недоступен.
31

32.

ПРИМЕРЫ
Похожий код — разный результат
print("8" * 2)
print(int("8") * 2)
print("Кот".lower() == "кот")
Результаты: 88, 16 и True.
Тип определяет смысл операции.
Изменение регистра помогает сравнить эти слова.
32

33.

ПРИМЕРЫ
Пример: аккуратное приветствие
name = " Луна "
name = name.strip()
message = f"Привет, {name}!"
print(message)
Программа убирает лишние пробелы по краям имени.
Затем подставляет имя в приветствие.
Результат: Привет, Луна!
33

34.

ДОПОЛНИТЕЛЬНО
Другие способы вставить значение
print("Привет, {}!".format("Луна"))
print("Привет, %s!" % "Луна")
Оба примера выводят Привет, Луна!
.format() и форматирование через % встречаются в чужом коде.
Для первых собственных примеров удобна f-строка.
34

35.

ДОПОЛНИТЕЛЬНО
Другие префиксы строк
plain = u"кот"
path = rf"C:\Games\{5}"
data = b"cat"
u в Python 3 оставляет обычную строку. rf сочетает r и f.
b создаёт bytes: последовательность байтов, а не текст str.
Байты нужны, например, при работе с файлами и сетью.
35

36.

ДОПОЛНИТЕЛЬНО
Текст и байты
text = "кот"
data = text.encode("utf-8")
print(data.decode("utf-8"))
Результат: кот.
encode переводит текст в байты, decode — байты в текст.
Для обратного чтения нужна подходящая кодировка, здесь UTF-8.
36

37.

ДОПОЛНИТЕЛЬНО
Символы разных языков
print(ord("А"))
print(chr(1040))
print("\u0410")
Результаты: 1040, А и А.
Unicode задаёт коды символов. ord и chr связывают символ и его код.
Один видимый знак иногда состоит из нескольких кодов.
Поэтому len не всегда совпадает с числом видимых знаков.
37

38.

СПРАВОЧНИК
Ещё несколько полезных методов
print("привет мир".capitalize())
print("привет мир".title())
print("7".zfill(3))
Результаты: Привет мир, Привет Мир и 007.
capitalize меняет регистр первого символа и остальных букв.
title выделяет начала слов, zfill дополняет запись нулями.
38

39.

СПРАВОЧНИК
Особые случаи записи
r-строка не может заканчиваться нечётным числом обратных косых
черт.
В f-строке двойные {{ и }} дают обычные фигурные скобки.
Тройные кавычки создают текст. Комментарий в Python начинается с
#.
39

40.

СПРАВОЧНИК
Редкие специальные символы
\r — возврат к началу строки; \b — возврат на позицию назад.
\a — сигнал; \f и \v — специальные разделители.
\x41 и \u0041 записывают символ A через его код.
Их отображение зависит от программы, которая показывает текст.
40

41.

СПРАВОЧНИК
t-строки: отдельный вид шаблонов
Начиная с Python 3.14 есть запись t"Привет, {name}!".
Она создаёт объект Template, а не готовую строку str.
Такой шаблон предназначен для дальнейшей обработки.
Для обычного приветствия подходит f-строка.
41

42.

ИТОГ
Главное о строках
Строка хранит текст и имеет тип str.
Кавычки, r и f помогают по-разному записывать текст.
Индексы и срезы выбирают символы и фрагменты.
Методы помогают искать, очищать и преобразовывать текст.
Исходная строка не меняется: результат преобразования сохраняется
отдельно.
42

43.

МАТЕРИАЛЫ
Ссылки и справочники
Способы записи строк: PythonWorld
Действия и методы строк: PythonWorld
Полный справочник методов str
Способы записи и префиксы: документация Python
Unicode: текст и символы
43
English     Русский Rules