Справочник от Автор24
Поделись лекцией за скидку на Автор24

Функции и методы строк Python

  • 👀 537 просмотров
  • 📌 511 загрузок
Выбери формат для чтения
Загружаем конспект в формате pdf
Это займет всего пару минут! А пока ты можешь прочитать работу в формате Word 👇
Конспект лекции по дисциплине «Функции и методы строк Python» pdf
Объектно-ориентированный анализ и программирование. Лекция 2019 – 5 . Функции и методы строк Для применения методов строк применяется широко применяемая в программировании,.т.н. «точечная нотация» вида: x.upper() Говоря по другому, перед именем метода указывается имя объекта строки, за которым следует точка. Так как строки в Python являются неизменяемыми объектами, методы строк используются только для получения своего возвращаемого значения, они никак не изменяют объект строки, с которым они связаны. Одними из наиболее употребляемых являются методы строк split() и join(). split() возвращает список подстрок строки; join() берет список строк и объединяет их в одну строку, вставляя исходную строку между каждой парой элементов. Можно сказать что эти методы выполняют противоположные действия, поэтому они удачно взаимодополняют друг друга. Метод split() по умолчанию использует пробел (точнее – любой пробельный символ) в качестве разделителя. Пример 5-1. >>> s="Это просто текст" >>> s.split() ['Это', 'просто', 'текст'] >>> Как видим, результатом метода split() является список. В качестве разделителя можно использовать не только пробел, по и другой символ или последовательность символов. Пример 5-2. >>> s="Это просто текст" >>> s.split(",") ['Это просто текст'] 1 Объектно-ориентированный анализ и программирование. Лекция 2019 – 5 . >>> Здесь в результате мы получили список из 1 элемента. Разбиения строки не произошло, так как исходная строка не содержит символ разделителя ",". Пример 5-3. t="Скажите, это всё, что возможно ?" t.split(",") ['Скажите', ' это всё', ' что возможно ?'] >>> Пример 5-4. >>> x = "Mississippi" >>> x.split("ss") ['Mi', 'i', 'ippi'] Также, в методе split() может быть задан необязательный параметр maxsplit, который задаёт максимальное число разбиваемых элементов + 1. Т.е. если указать параметр maxsplit=1 , то получим 2 элемента списка, если maxsplit=2, то 3 и т.д. В том случае, когда указывается maxsplit=-1 (минус 1), это означает, что нет ограничений на число разделяемых частей. Пример 5-5. >>> a="Сентябрь Октябрь Ноябрь Декабрь" >>> a.split(' ',2) ['Сентябрь', 'Октябрь', 'Ноябрь Декабрь'] # 3 части >>> a.split(' ',3) ['Сентябрь', 'Октябрь', 'Ноябрь', 'Декабрь'] # 4 части >>> a.split(' ',1) ['Сентябрь', 'Октябрь Ноябрь Декабрь'] # 2 части >>> a.split(' ',0) ['Сентябрь Октябрь Ноябрь Декабрь'] # 1 часть >>> a.split(' ',-1) ['Сентябрь', 'Октябрь', 'Ноябрь', 'Декабрь'] # Без ограничений >>> 2 Объектно-ориентированный анализ и программирование. Лекция 2019 – 5 . Чтобы задать второй аргумент, и при этом использовать первый аргумент по умолчанию, можно задать первый параметр None, при этом будет использоваться разделитель по умолчанию (т.е. пробельный символ). Пример 5-6. >>> a="Сентябрь Октябрь Ноябрь Декабрь" >>> a.split(None,2) ['Сентябрь', 'Октябрь', 'Ноябрь Декабрь'] В том случае, когда требуется ввести список чисел с клавиатуры, можно использовать метод split() в такой комбинации с другими методами: Пример 5-7. >>> 1 2 >>> [1, A = list(map(int, input().split())) 3 4 A 2, 3, 4] или, второй вариант, Пример 5-8. >>> 1 2 >>> [1, A = [int(s) for s in input().split()] 3 4 A 2, 3, 4] Метод join() позволяет объединять строки (список строк) и получить в результате одну строку. Пример 5-9. >>> " ".join(["join", "вставляет", "пробелы", "между", "элементами"]) 'join вставляет пробелы между элементами' Пример 5-10. 3 Объектно-ориентированный анализ и программирование. Лекция 2019 – 5 . A = ['red', 'green', 'blue'] print(' '.join(A)) print(''.join(A)) print('***'.join(A)) Получим: red green blue redgreenblue red***green***blue Для объединения элементов списка может использоваться даже пустая строка: >>> "".join(["Separated", "by", "nothing"]) 'Separatedbynothing' Если список состоит из чисел, а не строк, то применение метода join() может привести к ошибке (исключению) вида TypeError. >>> A=[1,2,3,4] >>> print(' '.join(A)) Traceback (most recent call last): File "", line 1, in print(' '.join(A)) TypeError: sequence item 0: expected str instance, int found >>> Чтобы избежать такой ошибки, нужно использовать преобразование в строку функцией str(), комбинируя с методом map() >>> A=[1,2,3,4] >>> print(' '.join(map(str, A))) 1 2 3 4 >>> 4 Объектно-ориентированный анализ и программирование. Лекция 2019 – 5 . Преобразование строк в числа Вводимые символы (будь то с клавиатуры или из текстового файла) представляются в строковом виде. Чтобы преобразовать их во внутреннее числовое представление, используются стандартные функции : int() – для преобразования в целое число; float() – для преобразования в вещественное число. >>> float('123.456') 123.456 Если преобразование невозможно, произойдёт исключение типа ValueError. >>> float('abc') Traceback (most recent call last): File "", line 1, in float('abc') ValueError: could not convert string to float: 'abc' >>> Можно преобразовывать числа не только в привычной десятичной системе счисления, но и в других системах (двоичной, шестнадцатеричной и т.д.). Пример 5-11. print(int('2345',8)) print(int('AC12',16)) Получим десятичные значения 1253 44050 5 Объектно-ориентированный анализ и программирование. Лекция 2019 – 5 . Удаление лишних пробелов из строки Здесь полезны следующие методы: strip() - удаляет все пробелы в начале и в конце строки; lstrip() - удаляет все пробелы в начале строки; rstrip() - удаляет все пробелы в конце строки. Символы табуляции также относятся к удаляемым данными методами. Пример 5-12. >>> x = " Hello, World\t\t " >>> x.strip() 'Hello, World' Также можно изменить состав символов, удаляемых strip, rstrip и lstrip, передавая константу с удаляемыми символами в дополнительном параметре. Пример 5-13. x = "www.python.org" print(x) print(x.strip("w")) # Отсекает все буквы w print(x.strip("gor")) # Отсекает все буквы g, o и r print(x.strip(".gorw")) # Отсекает все точки, буквы g, o, r и w print(x.lstrip(".gorw")) # Отсекает СЛЕВА все точки, буквы g, o, r и w Результат: www.python.org .python.org www.python. python python.org 6 Объектно-ориентированный анализ и программирование. Лекция 2019 – 5 . Изменение строк Строки являются неизменяемыми, но объекты строк поддерживают ряд методов, которые возвращают новую строку — модифицированную версию исходной строки. Метод replace() заменяет все вхождения одной строки на другую. Формат: s.replace(old, new) — заменить в строке s все вхождения подстроки old на подстроку new. Пример 5-14. >>> s="Всё плохо, всё очень плохо" >>> s.replace("плохо","хорошо") 'Всё хорошо, всё очень хорошо' Также можно использовать необязательный третий параметр, задающий число замен. Пример 5-14. >>> s="Всё плохо, всё очень плохо" >>> s.replace("плохо","хорошо",1) 'Всё хорошо, всё очень плохо' >>> Наиболее часто применяемые функции и методы строк приведены в таблице 5-1. Таблица 5.1. Распространённые операции со строками Операция Описание + Объединяет две строки * Дублирует строку upper Пример x = "hello " + "world" x = " " * 20 Преобразует строку к верхне- x.upper() му регистру lower Преобразует строку к нижнему x.lower() регистру title Преобразует первую букву 7 h x.title() Объектно-ориентированный анализ и программирование. Лекция 2019 – 5 . каждого слова в строке к верхнему регистру find, index rfind, rindex Ищет заданную подстроку в x.find(y) строке x.index(y) Ищет заданную подстроку в x.rfind(y) строке, начиная с конца строки startswith, endswith x.rindex(y) Проверяет начало или конец x.startswith(y) строки на совпадение с задан- x.endswith(y) ной подстрокой replace Заменяет подстроку новой x.replace(y, z) строкой strip, rstrip, Удаляет пропуски или другие x.strip() символы в концах строки lstrip encode Преобразует строку Юникода x.encode("utf_8") в объект bytes Для работы со строками также могут применяться такие эффективные инструменты, как регулярные выражения (RegEx), которые будут рассматриваться в дальнейшем. Словари (dict) Словари в Python – это неупорядоченные коллекции произвольных объектов с доступом по ключу. Их также называют ассоциативными массивами или хештаблицами. Для задания словарей используют фигурные скобки. Таким образом, словарь представляет собой набор пар Ключ - Значение В словарях в качестве ключей могут использоваться только неизменяемые объекты (как строки), а в качестве значений можно использовать как неизменяемые, так 8 Объектно-ориентированный анализ и программирование. Лекция 2019 – 5 . и изменяемые объекты. Точнее говоря, в качестве ключей должны использоваться только простые объекты. Создать словарь можно несколькими способами. 1) В качестве литерала d = {'name':'Иван', 'surname':'Петров','age':20} 2) Через функцию dict() >>> dd = dict(lang="Python",subj="Programming") >>> dd {'lang': 'Python', 'subj': 'Programming'} >>> print(dd['lang']) Python Если сейчас задать print(dd[0]) то мы получим ошибку вида KeyError, так как к элементам словаря можно обращаться только по значениям ключей, а не по индексам. 3) С помощью метода (функции) fromkeys() >>> d2 = dict.fromkeys(['a','b','c'],2) >>> d2 {'a': 2, 'b': 2, 'c': 2} 4) С помощью генераторов, аналогичных генераторам списков. >>> d = {a: a ** 2 for a in range(7)} >>> d {0: 0, 1: 1, 2: 4, 3: 9, 4: 16, 5: 25, 6: 36} 9 Объектно-ориентированный анализ и программирование. Лекция 2019 – 5 . Пример 5-15. # Пример 5-15 Работа со словарём ab = { 'Маша' : 'masha@gmail.com', 'Миша' : 'mike@yandex.ru', 'Игорь' : 'igor@mail.ru', 'Даша' : 'dasha@bk.ru' } print("Адрес Маши:", ab['Маша']) # Удаление пары ключ-значение del ab['Игорь'] print('\nВ адресной книге {0} контактов\n'.format(len(ab))) for name, address in ab.items(): print('Контакт {0} с адресом {1}'.format(name, address)) # Добавление пары ключ-значение ab['Антон'] = 'anton@rambler.ru' if 'Антон' in ab: print("\nАдрес Антона:", ab['Антон']) Вывод. Адрес Маши: masha@gmail.com В адресной книге 3 контактов Контакт Маша с адресом masha@gmail.com Контакт Миша с адресом mike@yandex.ru Контакт Даша с адресом dasha@bk.ru Адрес Антона: anton@rambler.ru Методы словарей dict.clear() - очищает словарь. dict.copy() - возвращает копию словаря. classmethod dict.fromkeys(seq[, value]) - создает словарь с ключами из seq и значением value (по умолчанию None). dict.get(key[, default]) - возвращает значение ключа, но если его нет, не исключение, а возвращает default (по умолчанию None). dict.items() - возвращает пары (ключ, значение). dict.keys() - возвращает ключи в словаре. dict.pop(key[, default]) - удаляет ключ и возвращает значение. Если ключа нет, возвращает default (по умолчанию бросает исключение). 10 Объектно-ориентированный анализ и программирование. Лекция 2019 – 5 . dict.popitem() - удаляет и возвращает пару (ключ, значение). Если словарь пуст, возвращает исключение KeyError. Следует помнить, что словари неупорядочены. dict.setdefault(key[, default]) - возвращает значение ключа, но если его нет, не бросает исключение, а создаёт ключ с значением default (по умолчанию None). dict.update([other]) - обновляет словарь, добавляя пары (ключ, значение) из other. Существующие ключи перезаписываются. Возвращает None (не новый словарь!). dict.values() - возвращает значения в словаре. Пример 5-16. # Пример 5-16 Методы словаря ab = { 'Маша' : 'masha@gmail.com', 'Миша' : 'mike@yandex.ru', 'Игорь' : 'igor@mail.ru', 'Даша' : 'dasha@bk.ru' } print(dict.keys(ab)) print(dict.values(ab)) print(dict.items(ab)) Вывод dict_keys(['Маша', 'Миша', 'Игорь', 'Даша']) dict_values(['masha@gmail.com', 'mike@yandex.ru', 'igor@mail.ru', 'dasha@bk.ru']) dict_items([('Маша', 'masha@gmail.com'), ('Миша', 'mike@yandex.ru'), ('Игорь', 'igor@mail.ru'), ('Даша', 'dasha@bk.ru')]) >>> 11
«Функции и методы строк Python» 👇
Готовые курсовые работы и рефераты
Купить от 250 ₽
Решение задач от ИИ за 2 минуты
Решить задачу
Помощь с рефератом от нейросети
Написать ИИ

Тебе могут подойти лекции

Смотреть все 588 лекций
Все самое важное и интересное в Telegram

Все сервисы Справочника в твоем телефоне! Просто напиши Боту, что ты ищешь и он быстро найдет нужную статью, лекцию или пособие для тебя!

Перейти в Telegram Bot