На уроке объясняется принцип работы со строками на языке Питон. Будут рассмотрены некоторые необходимые функции для работы со строками. Изучается алгоритм того, как создавать срезы
Немного о строках
- Строки в Питоне — это упорядоченная последовательность символов. Строка может заключаться как в кавычки, так и в апострофы:
- Строка считывается со стандартного ввода функцией input():
ОПЕРАЦИИ СО СТРОКАМИ
- Для двух строк определена операция сложения (конкатенации), также определена операция умножения строки на число:
- Длина строки – функция len():
Срезы
Оператор извлечения среза из строки: [X:Y]
X – это индекс начала среза, а Y – его окончания
| tday = ‘morning, afternoon, night’ tday[0:7] # ‘morning’ |
Рассмотрим примеры того, как используются в Python срезы:
| s = ‘spameggs’ s[3:5] # ‘me’ s[2:-2] # ‘ameg’ s[-4:-2] # ‘eg’ s[:6] # ‘spameg’ s[1:] # ‘pameggs’ s[:] # ‘spameggs’ |
Можно задать шаг:
| s = ‘spameggs’ s[::-1] # ‘sggemaps’ s[3:5:-1] # « s[2::2] # ‘aeg’ |
Пример:
Извлеките из строки символы с индексами кратными трем.
✍ Решение:
Задание можно выполнить, используя цикл (сложный вариант решения):
| 1 2 3 4 5 6 | s = ‘spameggs’ x=3 l=len(s)//3 for i in range(l): print(s[x:x+1:3]) # m g x+=3 |
Для решения можно использовать просто срез:
| 1 2 | s = ‘spameggs’ print(s[1::3]) |
Задание Python 5_1: Извлеките из строки следующие срезы:
— первые восемь символов;
— четыре символа из центра строки;
— пять символов с конца строки.Задание Python 5_2:
Дана строка длиной N. Вывести символы строки в обратном порядке.
(Не использовать цикл).Задание Python 5_3:
Дана строка длиной N (N — четное число). Вывести символы с четными номерами в порядке возрастания их номеров:
а2, а4, а6, ... аn
Условный оператор не использовать.Задание Python 5_4:
Дана строка длиной N. Вывести сначала символы с четными номерами (в порядке возрастания номеров), а затем — символы с нечетными номерами (также в порядке возрастания номеров):
а2, а4, а6,...а1, а3, а5...
Условный оператор не использовать.
Методы строк
Строки, как объекты Python, обладают методами (т.е. функциями, которые выполняют сами объекты).
join(str) — Соединение строк из последовательности str через разделитель, заданный строкой
| s=»hello» s1=»-«.join(s) s1 # ‘h-e-l-l-o’ |
s1.count(s[, i, j]) — количество вхождений подстроки s в строку s1. Результатом является число. Можно указать позицию начала поиска i и окончания поиска j:
| s1=»abrakadabra»; s1.count(‘ab’) # 2 s1.count(‘ab’,1) # 1 s1.count(‘ab’,1,-3) # 0 , т.к. s1[1:-3]=’brakada’ |
s1.find(s[, i, j]) — определяется позиция первого (считая слева) вхождения подстроки s в строку s1. Результатом является число. i и j определяют начало и конец области поиска:
| s1=»abrakadabra»; s1.find(‘br’) # 1 |
s1.replace(s2,s3[, n]) — создаётся новая строка, в которой фрагмент (подстрока) s2 исходной строки заменяется на фрагмент s3. Необязательный аргумент n указывает количество замен:
| s1=»breKeKeKeKs»; ss=s1.replace(‘Ke’,’XoXo’,2) ss # breXoXoXoXoKeKs |
Задание Python 5_5: Преобразовать дату в «компьютерном» представлении (системную дату: 2016-03-26) в «российский» формат, т. е. день/месяц/год (например, 26/03/2016). Известно, что на год выделено всегда 4 цифры, а на день и месяц – всегда 2 цифры.
Примечание:
- Использовать строковые функции языка и срезы.
- Функциями работы с датами и временем «заведует» в Python datetime модуль, а непосредственно для работы с датами используется объект date и его методы.
Подсказка:
| from datetime import date # Получаем текущую дату d1=date.today() # Преобразуем результат в строку ds=str(d1) |
Задание Python 5_6:
Ввести адрес файла и «разобрать» его на части, разделенные знаком ‘/’. Каждую часть вывести в отдельной строке.
Например: c:/изображения/2018/1.jpg
Результат:
c: изображения 2018 1.jpg
Задание Python 5_7:
Ввести строку, в которой записана сумма натуральных чисел, например, ‘1+25+3’. Вычислите это выражение. Использовать строковые функции языка.Задание Python 5_8: Определить, является ли введённая строка палиндромом («перевёртышем») типа ABBA, kazak и пр.
Примечание:
если s='1234', то
S[-1]='4', s[-2]='3'….
Для решения используйте алгоритм, изображенный на блок-схеме:
Форматирование строк
- Одна подстановка:
- Несколько подстановок:
- другой вариант форматирования с множественными подстановками:
Задание Python 5_9:
Допустим, есть какое-то объявление и несколько разных людей, которым нужно это объявление отправить. Для этого создается заготовка с содержанием объявления, внутри которого есть ряд изменяющихся параметров: имена людей и названия событий. Вывести один вариант итогового объявления на экран. Для задания имен и названий использовать форматирование при помощи метода format.
Используйте шаблон объявления и ориентируйтесь по цветам:
Красным – массивы.
Коричневым – числовая переменная.
Уважаемый (ая), Иван Иванович!
Приглашаем Вас на день открытых дверей.
Дата события: 1 мая.
С уважением, Василий.
* Примечание:
- Вывести пять объявлений.
- Для имен создать массив (список), подстановку элементов в объявление осуществлять в цикле.
- Даты меняются от 1 до 5.
