Similar presentations:
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
• Дана последовательность слов, заканчивающаясясловом «стоп». Выведите слово, составленное из
последних букв каждого слова последовательности
(кроме «стоп»).
programming