Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Работа с тестирующей системой

Поиск

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

1. Написать и отладить код программы. Сохранить его в файл.

Обратите внимание: ввод и вывод должны осуществляться строго в указанном формате. Программа не должна печатать никаких дополнительных подсказок.

2. При сдаче задачи выберите язык программирования и сохраненный вами файл.

3. Дождитесь окончания проверки. Если задача не принята — посмотрите ошибки компиляции в протоколе проверки. Если задача успешно скомпилировалась — в протоколе указано количество пройденных тестов.

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

Задачи поиска, замены и удаления подстроки в строке в Python

Строка (str) в Питоне является неизменяемым объектом, поэтому удалять или заменять символы в той же самой строке невозможно.

Вместо этого при помощи операций конкатенации и различных методов можно создать новую строку, которую присвоить той же переменной.

Выполним обход элементов строки в цикле for:

>>> myjob = 'hacker'
>>> for c in myjob:
>>> print(c, end=' ')
>>>
h a c k e r

Проверим факт наличия символа или подстроки при помощи оператора in:

>>> 'k' in myjob
True
>>> 'z' in myjob
False
>>> 'spam' in 'abcspamdef'
True

МЕТОДЫ FIND И RFIND

Метод find находит в данной строке (к которой применяется метод) данную подстроку (которая передается в качестве параметра). Функция возвращает индекс первого вхождения искомой подстроки. Если же подстрока не найдена, то метод возвращает значение -1. Например:

>>> S = 'Hello'

>>> print(S.find('e'))

>>> print(S.find('ll'))

>>> print(S.find('L'))

-1

Аналогично, метод rfind возвращает индекс последнего вхождения данной строки (“поиск справа”).

>>> S = 'Hello'

>>> print(S.find('l'))

>>> print(S.rfind('l'))

Если вызвать метод find с тремя параметрами S.find(T, a, b), то поиск будет осуществляться начиная с символа с номером a до символа с номером b (не включительно). Если указать только два параметра S.find(T, a), то поиск будет осуществляться, начиная с a-го элемента до конца строки. Метод S.find(T, a, b) возвращает индекс в строке S, а не индекс относительно начала среза.

МЕТОД REPLACE

Метод replace заменяет все вхождения одной строки на другую. Формат: S.replace(old, new) — заменить в строке S все вхождения подстроки old на подстроку new. Пример:

>>> 'Hello'.replace('l', 'L')

'HeLLo'

Если методу replace задать еще один параметр: S.replace(old, new, count), то заменены будут не все вхождения, а только не больше, чем первые count из них.

>>> 'Abrakadabra'.replace('a', 'A', 2)

'AbrAkAdabra'

МЕТОД COUNT

Подсчитывает количество вхождений одной строки в другую строку. Простейшая форма вызова S.count(T) возвращает число вхождений строки T внутри строки S. При этом подсчитываются только непересекающиеся вхождения, например:

>>> 'Abracadabra'.count('a')

>>> ('a' * 100000).count('aa')

При указании трех параметров S.count(T, a, b), будет выполнен подсчет числа вхождений строки T в срез S[a:b].

УДАЛЕНИЕ ПОДСТРОКИ

Удаление подстроки осуществляется заменой подстроки на пустую строку:

>>> 'Bob was eating tasty plum'.replace('tasty', '')
'Bob was eating plum'

Экранированные символы в Python

Экранированные последовательности, также называемые escape-последовательности, могут состоять из одного или нескольких символов после обратной косой черты:

\ в самом конце строки Игнорируется, строка продолжается на новой строке
\\ Сам символ обратного слеша (остается один символ \)
\' Апостроф (остается один ‘)
\" Кавычка (остается один символ ")
\n Новая строка (перевод строки)
\r Возврат каретки
\t Горизонтальная табуляция
\u… 16-битовый символ Юникода в 16-ричном представлении
\U… 32-битовый символ Юникода в 32-ричном представлении
\x… 16-ричное значение
\o… 8-ричное значение
\0 Символ Null (не признак конца строки)


Поделиться:


Последнее изменение этой страницы: 2017-02-19; просмотров: 478; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.142.198.108 (0.005 с.)