Python Урок 5. Немного о строках. Срезы

Поділитись

На уроке объясняется принцип работы со строками на языке Питон. Будут рассмотрены некоторые необходимые функции для работы со строками. Изучается алгоритм того, как создавать срезы

Немного о строках

  • Строки в Питоне — это упорядоченная последовательность символов. Строка может заключаться как в кавычки, так и в апострофы:
  • Строка считывается со стандартного ввода функцией 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: Определить, является ли введённая строка палиндромом («перевёртышем») типа ABBAkazak и пр.

Примечание:

если s='1234', то

S[-1]='4', s[-2]='3'….

Для решения используйте алгоритм, изображенный на блок-схеме:

определение палиндрома на языке Питон

Форматирование строк

  • Одна подстановка:
  • Несколько подстановок:
  • другой вариант форматирования с множественными подстановками:

Задание Python 5_9:
Допустим, есть какое-то объявление и несколько разных людей, которым нужно это объявление отправить. Для этого создается заготовка с содержанием объявления, внутри которого есть ряд изменяющихся параметров: имена людей и названия событий. Вывести один вариант итогового объявления на экран. Для задания имен и названий использовать форматирование при помощи метода format.

Используйте шаблон объявления и ориентируйтесь по цветам:

Красным – массивы.
Коричневым – числовая переменная.

Уважаемый (ая), Иван Иванович!
Приглашаем Вас на день открытых дверей.
Дата события: 1 мая.
С уважением, Василий.

* Примечание:

  • Вывести пять объявлений.
  • Для имен создать массив (список), подстановку элементов в объявление осуществлять в цикле.
  • Даты меняются от 1 до 5.

Поділитись