СДЕЛАЙТЕ СВОИ УРОКИ ЕЩЁ ЭФФЕКТИВНЕЕ, А ЖИЗНЬ СВОБОДНЕЕ

Благодаря готовым учебным материалам для работы в классе и дистанционно

Скидки до 50 % на комплекты
только до

Готовые ключевые этапы урока всегда будут у вас под рукой

Организационный момент

Проверка знаний

Объяснение материала

Закрепление изученного

Итоги урока

Уроки Python 6 - Работа со строками

Категория: Информатика

Нажмите, чтобы узнать подробности

Уроки Python 6 - Работа со строками

Просмотр содержимого документа
«Уроки Python 6 - Работа со строками»

Уроки Python 6 - Работа со строками

Сегодня мы изучим некоторые приёмы для работы со строками и с текстом. Очень много программ созданы для того чтобы работать с текстами- как-то преобразовывать их, изменять, анализировать. Любой текст можно представить либо как одну длинную очень строку, либо разбить его по предложениям или абзацам и получить на выходе список(массив) строк.


Начнём с простейших функций для обработки текстовых строк.


Замена подстроки в строке


В одном советском анекдоте, Крокодилу Гене и Чебурашке учительница поручила написать сочинение "Как я провёл лето". Проблема была в том, что всё лето друзья пили водку. Пришлось сперва написать как есть, а потом заменить некоторые слова. Давайте поможем сказочным героям. Для этого мы используем функцию replace, которая работает так

s=s.replace('строка которую заменяем', 'строка вместо неё')


Длинные тексты, разбитые на несколько строк можно поместить в одну строку, заключив их в три одинарные кавычки с каждой стороны строки.

s='''Всё лето мы пили водку. Вот как-то открываю дверь, а на пороге Чебурашка, весь такой пьяный-пьяный, и бутылка из кармана торчит.'''

s=s.replace('пили','читали')

s=s.replace('водку','книги')

s=s.replace('пьяный','начитанный')

s=s.replace('бутылка','энциклопедия')

print(s)

Программа выдаёт результат:


Всё лето мы читали книги. Вот как-то открываю дверь, а на пороге Чебурашка, весь такой начитанный-начитанный, и энциклопедия из кармана торчит.


Как видим, теперь сочинение Чебурашки и Гены успешно пройдет проверку строгой учительницы.


Иногда функцию replace можно использовать, чтобы удалить какие-то слова из строки, заменив их на пустую строку(просто открыть и закрыть кавычку - будет пустая строка). Например, давайте полностью удалим из какого-то текста слово 'какашка'.

s='''Ах ты какашка! - сказал маленький мальчик на девочку, которая ему понравилась.'''

s=s.replace('какашка','')

print(s)

Программа напечатает


Ах ты ! - сказал маленький мальчик на девочку, которая ему понравилась.


Мы удалили из текста плохое слово, заменив его на пустую строку.


Получение части строки


Извлечь из строки какой-то отрезок(срез), можно указав начальную и конечную позицию подстроки через двоеточие, в квадратных скобках после имени переменной. Позиция начинается с нуля. Поясним на примере.

s='Меня зовут Бонд, Джеймс Бонд'

a=s[0, 4]

print(a)


Напечатает подстроку:


Меня


s='Меня зовут Бонд, Джеймс Бонд'

a=s[10:15]

print(a)


Напечатает подстроку:


Бонд


Предположим у нас есть несколько строк в списке, и какие то из них начинаются на строку 'http'(то есть являются ссылками на веб страницы). Нам нужно найти их в списке, и вывести на экран. Для того чтобы их найти, нам нужно получить часть строки с первого по четвёртый символы, и если это 'http', то вывести эту строку на экран. Составим программу, которая перебирает строки из списка и ищет те, которые начинаются с 'http'.

mas=['Это просто строка','http://golos.io','Ещё одна строка','http://golosboard.ru']

for x in mas:

if(x[0:4]=='http'):

print(x)


В результате работы программы увидим:

http://golos.io

http://golosboard.ru

Поиск подстроки в строке


Для того чтобы определить наличие подстроки в строке, можно использовать функцию find. Работает она так -

n=s.find('строка которую ищем')


Если искомая подстрока имеется в строке,то в переменную n попадёт её позиция в строке, а если подстрока не будет найдена n станет равно -1.


Давайте попробуем определить есть ли в строке адрес электронной почты с mail.ru. Для этого попробуем найти в строке подстроку '@mail.ru'

s='Это обычная строка, а в ней адрес почты [email protected]'

words=s.split(" ")

for w in words:

n=w.find('@mail.ru')

if n!=-1:

print('В строке присутствует емайл: ' +str(w))


Программа выведет на экран:

В строке присутствует емайл: [email protected]