Главная страница
Навигация по странице:

  • Операции, общие для всех типов последовательностей

  • Оператор или функция Описание

  • Оператор Описание

  • Метод Описание

  • справочник по Python. мм isbn 9785932861578 9 785932 861578


    Скачать 4.21 Mb.
    Названиемм isbn 9785932861578 9 785932 861578
    Анкорсправочник по Python
    Дата08.05.2022
    Размер4.21 Mb.
    Формат файлаpdf
    Имя файлаBizli_Python-Podrobnyy-spravochnik.440222.pdf
    ТипСправочник
    #518195
    страница6 из 82
    1   2   3   4   5   6   7   8   9   ...   82
    65
    значение. Методы hex() и fromhex() могут использоваться для обработки чи- сел с плавающей точкой в низкоуровневом двоичном представлении.
    В библиотечных модулях определены некоторые дополнительные число- вые типы. Модуль decimal обеспечивает поддержку обобщенной десятич- ной арифметики. Модуль fractions определяет тип рациональных чисел.
    Подробнее эти модули рассматриваются в главе 14 «Математика».
    Последовательности
    Последовательности
    используются для представления упорядоченных множеств объектов, элементы которых индексируются целыми положи- тельными числами. К этой категории относятся строки, списки и корте- жи. Строки – это последовательности символов, а списки и кортежи – это последовательности произвольных объектов. Строки и кортежи относятся к разряду неизменяемых объектов; списки допускают возможность добав- ления, удаления и изменения своих элементов. Все последовательности поддерживают итерации.
    Операции, общие для всех типов последовательностей
    В табл. 3.2 перечислены операторы и методы, которые могут применять- ся к любым типам последовательностей. Получить доступ к i-му элементу последовательности s можно с помощью оператора индексирования s[i].
    Выбрать фрагмент последовательности можно с помощью оператора среза
    s[i:j]
    или его расширенной версии s[i:j:stride] (эти операторы описываются в главе 4). Длину любой последовательности можно определить с помощью встроенной функции len(s). Отыскать минимальное и максимальное зна- чения в последовательности можно с помощью встроенных функций min(s) и max(s). Однако эти функции могут действовать только с последовательно- стями, содержащими элементы, допускающие возможность упорядочения
    (обычно это строки и числа). Функция sum(s) возвращает сумму элементов последовательности, но она действует только с числовыми данными.
    В табл. 3.3 перечислены дополнительные операторы, которые могут при- табл. 3.3 перечислены дополнительные операторы, которые могут при- табл. 3.3 перечислены дополнительные операторы, которые могут при-
    . 3.3 перечислены дополнительные операторы, которые могут при-
    3.3 перечислены дополнительные операторы, которые могут при- меняться к изменяемым последовательностям, таким как списки.
    Таблица 3.2. Операторы и функции, общие для всех типов
    последовательностей
    Оператор или функция
    Описание
    s[i]
    Возвращает i-й элемент последовательности s
    s[i:j]
    Возвращает срез
    s[i:j:stride]
    Расширенная операция получения среза len(
    s)
    Возвращает число элементов в последовательности s
    min(
    s)
    Возвращает минимальное значение в последователь- ности s
    max(
    s)
    Возвращает максимальное значение в последователь- ности s

    66
    Глава 3. Типы данных и объекты
    Оператор или функция
    Описание
    sum(
    s [,initial])
    Возвращает сумму элементов последовательности s
    all(
    s)
    Проверяет, оцениваются ли все элементы последова- тельности s, как True any(
    s)
    Проверяет, оценивается ли хотя бы один элемент по- следовательности s, как True
    Таблица 3.3. Операторы, применяемые к изменяемым
    последовательностям
    Оператор
    Описание
    s[i] = v
    Присваивает значения элементу s[
    i:j] = t
    Присваивает последовательность срезу s[
    i:j:stride] = t
    Расширенная операция присваивания срезу del
    s[i]
    Удаляет элемент del
    s[i:j]
    Удаляет срез del
    s[i:j:stride]
    Расширенная операция удаления среза
    Списки
    Методы, поддерживаемые списками, перечислены в табл. 3.4. Встроенная функция list(s) преобразует любой итерируемый объект в список. Если аргумент s уже является списком, эта функция создает новый список, ис- пользуя операцию поверхностного копирования. Метод s.append(x) добав- ляет в конец списка новый элемент x. Метод s.index(x) отыскивает в списке первое вхождение элемента x. В случае отсутствия искомого элемента воз- буждается исключение ValueError. Точно так же метод s.remove(x) удаляет из списка первое вхождение элемента x или возбуждает исключение Val- ueError
    , если искомый элемент отсутствует в списке. Метод s.extend(t) рас- ширяет список s, добавляя в конец элементы последовательности t.
    Метод s.sort() сортирует элементы списка и может принимать функцию вычисления ключа и признак сортировки в обратном порядке – оба эти аргумента должен передаваться как именованные аргументы. Функция вычисления ключа применяется к каждому элементу списка перед выпол- нением операции сравнения в процессе сортировки. Эта функция должна принимать единственный элемент и возвращать значение, которое будет использоваться при сравнении. Функцию вычисления ключа удобно ис- пользовать, когда требуется реализовать особые виды сортировки, такие как сортировка списка строк без учета регистра символов. Метод s.reverse() изменяет порядок следования элементов в списке на обратный. Оба метода, sort()
    и reverse(), изменяют сам список и возвращают None.
    Таблица 3.2 (продолжение)

    Встроенные типы представления данных
    67
    Таблица 3.4. Методы списков
    Метод
    Описание
    list(
    s)
    Преобразует объект s в список.
    s.append(
    x)
    Добавляет новый элемент x в конец списка s.
    s.extend(
    t)
    Добавляет новый список t в конец списка s.
    s.count(
    x)
    Определяет количество вхождений x в список s.
    s.index(x [,
    start [,stop]])
    Возвращает наименьшее значение индекса i, где
    s[i] == x
    . Необязательные значения
    start
    и
    stop
    определяют индексы начального и конечного эле-
    ментов диапазона, где выполняется поиск.
    s.insert(
    i,x)
    Вставляет x в элемент с индексом i.
    s.pop([
    i])
    Возвращает i-й элемент и удаляет его из списка.
    Если индекс i не указан, возвращается последний элемент. s.remove(
    x)
    Отыскивает в списке s элемент со значением x и уда- ляет его.
    s.reverse()
    Изменяет порядок следования элементов в списке s на обратный.
    s.sort([
    key [, reverse]])
    Сортирует элементы списка s. key – это функция, которая вычисляет значение ключа. reverse – при- знак сортировки в обратном порядке. Аргументы
    key
    и reverse всегда должны передаваться как име- нованные аргументы.
    Строки
    В языке Python 2 имеется два типа строковых объектов. Байтовые стро-
    Python 2 имеется два типа строковых объектов. Байтовые стро-
    2 имеется два типа строковых объектов. Байтовые стро- ки – это последовательности байтов, содержащих 8-битные данные. Они могут содержать двоичные данные и байты со значением NULL. Строки
    Юникода – это последовательности декодированных символов Юнико- да, которые внутри представлены 16-битными целыми числами. Это по- по- по- зволяет определить до 65 536 различных символов. Стандарт Юникода предусматривает поддержку до 1 миллиона отдельных символов, тем не менее эти дополнительные символы не поддерживаются в языке Python по умолчанию. Они кодируются, как специальные двухсимвольные (4-байто- вые) последовательности, именуемые суррогатной парой;обязанность по их интерпретации возлагается на само приложение. В качестве дополни- тельной возможности язык Python позволяет хранить символы Юникода в виде 32-битных целых чисел. Когда эта возможность включена, Python позволяет представлять полный диапазон значений Юникода от U+000000 до U+110000. Все функции, работающие со строками Юникода, поддержива- ют эту особенность.
    Строки поддерживают методы, перечисленные в табл. 3.5. Все эти методы оперируют экземплярами строк, однако ни один из них в действительно-

    68
    Глава 3. Типы данных и объекты сти не изменяет сами строки, находящиеся в памяти. То есть такие мето- ды, как s.capitalize(), s.center() и s.expandtabs(), никогда не модифицируют строку s и всегда возвращают новую строку. Методы проверки символов, такие как s.isalnum() и s.isupper(), возвращают True или False, если все сим- волы в строке удовлетворяют критерию проверки. Кроме того, эти функ- ции всегда возвращают значение False для строк с нулевой длиной.
    Методы s.find(), s.index(), s.rfind() и s.rindex() используются для поиска подстроки. Все эти методы возвращают целочисленный индекс подстро- ки в строке s. Кроме того, если подстрока не будет найдена, метод find() возвращает -1, тогда как метод index() возбуждает исключение ValueError.
    Метод s.replace() используется для замены подстроки другой подстрокой.
    Важно отметить, что все эти методы работают только с простыми подстро- ками. Для поиска с помощью регулярных выражений используются функ- ции из библиотечного модуля re.
    Методы s.split() и s.rsplit() разбивают строку по указанному разделите- лю, создавая список полей. Методы s.partition() и s.rpartition() отыски- вают подстроку-разделитель и разбивают исходную строку s на три части: текст до разделителя, строка-разделитель и текст после разделителя.
    Многие строковые методы принимают необязательные аргументы start и end, которые должны быть целочисленными значениями, определяющи- ми начальный и конечный индексы в строке s. В большинстве случаев эти аргументы могут принимать отрицательные значения, в этом случае от- счет индексов начинается с конца строки.
    Метод s.translate() обеспечивает улучшенную возможность подстановки символов, например, для быстрого удаления из строки всех управляющих символов. В качестве аргумента он принимает таблицу замены, содержа- щую отображение «один-к-одному» символов оригинальной строки в сим- волы результата. Для 8-битных строк таблица замены представляет собой
    256-символьную строку. Для строк Юникода в качестве таблицы можно использовать любую последовательность s, для которой выражение s[n] возвращает целочисленный код символа или символ Юникода, соответ- ствующий символу Юникода с целочисленным кодом n.
    Методы s.encode() и s.decode() используются для преобразования строковых данных в или из указанной кодировки и принимают название кодировки, например: ‘ascii’, ‘utf-8’ или ‘utf-16’. Чаще всего эти методы используют- ся для преобразования строк Юникода в данные с кодировкой, подходя- щей для операций ввода-вывода и подробнее описываются в главе 9 «Ввод и вывод». Не забывайте, что в Python 3 метод encode() доступен только для строк, а метод decode() – только для данных типа bytes.
    Метод s.format() используется для форматирования строк. Он принимает комбинацию позиционных и именованных аргументов. Символы подста- новки в строке s обозначаются как {item} и замещаются соответствующими аргументами. Ссылки на позиционные аргументы обозначаются как {0},
    {1}
    и т. д. Ссылки на именованные аргументы обозначаются как {name}, где
    name
    – имя аргумента. Например:

    Встроенные типы представления данных
    69
    >>> a = “Вас зовут {0} и вам {age} лет”
    >>> a.format(“Майк”, age=40)
    ‘Вас зовут Майк и вам 40 лет’
    >>>
    Символы подстановки {item} в строках формата могут также включать про- стые индексы и атрибуты поиска. Символ подстановки {item[n]}, где n – это число, замещается n-м элементом последовательности item. Символ под- становки {item[key]}, где key – это строка, замещается элементом словаря
    item[“key”]
    . Символ подстановки {item.attr} замещается значением атрибу- та attr объекта item. Дополнительные подробности о методе format() приво- дятся в разделе «Форматирование строк» главы 4.
    Таблица 3.5. Строковые методы
    Метод
    Описание
    s.capitalize()
    Преобразует первый символ в верхний ре- гистр.
    s.center(width [, pad])
    Центрирует строку в поле шириной width.
    Аргумент pad определяет символ, которым оформляются отступы слева и справа.
    s.count(sub [,start [,end]])
    Подсчитывает число вхождений заданной подстроки sub.
    s.decode([encoding [,errors]])
    Декодирует строку и возвращает строку
    Юникода (только для байтовых строк).
    s.encode([encoding [,errors]])
    Возвращает кодированную версию строки
    (только для строк Юникода).
    s.endswith(suffix [,start [,end]])
    Проверяет, оканчивается ли строка подстро- кой suffix.
    s.expandtabs([tabsize])
    Замещает символы табуляции пробелами.
    s.find(sub [, start [,end]])
    Отыскивает первое вхождение подстроки sub или возвращает -1.
    s.format(*args, **kwargs)
    Форматирует строку s.
    s.index(sub [, start [,end]])
    Отыскивает первое вхождение подстроки sub или возбуждает исключение.
    s.isalnum()
    Проверяет, являются ли все символы в стро- ке алфавитно-цифровыми символами.
    s.isalpha()
    Проверяет, являются ли все символы в стро- ке алфавитными символами.
    s.isdigit()
    Проверяет, являются ли все символы в стро- ке цифровыми символами.
    s.islower()
    Проверяет, являются ли все символы в стро- ке символами нижнего регистра.
    s.isspace()
    Проверяет, являются ли все символы в стро- ке пробельными символами.

    70
    Глава 3. Типы данных и объекты
    Метод
    Описание
    s.istitle()
    Проверяет, являются ли первые символы всех слов символами верхнего регистра.
    s.isupper()
    Проверяет, являются ли все символы в стро- ке символами верхнего регистра.
    s.join(t)
    Объединяет все строки, находящиеся в по- следовательности t, используя s как строку- разделитель.
    s.ljust(width [, fill])
    Выравнивает строку s по левому краю в поле шириной width.
    s.lower()
    Преобразует символы строки в нижний регистр.
    s.lstrip([chrs])
    Удаляет начальные пробельные символы или символы, перечисленные в аргументе
    chrs
    s.partition(sep)
    Разбивает строку по подстроке-разделителю
    sep
    . Возвращает кортеж (head
    ,
    sep
    ,
    tail)
    или
    (
    s, “”,””)
    , если подстрока sep отсутствует в строке s.
    s.replace(old, new [,maxreplace])
    Замещает подстроку old подстрокой new.
    s.rfind(sub [,start [,end]])
    Отыскивает последнее вхождение подстроки.
    s.rindex(sub [,start [,end]])
    Отыскивает последнее вхождение подстроки или возбуждает исключение.
    s.rjust(width [, fill])
    Выравнивает строку s по правому краю в поле шириной width.
    s.rpartition(sep)
    Разбивает строку по подстроке-разделителю
    sep, но поиск выполняется с конца строки.
    s.rsplit([sep [,maxsplit]])
    Разбивает строку, начиная с конца, по подстроке-разделителю sep. Аргумент
    maxsplit
    определяет максимальное число разбиений. Если аргумент maxsplit не ука- зан, идентичен методу split().
    s.rstrip([chrs])
    Удаляет конечные пробельные символы или символы, перечисленные в аргументе chrs.
    s.split([sep [,maxsplit]])
    Разбивает строку по подстроке-разделителю
    sep
    . Аргумент maxsplit определяет макси- мальное число разбиений.
    s.splitlines([keepends])
    Преобразует строку в список строк. Если аргумент keepnds имеет значение 1, завер- шающие символы перевода строки остаются нетронутыми.
    Таблица 3.5 (продолжение)

    Встроенные типы представления данных
    71
    Метод
    Описание
    s.startswith(prefix [,start [,end]])
    Проверяет, начинается ли строка подстро- кой prefix.
    s.strip([chrs])
    Удаляет начальные и конечные пробельные символы или символы, перечисленные в аргументе chrs.
    s.swapcase()
    Приводит символы верхнего регистра к нижнему, и наоборот.
    s.title()
    Возвращает версию строки, в которой пер- вые символы всех слов приведены к верхне- му регистру.
    s.translate(table [,deletechars])
    Выполняет преобразование строки в соот- ветствии с таблицей замены table, удаля-
    ет символы, перечисленные в аргументе
    deletechars
    .
    s.upper()
    Преобразует символы строки в верхний регистр.
    s.zfill(width)
    Дополняет строку нулями слева до достиже- ния ею длины width.
    Объекты xrange()
    Встроенная функция xrange([i,]j [,stride]) создает объект, представляю- щий диапазон целых чисел k, где i <= k < j. Первый индекс i и шаг stride по умолчанию являются необязательными и имеют значения 0 и 1 соот- ветственно. Объект xrange вычисляет свои значения в момент обращения к нему, и хотя он выглядит, как последовательность, тем не менее он имеет ряд ограничений. Например, он не поддерживает ни один из стандартных операторов среза. Область применения объекта xrange ограничена просты- ми циклами.
    Следует отметить, что в Python 3 функция xrange() была переименована в range(). Однако она действует точно так же, как описано выше.
    1   2   3   4   5   6   7   8   9   ...   82


    написать администратору сайта