Функции для работы с числами 


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



ЗНАЕТЕ ЛИ ВЫ?

Функции для работы с числами



При работе с числами могут быть использованы также следующие встроенные функции (см. подраздел 8.1. В скобках указан соответствующий им специальный метод:

· abs(x) – возвращает абсолютное значение параметра x
(x.__abs__()):

>>> abs (-7)
7,

для комплексных чисел, заданных как a+bj, функция считается по формуле (a**2+b**2)**(1/2):

>>> abs (4+3j)
5.0;

· divmod(x,y) – имеет два параметра: x задает делимое, y – делитель, возвращает кортеж (см. подраздел 2.1 лабораторной работы №2), элементами которого являются соответственно результаты операций // и % над параметрами
x.__divmod__(y):

>>> divmod (17,3)
(5, 2);

· pow(x,y) – возвращает результат возведения первого параметра в степень, заданную вторым параметром (функция аналогична операции **)
(x.__pow__(y) или x.__rpow__(y)):

>>> pow (3,4)
81;
>>> (3).__rpow__(4)
64;

· round(x[, n]) – возвращает число с плавающей точкой, округленное до n цифр после десятичной точки. Если аргумент n опущен или равен 0 – возвращает целое число. Для встроенных типов, поддерживающих функцию round(), значения округляются до числа, ближайшего к 10 в степени минус n. Если два значения одинаково близки, то округление идет в направлении четного числа
(x.__round__(n) или x.__rround__(n)):

>>> round (1.333,2)
1.33
>>> round (2.5)
2
>>> round (3.5)
4.

Отметим, что поведение функции round() для чисел с плавающей точкой может вызвать удивление: например:

>>> round (2.675, 2)

дает

2.67

вместо ожидаемых 2.68. Это связано с тем обстоятельством, что большинство десятичных дробей не может быть точно представлено в форме числа с плавающей точкой.
Помимо встроенных функций при работе с целыми числами можно воспользоваться текже следующими методами класса int:

· int.bit_length() – возвращает число битов, необходимых для представления целого числа в двоичной форме, исключая знак и начальные нули:

>>> n=2014
>>> n.bit_length()
11.

Оглавление

Побитовые операции над целыми числами

Python поддерживает также побитовые операции над целыми числами. Пусть операнды a и b имеют следующие значения:

>>> a=60 # 0b00111100
>>> b=13 # 0b00001101

Для работы с этими операндами могут быть использованы следующие операторы (в скобках указаны соответствующие им специальные методы):

· & – выполняет побитовую операцию И
(a.__and__(b) и b.__rand__(a)):

>>> a&b
12 # 0b00001100;

· | – выполняет побитовую операцию ИЛИ
(a.__or__(b) и b.__ror__(a)):

>>> a|b
61 # 0b00111101;

· ^ – выполняет побитовую операцию ИСКЛЮЧАЮЩЕЕ ИЛИ (XOR)
(a.__xor__(b) и b.__rxor__(a)):

>>> a^b
49 # 0b00110001;

· ~ – выполняет унарную операцию побитового инвертирования
(a.__invert__():

>>> ~a
-61 # 0b110000011;

· >> – выполняет сдвиг левого операнда вправо на число разрядов, заданное правым опрерандом
(a.__rshift__(b) и b.__rrshift__(a)):

>>> a>>2
15 # 0b00001111;

· << – выполняет сдвиг левого операнда влево на число разрядов, заданное правым опрерандом
(a.__lshift__(b) и b.__rlshift__(a)):

>>> a<<2
240 # 0b11110000.

Оглавление

Логический тип

Данные логического типа являются подклассом целых чисел bool(int) и могут принимать одно из двух значений: истина (англ. true) или ложь (англ. false). Язык Python имеют константы True и False, которые используются для непосредственного присваивания логических значений в виде литералов (все встроенные константы языка Python приведены в подразделе 8.2). Другим вариантом задания логических значений является использование конструктора класса – встроенной фукнкции bool([x]) (см. подраздел 8.1).
Результатом вычисления выражений также может быть логическое значение. В определенных местах программы, например, в операторе if, интерпретатор языка ожидает, что результатом вычисления выражения будет логическое значение. Такие места программы называют логическим контекстом. Практически всякое выражение можно использовать в логическом контексте. Python в любом случае попытается осуществить его проверку на истинность, используя следующие правила:

· любое число, не равное 0, непустая строка, непустой объект и NotImplemented – принимают значение True;

· числа, равные 0 (0 и 0.0), пустая строка, пустые объекты и значение None – принимают значение False;

· операции сравнения применяются к структурам данных рекурсивно;

· операции сравнения возвращают True или False;

· логические операторы and и or возвращают истинный или ложный объект-операнд:

§ x or y – если x имеет значение False, тогда y, иначе x (в этом случае y не вычисляется);

§ x and y – если x имеет значение False, тогда x (y не вычисляется), иначе y;

§ not x – если x имеет значение False, тогда True, иначе False.

Логические операции приведены в порядке возрастания приоритета:

>>> True and True or False and False
True
>>> True and (True or False) and False
False
>>> not True or True
True
>>> not (False and False)
False.

Операция not имеет более низкий приоритет, чем любая нелогическая операция, например, not a==b интерпретируется как not (a==b).

Оглавление

Проверка типа объекта

В подразделе 3.2 приведено описание и использование функции type(), которая выполняет вывод типа (класса) указанного объекта. Иногда возникает необходимость не выводить значение типа объекта, а определить, принадленжит ли данный объект определенному типу. Для этого можно использовать встроенную функцию isinstance() (см. подраздел 8.1), которая имеет два аргумента – в первом указывается проверяемый тип (значение), во втором – тип (класс). Функция isinstance() возвращает значение True, если объект имеет указанный тип, и значение False – в противном случае:

>>> isinstance (1.0, int)
False.
>>> isinstance (int (1.0), int)
True.

Из результатов примера видно, что значение 1.0 не является литералом целого числа, а после произведенного преобразования с помощью конструктора int() – уже имеет целочисленный тип.

Оглавление

Ввод и вывод данных

В примерах при описании функционирования среды разработки языка Python были использованы встроенные функции print() и input(). Сейчас приведем их более детальное описание.

Оглавление

Функция print()

Функция print(value,..., sep=' ', end='\n', file=sys.stdout, flush=False) осуществляет вывод данных objects в потоковый файл. При этом:

· все неименованные аргументы value,... преобразуются в строки;

· между ними вставляются строки-разделители, заданные именованым аргументом sep (по умолчанию – пробелы, т.е. sep=' ');

· в конце вывода добавляется строка завершения, заданная именованым аргументом end, (по умолчанию – символ новой строки, т.е. end='\n');

· файл вывода задается с помощью именованого аргумента file (по умолчанию file='sys.stdout'). Он должен иметь метод write(string);

· необходимость буферизации обычно определяется файлом, но если именованый аргумент flush (введенный в версии Python 3.3), равен True, то принудительно выполняется потоковый режим (по умолчанию flush=False).

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

x=25
y=2.5E-2
print ('x',x)
print ('y',y)
>>> ================================ RESTART ================================
x 25
y 0.025
>>>

и с их использованием:

x=25
y=2.5E-2
print ('x',x,sep= '=',end= ' ')
print ('y',y,sep= '=',end= '')
>>> ================================ RESTART ================================
x=25 y=0.025

 

Оглавление

Функция input()

Функция input([prompt]) – при наличии необязательного аргумента prompt выводит его в стандантный поток вывода (англ. standard output). Затем считывет данные из стандартного устройства ввода (англ. standard intput) и преобразует их в строки, убирая замыкающие символы новой строки (англ. trailing newline).
Отметим, что функция input() объединила в себе две функции, которые используются во второй версии языка Python – собственно функцию input() и функцию raw_input(), которая не поддерживается версиями 3.x языка Python.
В примере показан ввод двоичного целого числа и числа с плавающей точкой:

x= int (input ("Введите двоичное число "),2)
y= float (input ("Введите число с плавающей точкой "))

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

Оглавление

Операторы

Оператор присваивания

Оператор присваивания имеет следующую форму: v=expr, где

· v – имя переменной;

· expr – выражение, в общем случае представляющее собой совокупность литералов разных типов, переменных, вызовов функций, соединенных между собой знаками операций.

Переменные в языке Python не требуют явного объявления и для них не указывается изначально тип данных. Python относится к языкам программирования с динамической типизацией переменных. Переменные появляются, когда им присваивают значение, и автоматически уничтожаются при выходе из области видимости. Поэтому при работе оператора присваивания переменная получает не только значение выражения, но и его тип.
Имена (идентификаторы) (англ. names, identifiers) переменных языка Python (), так же как и во многих других языках программирования (Pascal, C, Java, JavaScript и др.) могут содержать только латинские буквы, цифры и знаки подчеркивания и начинаться или с буквы, или со знака подчеркивания. Отметим, что в качестве идентификаторов не следует использовать зарезервированные (ключевые) слова (англ. keywords) языка Python. Список ключевых слов можно получить, например, с помощью встроенной системы помощи (см. подраздел 1.2). Имена в языке Python зависят от регистра и не имеют ограничений по числу символов.
При выполнении оператора присваивания интерпретатором осуществляются следующие действия:

· вычисляется значение выражения, указанного справа от знака равенства, и определяется тип выражения;

· полученное значение заносится в свободные ячейки памяти;

· создается переменная, указанная слева от знака равенства, которая, являясь ссылкой на данные (объект), занесенные в память, получает значение и тип этих данных, например:

>>> n=7
>>> n
7
>>> type (n)
<class 'int'>.

При выполнении оператора del указанная переменная перестает ссылаться на данные в памяти и, таким образом, теряет свое значение:

>>> del n
>>> n
NameError: name 'n' is not defined

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

>>> s1= 'some value'
>>> s2=s1
>>> s2
'some value',

и при удалении первой ссылки вторая сохраняет свое значение:

>>> del s1
>>> s1
NameError: name 's1' is not defined
>>> s2
'some value'.

Python допускает множественное присвоение:

>>> s5=s4=s3=s2
>>> s5
'some value'.

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

>>> n=7
>>> id (n)
505894400
>>> n=25
>>> id (n)
505894688.

происходит следующее – прежнее значение не изменится (оно будет в последствии автоматически удалено системой сборки мусора), а новое значение будет занесено в новую область памяти и теперь на него будет указывать ссылка n, что подтверждает встроенная функция id() (см. подраздел 8.1), которая показывает, что значение адреса переменной n стало другим. Т.е. происходит не изменение значения объекта, а создание нового объекта с новыми данными и адресом.
Оператор присваивания имеет несколько расширенных вариантов, приведенных в табл. 1.

Таблица 1 – Расширенные формы оператора присваивания

Оператор Пример использования Эквивалентная форма Соответствующий метод
+= x+=y x=x+y x.__iadd__(y)
-= x-=y x=x-y x.__isub__(y)
*= x*=y x=x*y x.__imul__(y)
/= x/=y x=x/y x.__itruediv__(y)
//= x//=y x=x//y x.__ifloordiv__(y)
%= x%=y x=x%y x.__imod__(y)
**= x**=y x=x**y x.__ipow__(y)
<<= x<<=y x=x<<y x.__ilshift__(y)
>>= x>>=y x=x>>y x.__irshift__(y)
&= x&=y x=x&y x.__iand__(y)
|= x|=y x=x|y x.__ior__(y)
^= x^=y x=x^y x.__ixor__(y)

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

>>> z1=5; z2=3.7; z3=1.5e-1.

Также разрешается располагать оператор на нескольких строках, разделяя отдельные части оператора символами обратного слэша:

>>> x=z1+ \
z2+ \
z3 \
>>> x
8.85.


Оглавление

Условный оператор

Условный оператор имеет следующую форму:

if <условие>:
<блок>

В условии указывается выражение, имеющее логический тип. Блок представляет собой одну или несколько строк программы (операторов), которые задаются с отступом. Визуальный блок в языке Python является логическим блоком и соответствует конструкции {...} в JavaScript и других C-подобных языках. Если условие имеет значение True, то выполняются строки, входящие в блок. В противном случае блок не выполняется, а управление передается следующей после условного оператора строке.
Операторы сравнения, когорые могут использоваться в условии, приведены в табл. 2.

Таблица 2 – Операторы сравнения

Оператор сравнения Выполняемые действия Метод, соответствующий оператору
x==y если операнды x и y равны, условие получает значение True, иначе – False x.__eq__(y)
x!=y если операнды x и y не равны, условие получает значение True, иначе – False x.__ne__(y)
x>y если значение x больше значения y, условие получает значение True, иначе – False x.__gt__(y)
x>=y если значение x больше значения y или равно ему, условие получает значение True, иначе – False (x.__ge__(y))
x<y если значение x меньше значения y, условие получает значение True, иначе – False x.__lt__(y)
x<=y если значение x меньше значения y или равно ему, условие получает значение True, иначе – False x.__le__(y)

Отметим, что в версиях Python 2.x для сравнения использовались: оператор сравнения <> (эвивалентный оператору!=), встроенная функция cmp() и соответствующий ей метод __cmp__(), которые убраны в версиях 3.x.
При использовании оператора сравнения вызывается соответствующий ему метод, определенный для типа (класса) сравнивающихся объектов. Поэтому использование оператора сравнения:

>>> x=7
>>> x==4
False
>>> x==7
True

равноценно вызову требуемого метода:

>>> x.__eq__(4)
False
>>> x.__eq__(7)
True.

Благодаря этому для одного и того же оператора сравнения могут выполняться разные действия в зависимости от типа его операндов.
Пример использования условного оператора:

>>> x= input ('Введите число')
Введите число 12
>>> if int (x)>=0:
print ('Число положительное')

Число положительное.

После ввода первой строки программы и нажатия Enter на экран выводится сообщение: Введите число. После ввода числа (12) и ввода первой строки условного оператора среда разработки делает отступ для ввода блока. Вводится первая строка блока и дважды нажимается Enter (признаком завершения блока является пустая строка). На экране появляется результат работы этого фрагмента программы: Число положительное.
Python поддерживает множественное использование операций сравнения:

>>> a,b,c=2,3,4
>>> if a<b<c: #a<b and b<c
print ('OK')

OK.

В другой форме условного оператора для задания альтернативного варианта добавляется служебное слово else:

if <условие>:
<блок1>
else:
<блок2>.
В зависимости от значения условия будет выполняться или блок1 (True), или блок2 (False). Следующий пример запускается в сценарном режиме:

x= input ('Введите число')
if int (x)>=0:
print ('Число положительное')
else:
print ('Число отрицательное').

После ввода этого фрагмента программы в окне редактирования выбирается режим Run module и программа запускается на выполнение. Результат работы программы помещается в окно итерактивного режима:

>>> ================================ RESTART ================================
>>>
Введите число -1
Число отрицательное.

В языке Python при задании альтернативных значений вместо фрагмента программы, занимающего четыре строки:

>>> if X:
A=Y
>>> else:
A=Z
можно применить более короткий вариант, связанный с использованием трехместного выражения if/else:

>>> A=Y if X else Z.

Python поддерживает также третью форму условного оператора, позволяющую задать несколько альтернативных вариантов:

if <условие1>:
<блок1>
elif <условие2>:
<блок2>
...
elif <условиеN>:
<блокN>
else:
<блокN+1>.
В качестве примера рассмотрим задачу определения оценки по полученным баллам:

points= input ('Введите число баллов')
points= int (points)
if points>80:
mark= 'Відмінно'
elif points>66:
mark= 'Добре'
elif points>50:
mark= 'Задовільно'
else:
mark= 'Незадовільно'
print (mark)
>>> ================================ RESTART ================================
>>>
Введите число баллов 80
Добре.

 

Оглавление

Оператор цикла while

Оператор цикла while имеет следующую форму:

while <условие>:
<блок>.

Пока условие имеет логическое значение True, будут циклически выполняться действия, указанные в блоке. Когда условие примет заначение False, управление будет передано оператору, следующему за блоком. Если условие изначально не выполняется, то действия, предусмотренные блоком, не будут выполнены вовсе.
В качестве примера использования оператора цикла while приведем программу нахождения чисел Фибоначчи. Эти числа характеризуются тем, что каждое следующее число Фибоначчи равно сумме двух предыдущих. Программа находит и выводит на экран все числа Фибоначчи, не превышающие 50:

>>> # Определение чисел Фибоначчи
>>> a,b=0,1
>>> while b<=50:
print (b,end= ' ')
a,b=b,a+b
1 1 2 3 5 8 13 21 34.

В теле оператора while также могут быть использованы операторы break и continue:

· break – выполняет внеочередное завершение цикла;

· continue – выполняет внеочередное завершение текущей итерации:

>>> с=0
>>> while True:
с+=1
if с>9:
break
if c==3 or c==5:
continue
print (c,end= ' ')
1 2 4 6 7 8 9.

 

Оглавление

Оператор pass

Оператор pass не делает ничего. Он может использоваться, когда синтаксически требуется присутствие оператора, но от программы не требуется действий. Например:

>>> while True:
pass # Ожидание прерывания c клавиатуры (Ctrl+C).

После нажатия класиши Ctrl+C режим ожидания заканчивается в выводом:

KeyboardInterrupt.

Этот оператор часто используется для создания минималистичных классов, к примеру исключений (exceptions), или для игнорирования нежелательных исключений.

Оглавление

Приоритет операций

В таблице 3 приведены операции в порядке возрастания их приоритета. Для унарных операций x обозначает операнд.

Таблица 3 – Приоритет операций

Операция Описание
or логическое ИЛИ
and логическое И
not x логическое НЕ
in, not in проверка принадлежности
is, is not проверка идентичности
<,<=,>,>=,!=,== операторы сравнения
| побитовое ИЛИ
^ побитовое исключающее ИЛИ
& побитовое И
<<, >> побитовые сдвиги
+, - сложение и вычитание
*, /, //, % *, /, % умножение, деление, целочисленное деление, остаток
+x, -x унарный плюс и смена знака
~x побитовое НЕ
** возведение в степень
x.атрибут ссылка на атрибут
x[индекс] взятие элемента по индексу
x[от:до] выделение среза (от и до)
f(аргумент,...) вызов функции
(...) скобки или кортеж
[... ] список или списковое включение
{кл:зн,...} словарь пар ключ-значение

Порядок вычислений операндов определяется такими правилами:

· операнд слева вычисляется раньше операнда справа во всех бинарных операциях, кроме возведения в степень;

· цепочка сравнений вида a < b < c... y < z фактически равносильна: (а < b) and (b < c) and... and (y < z);

· перед фактическим выполнением операции вычисляются нужные для нее операнды. В большинстве бинарных операций предварительно вычисляются оба операнда (сначала левый), но операции or и and, а также цепочки сравнений вычисляют такое количество операндов, которое достаточно для получения результата. В невычисленной части выражения в таком случае могут даже быть неопределенные имена. Это важно учитывать, если используются функции с побочными эффектами;

· аргументы функций, выражения для списков, кортежей, словарей и т.п. вычисляются слева-направо, в порядке следования в выражении.

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

Оглавление

Встроенные идентификаторы

Встроенные функции

В предыдущих разделах были описаны и использованы некоторые встроенные функции языка Python. Встроенные (buit-in) означает, что их можно непосредственно использовать в программе без подключения дополнительных модулей. В табл. 4 перечислены в алфавитном порядке имена всех встроенных функций языка Python 3.4. Ниже приводится их описание. Встроенные функции, которые были использованы в лабораторных работах, имеют соответствующие ссылки.

Таблица 4 – Встроенные функции языка Python 3.4

Built-in functions

abs() dict() help() min() setattr()
all() dir() hex() next() slice()
any() divmod() id() object() sorted()
ascii() enumerate() input() oct() staticmethod()
bin() eval() int() open() str()
bool() exec() isinstance() ord() sum()
bytearray() filter() issubclass() pow() super()
bytes() float() iter() print() tuple()
callable() format() len() property() type()
chr() frozenset() list() range() vars()
classmethod() getattr() locals() repr() zip()
compile() globals() map() reversed() __import__()
complex() hasattr() max() round()  
delattr() hash() memoryview() set()  

Оглавление

· abs(x) – возвращает абсолютное значение числа (см. подраздел 4.1.5);

· all(iterable) – возвращает значение True, если все значения итерабельного объекта имеют значение True или итерабельный объект пуст (см. подраздел 2.1 лаб. раб. №3);

· any(iterable) – возвращает значение True, если хотя бы одно значение итерабельного объекта равно True. Если итерабельный объект пуст, возвращает False (см. подраздел 2.1 лаб. раб. №3);

· ascii(object) – так же, как функция repr(), возвращает строку, содержащую печатаемое представление объекта, но в отличие от repr() не возвращает изображения не ASCII символов, представляя их с помощью ESC-последовательностей \x, \u или \U:

>>> repr ('ы')
"'ы'"
>>> ascii ('ы')
"'\\u044b'";


· bin(x) – преобразует целое число в двоичную строку. Если x не является целым числом, т.е. не является объектом типа int, то для него должен быть определен метод __index__() для преобразования в int (см. подраздел 4.1.1);

· bool([x]) – преобразует значение к логическому типу, используя стандартную процедуру определения истинности (см. подраздел 4.2 лаб. раб. №1). Если x ложно или опущено, – возвращает False, в остальных случаях возвращает True;

· bytearray([source[, encoding[, errors]]]) – возвращает новый объект типа bytearray (см. подраздел 3.2 лаб. раб. №4);

· bytes([source[, encoding[, errors]]]) – возвращает новый объект типа bytes (см. подраздел 3.1 лаб. раб. №4);

· callable(object) – возвращает True, если аргумент можно вызвать по имени, и False – если нет (см. подраздел 1.1 лаб. раб. №6). Если возвращается значение True, остается возможность неудачного вызова, но если возвращается False, вызов никогда не будет успешным. Отметим, что экземпляры классов являются вызываемые (англ. callable), если их классы имеют метод __call__();

· chr(code) – возвращает строку из одного символа, который соответствует числовому значению аргумента, заданному в ASCII или Unicode коде (см. подраздел 2.5 лаб. раб. №2). Например, chr(97) возвратит строку 'a'. Зта функция является обратной по отношению к функции ord(). (см. подраздел 2.5 лаб. раб.ж №2). Допустимый диапазон значений составляет от 0 др 1114111 (0x10FFFF). При превышении диапазона будет вызвано исключение ValueError;

· classmethod(function) – возвращает для функции, указанной аргументом, метод класса;

Оглавление

· compile(source, filename, mode, flags=0, dont_inherit=False, optimize=-1) – компилирует исходный код, указанный аргументом source, в код или объект AST (см. подрездел 4.1 лаб. раб. №6). Объекты кода могут быть выполнены с помощью функций exec() или eval();

· complex([real[, imag]]) – создает комплексное число (см. подраздел 4.1.3);

· delattr(object, name) аргументами являются объект и строка. Строка должна быть именем одного из атрибутов объекта. Функция удаляет указанный атрибут объекта, например, delattr(x, 'foobar') эквивалентно del x.foobar;

· dict(**kwarg), dict(mapping, **kwarg)
dict(iterable, **kwarg) – созда e т новый словарь (см. подраздел 2.1 лаб. раб. №5);

· dir([object]) – если оргумент не указан, возвращает список имен текущей области видимости. Если аргумент указан – возвращает список имен (атрибутов) объекта (см. подраздел 1.2 лаб. раб. №4 и подраздел 2.4 лаб. раб. №6);

· divmod(a, b) – возращает частное и остаток от деления двух не комелексных числа (см. подраздел 4.1.5);

· enumerate(iterable, start=0) – возвращает пронумерованный (англ. enumerate) объект. В качестве аргумента iterable может быть указаны последоваетльность, итерабельный объект или любой другой объект, поддерживающий итерацию. Например, если первым аргументом функции enumerate() укажем список (см. раздел 2 лаб. раб. №3) времен года, а нумерацию начнем с 1 (необязательный второй аргумент), то функция возвратит пронумерованный список времен года в виде кортежей (см. раздел 1 лаб. раб. №4):

>>> seasons=[ 'зима', 'весна', 'лето', 'осень', ]
>>> list (enumerate (seasons, start=1))
[(1, 'зима'), (2, 'весна'), (3, 'лето'), (4, 'осень')];


· eval(expression, globals=None, locals=None) – осуществляет грамматический разбор выражения и вычисляет его значение, аргументами являются: строка expression, задающая выражение, и необязательные словари globals и locals, указывающие пространства имен соответственно глобальных и локальных переменных (см. подрездел 4.3 лаб. раб. №6);

· exec(object[, globals[, locals]]) – эта функция поддерживает динамическое выполнение кода языка Python. Аргумент object должен быть строкой или объектом типа code (см. подраздел 4.2 лаб. раб. №6);

· filter(function, iterable) – возвращает итератор, созданный из элементов итерабельного типа, заданных аргументом iterable, путем их фильтрации с помощью функции function (см. подраздел 1.5.1 лаб. раб. №6);

Оглавление

· float([x]) – преобразует строку или число в число с плавающей точкой (см. подраздел 4.1.2);

· format(value[, format_spec]) – преобразует значение value в форматированное представление, управляемое спецификацией формата (format_spec). Интерпретация формата зависит от типа значения. Однако имеется стандартный синтаксис форматирования, который может быть использован большинством встроенных типов данных;

· frozenset([iterable]) – возвращает неизменяемое множество, аргументом является итерабельный объект (см. раздел 1 лаб. раб. №5);

· getattr(object, name[, default]) – возвращает значение атрибута объекта object, имеющего имя, заданное строкой name. getattr(x, 'foobar') эквивалентно x.foobar. Если имя атрибута не указано, возвращается значение по умолчанию (default). Если и оно не указано, вырабатывается исключение AttributeError;

· globals() – возращается словарь, представляющий таблицу текущих глобальных имен. Это всегда словарь текущего модуля, т.е.это модуль, который определен внутри функции или метода, не модуль, из которого были вызваны функция или метод (см. подразделы 2.4, 4.2 и 4.3 лаб. раб. №6);

· hasattr(object, name) – возвращает значение True, если строка name, является именем одного из атрибутов объекта object, и False – если нет (реализована путем вызова функции getattr(object, name)) и анализа, вызовет ли это исключение AttributeError или нет;

· hash(object) – возвращает хэш-значение (англ. hash value) объекта (если он его имеет). Хэш-значения являются целыми числами и используются для более быстрого сравнения ключей словаря при его просмотре (см. подраздел 1.3 лаб. раб. №3);

· help([object]) – вызывает встроенную систему помощи (см. подраздел 1.2);

· hex(x) – преобразует целое число в шестнадцатиричную строку. Если оргумент x не является объектом класса int, то должен быть определен метод __index__(), возвращающий целое значение. Отметим, что для получения шестнадцатиричной строки, представляющей число с плавающей точкой, необходимо воспользоваться методом float.hex() (см. подраздел 4.1.1);

· id(x) – возвращает “идентичность” (англ. identity) объекта в виде числа, которое является уникальным и постоянным в течение времени его жизни. Два объекта с непересекающимися временами жизни могут иметь одинаковые значения идентичности. Отметим, что при реализации CPython идентичность представляет собой адрес объекта в памяти (см. подразделы 3.1 и 6.1);

Оглавление

· input([prompt]) – при наличии необязательного аргумента prompt выводит его в стандантный поток вывода. Затем функция считывет данные из стандартного устройства ввода, преобразует их в строки, убирая замыкающие символы новой строки (см. подраздел 5.2);

· int(x=0)
int(x, base=10) – преобразует x в целое число или возвращает 0, если аргумент не был задан (см. подраздел 4.1.1 лаб. раб. №1);

· isinstance(object, classinfo) – возвращает True, если объект, указанный аргументом object является экземпляром класса, заданного аргументом classinfo, или его подклассом (прямым, непрямым или виртуальным), и False в противном случае. Если object не является объектом указанного типа, то функция всегда возвращает False. Если аргумент classinfo не является классом (типом объекта), он может быть кортежом типов объектов, или может рекурсивно содержать другие такие кортежи (другие последователности типов не допускаются). Если же classinfo не является ни типом, ни кортежом типов или кортежей, то вырабатывается исключение TypeError (см. использование функции в подразделах 1.1, 1.2 и 1.3 лаб. раб. №3, в разделе 2, в подразделах 1.1 и 3.3 лаб. раб. №4, в разделе 1, в подразделах 2.1 и 3.1 лаб. раб. №5);

· issubclass(class, classinfo) – возвращает значение True, есои class является подклассом (прямым, непрямым или виртуальным) аргумента classinfo. Класс считается подвклассом самого себя. Аргумент classinfo может быть кортежем объектов-классов, в котором каждый элемент должен быть проверен. В случае неудачи возникает исключение TypeError;

· iter(object[, sentinel]) – возвращает объект-итератор. Первый аргумент интерпретируется по разному в зависимости от присутствия второго агрумента.
Без второго аргумента объект может быть или объектом-контейнером с поддержкой протокола итерации (метода __iter__()), или он должен поддерживать протокол последовательности (метод __getitem__() с целочисленным аргументом, начинающимся с 0. Если он не поддерживает ни один из этих протоколов, возникает ошибка типа (TypeError).
Если второй аргумент sentinel, задающий граничное значение, указан, тогда объект должен быть вызываемым объектом (англ. callable object). Итератор, созданный в этом случае будет вызывать объект без аргументов для каждого вызова своего метода __next__(). Если возвращаемое значение равно значению аргумента sentinel, будет вызвано исключение StopIteration. В остальных случаях будет возвращено значение (см. подраздел 1.2 лаб. раб. №3);

Оглавление

· len(s) – возвращает длину (число элементов) объекта. Аргументом может быть последовательность (см. подраздел 2.5 лаб. раб. №2, подразделы 1.4.2 и 2.2 лаб. раб. №3, раздел 2 и подразделы 1.1, 3.1 и 3.2 лаб. раб. №4), множество (см. подраздел 1.1 лаб. раб. №5) и словать (см. подраздел 2.1 лаб. раб. №5);

· list([iterable]) – возвращает значение в виде списка (см. раздел 2 лаб. раб. №3);

· locals() – изменяет и возвращает словарь, представляющий таблицу текущих локальных имен. Свободные переменные возвращаются функцией locals(), когда она вызывается в блоке функции, но не в блоке класса. Отметим, что содержимое словаря не должно модифицироваться, изменения могут не повлиять на значения локальных и свободных переменныоъ, используемых интерпретатором (см. подразделы 2.4, 4.2 и 4.3 лаб. раб. №6);

· map(function, iterable) – возвращает итератор, сформированный из элементов iterable с помощью функции function (см. подраздел 1.5.2 лаб. раб. №6);

· max(iterable, *[, key, default])
max(arg1, arg2, *args[, key]) – возвращает самый большой элемент итерабельного типа или наибольший из двух или более аргументов. Если используется один позиционный оргумент, он должен быть инерабельным объектом. Возвращается его наибольший элемент (см. подраздел 2.5 лаб. раб. №2, подразделы 1.4.2 и 2.2 лаб. раб. №3, раздел 2 и подразделы 1.1, 3.1 и 3.2 лаб. раб. №4), множество (см. подраздел 1.1 лаб. раб. №5) и словарь (см. подраздел 2.1 лаб. раб. №5). Если указываются два или больше позиционных аргументов, возвращается наибольший из них. Функция может иметь два необязательных именных аргумента. Аргумент key указывает функцию упорядочевания с одним аргументом, подобную тем, которые используются для метода list.sort() (см. подраздел 1.4 лаб. раб. №6). Аргумент по умолчанию – объект, который будет возвращен, если итерабельный объект будет пустым. Если итерабельный объект будет пустым и аргумент по умолчанию не будет указан, возникнет исключение ValueError. Если окажется несколько максимальных значений, функция возвратит, первое встретившееся. Эти правила распространяются и на другие программные средства сортировки, такие как sorted(iterable, key=keyfunc, reverse=True)[0] и heapq.nlargest(1, iterable, key=keyfunc). Новое в версии 3.4 – именованный аргумент, задающий значение по умолчанию;

· memoryview(object) – преобразует объект object в объект класса memoryview, поддерживает протокол буфера (англ. buffer protocol);



Поделиться:


Читайте также:




Последнее изменение этой страницы: 2021-07-18; просмотров: 56; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

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