Работа со строками
Индексы
Индексы можно применять как к переменным, так и к самим значениям
Отрицательные индексы
Что выведет такая программа?
Срезы строки
Срезы с отрицательными индексами
Сокращённая запись среза
Срез с шагом
Сравнение букв
Сравнение слов
Сравнение строк с числами
Методы строк
Методы find() и rfind()
Метод count()
Что выведет такая программа?
Метод replace()
f-строки
Основные итоги
Задание 1
Задание 2
Задание 3
Задание 4
1.13M
Category: programmingprogramming

f2d53335c2a440828fbe5b7fa4dbf8e2 (1)

1. Работа со строками

2. Индексы

• В Python у всех символов строки есть номера, и можно
получить символ по его номеру. Символы строки
пронумерованы слева направо начиная с 0. Эти
номера называются индексами.
• Можно воспринимать индекс как расстояние от
начала строки до символа. Посмотрим на схему со
строкой «строка» и индексами, проставленными между
символами. На такой схеме символ по индексу — это
символ справа от него (начинаются с нуля):

3.

• По индексу символа мы можем получить этот символ,
записав индекс в квадратных скобках сразу после
строки.
• Для получения, например, символа "о" строки s =
"строка" понадобится команда s[3].
• Внутри квадратных скобок можно помещать любые
значения целого типа: переменные, выражения или
функции.

4.

5. Индексы можно применять как к переменным, так и к самим значениям

6. Отрицательные индексы

• Чтобы взять символы строки из её конца — например,
последний или предпоследний, — можно определить
индексы этих символов с помощью длины строки.
• Эта программа записывает в переменную last_symbol
последний символ строки:

7.

• Отсчитывать индексы с конца бывает удобно, но
каждый раз считать длину строки — уже не очень.
Поэтому в Python есть сокращённая запись: вместо
string[length - 1] пишут string[-1] (последний символ),
вместо string[length - 2] пишут string[-2] и т. д. Индекс
-n соответствует n-му символу с конца.
• Вернёмся к схеме со строкой "строка" и индексами,
проставленными между символами. На ней можно
расставить и отрицательные индексы:

8. Что выведет такая программа?

9. Срезы строки

• Чтобы из строки быстро получить не символ, а часть
строки, используется срез строки. Нарисуем схему
строки с пронумерованными индексами:
• Подстрока "грамм" расположена между индексами 3 и
8. Поэтому, чтобы получить из s "грамм", мы возьмем
срез s[3:8].
• Общее правило такое: команда string[start:finish] берёт
подстроку string начиная с символа с индексом start и
заканчивая символом с индексом finish - 1.

10.

11. Срезы с отрицательными индексами

• В срезах можно использовать отрицательные индексы.
• Если в срезе s[start:finish] индекс start расположен
левее индекса finish, то берётся строка между ними.
• Если индекс start равен индексу finish или если он
расположен правее, то в взятие среза вернёт пустую
строку.

12.

13. Сокращённая запись среза

• В строках "веслонос" и "котлован" срезы "нос" и "кот"
прилегают к одному из концов строки.
• Часто в программах бывает нужно получить кусок
строки из её начала или конца. В этих случаях индекс
начала или индекс конца среза можно опустить:
• Запись string[:] не будет ошибочной: такой срез выдаст
всю строку string целиком. Но писать так — довольно
бессмысленно.

14.

• Такая программа из строки выделяет начало и конец:

15.

• Слово длины n можно взять из начала строки срезом
s[:n], а из конца — срезом s[-n:].
• Посмотрите на примеры срезов строки s = 'ABCD'.

16. Срез с шагом

• Бывает, нужно взять символы строки не подряд, а с
одинаковым шагом между ними. Например, каждый
второй символ (каждый третий, каждый четвёртый и
т. д.). Это тоже можно сделать срезом:
• В newstring будет записана сумма символов строки
string с индексами start, start + step, start + 2 step и
так далее до finish (не включительно).
• Шаг может быть отрицательным, но тогда символ с
индексом start должен быть правее символа с
индексом finish. Если это условие не выполняется, мы
получаем пустую строку.

17.

• В срезах с шагом тоже можно опускать индексы
начала или конца.

18. Сравнение букв

• В Python сравнивать можно не только числа, но и
строки. Сравним две строки, состоящие из одной
буквы каждая. Если буква стоит раньше в алфавите,
то строка с этой буквой меньше:

19. Сравнение слов

• Буквы из строк сравниваются попарно: первая буква с
первой, вторая со второй. Если две буквы равны, то
сравниваются две следующие. Какая буква меньше, та
и строка меньше. Строки с буквами из других
алфавитов сравниваются точно таким же образом.

20.

21.

• Если первая строка равна началу второй, но строки не
равны, то первая меньше.

22. Сравнение строк с числами

• Важно помнить, что, какие бы символы ни были в
строке, сравнивают строки посимвольно. Поэтому
сравнение строк, в которых записаны числа, выглядит
так:

23.

24. Методы строк

• Для многих задач в Python есть встроенные быстрые
решения. Вместо того чтобы писать длинную
программу, можно использовать уже готовую
функцию. Сегодня мы познакомимся с функциями,
которые решают стандартные задачи обработки строк.
• Эти функции называются методами. Метод
записывают через точку после значения, переменной
или выражения (например, "котлета".count('кот')
считает, сколько подстрок "кот" есть в строке
"котлета").
• Методы строк работают только со строками.

25. Методы find() и rfind()

• Метод string.find(substring) ищет в строке string первое
вхождение подстроки substring и возвращает индекс
его начала. Если такой подстроки нет, то возвращает
число -1. Результат метода -1 не надо путать с
индексом. Это специальный знак, который говорит о
том, что подстрока не найдена.
• Подстрокой называется часть строки. Например,
"слон" — это подстрока строки "Не прислоняться!".

26.

27.

• Подстрока может повторяться в строке несколько раз.
Если нам нужно найти не первую (левую), а
последнюю (правую) подстроку, то вместо метода find()
нужно использовать метод rfind().
• Этот метод тоже отдаёт индекс начала подстроки, но
подстрока эта — последняя. Буква r в rfind() идёт от
слова right («правый» или «справа»).

28. Метод count()

• Еще один полезный метод string.count(substring)
считает, сколько раз подстроку substring можно найти
в строке string.

29. Что выведет такая программа?

30. Метод replace()

• Иногда необходимо поменять в строке одну подстроку
на другую.
• Метод string.replace(old, new) возвращает новую
строку. Новая строка равна string, в которой все
подстроки old поменяли на new. Сама строка string
при этом не поменялась.

31. f-строки

• Часто бывает нужно не только найти или заменить
слова в заданной строке, но и, наоборот, составить
свою строку, используя значения выражений или
переменных. Вы так уже делали с помощью функции
str() и сложения строк, но это неудобно.
• Упростить такую запись можно с помощью f-строки
(форматированной строки). Перед кавычками нужно
поставить строчную букву f. В фигурных скобках
внутри f-строки можно записать любые значения,
переменные и выражения.

32.

33.

34. Основные итоги

• Для нумерации символов используют индексы [] (слева направо
с 0, справа налево с -1)
• Запись string[start:finish] возвращает часть строки (finish не
включается в результат)
• Запись string[start:finish:step] возвращает не все символы между
start и finish, а через шаг step (finish не включается в результат)
• Метод string.find(substring) находит индекс первого вхождения
substring в string, а метод rfind() — последнего. Если substring не
входит в string, оба метода возвращают -1.
• Метод string.count(substring) считает количество вхождений
substring в string.
• Метод string.replace(old, new) создаёт новую строку, в которой
все вхождения old были изменены на new.

35. Задание 1

• Дано слово. Выведите его первую и последнюю букву
через дефис.

36. Задание 2

• Дано слово с нечётным количеством букв. Выведите
букву посередине.

37. Задание 3

• Дано сообщение. Если оно заканчивается точкой,
выведите "серьёзно", если вопросительным знаком —
"вопрос", если восклицательным знаком — "ура", а
иначе — "непонятно".

38. Задание 4

• Дана последовательность слов, заканчивающаяся
словом «стоп». Выведите слово, составленное из
последних букв каждого слова последовательности
(кроме «стоп»).
English     Русский Rules