Основные операции над простыми типами
Строго говоря, простых типов данных в Питоне практически нет, поскольку все типы данных на самом деле являются объектами и имеют множество свойств и методов (которые, как это обычно и принято, записываются через точку «.» после имени объекта или класса).
Ниже перечислены операции, которые могут применяться ко всем числовым типам:
x + y Сложение
x – y Вычитание
x * y Умножение
x / y Деление
x // y Целочисленное деление с усечением
x ** y Возведение в степень (xy)
x % y Остаток от деления (Деление по модулю (x mod y)
Математические функции:
abs(x) Абсолютное значение
divmod(x,y) Возвращает кортеж (x // y, x % y)
pow(x,y [,modulo]) Возвращает результат выражения (x ** y) % modulo
round(x,[n]) Округляет до ближайшего кратного 10 -n (только для чисел с плавающей точкой)
Функция round() округляет числос плавающей точкой x до ближайшего, кратного 10 в степени минус n. Если аргумент n опущен, он принимается равным 0. Если число x одинаково близко к двум кратным значениям, в Python 3 округление будет выполнено до ближайшего четного кратного (например, значение 0.5 будет округлено до 0.0, а значение 1.5 – до 2.0). Эта особенность представляет серьезную проблему переноса математических программ на Python 3.
Операторы сравнения
x < y Меньше чем
x > y Больше чем
x == y Равно
x!= y Не равно
x >= y Больше или равно
x <= y Меньше или равно
Логические операции and, or, not записываются без скобок и имеют низший приоритет по сравнению с операторами сравнения, поэтому запись логических выражений существенно упрощается. Например, выражение:
2< x and 5< y
не требует скобок вокруг операторов сравнения. При необходимости или при желании скобки можно добавить.
Операторы сравнения можно объединять в последовательности, например: w < x < y < z, что эквивалентно выражению w < x and x < y and y < z. Такие выражения, как x < y > z, также являются допустимыми.
Битовые операторы (применяющиеся побитно) над целыми числами:
Приведены просто для справки, поскольку очень редко используются в обычных «офисных» задачах. Могут применяться в системном программировании для работы с аппаратной частью компьютера или для кодирования информации на двоичном уровне. Обладают низшим приоритетом по сравнению с операцией сложения.
x << y Двоичный сдвиг влево
x >> y Двоичный сдвиг вправо
x & y Битовая операция «И»
x | y Битовая операция «ИЛИ»
x ^ y Битовая операция «исключающее ИЛИ»
~x Битовая операция «НЕ»
Операции приведения типов
В Python используется так называемая динамическая типизация, то есть в ходе выполнения программы одна и та же переменная может хранить значения различных типов. При этом не требуется предварительное объявление типа переменной. Оператор присваивания «=» создает связь между именем переменной и значением, при этом тип переменной «угадывается» автоматически.
При выполнении операций производится контроль типов переменных, и в случае неприменимости операции к данному типу будет инициировано прерывание работы программы по ошибке несоответствия типа.
Чтобы корректно преобразовать данные одного типа в другой, в Python, как и во многих других языках программирования используются операции приведения типов, совпадающие с названиями самих типов. Например:
s='15.7'
x=float(s)# преобразуем строку в вещественное число
i= in t(x)# преобразуем вещественное число в целое
print ('s=',s,'x=',x,'i=',i)
Как мы видим, операции весьма гибкие, и легко преобразуют строку в вещественное число или вещественное число в целое.
Во многих случаях эта гибкость преобразований сокращает объём и сложность программы, но, кроме того, существуют специальные функции и операторы, расширяющие возможности преобразования и форматирования.
Последовательности
Общие сведения
Последовательности играют в Python важную роль.
Основные — это кортежи (tuple) и списки (list). Основная разница между ними состоит в том, что кортеж — не изменяемый тип, а список - изменяемый. Кортеж записывается в круглых скобках t=(1,2,”три”,4), а список – в прямоугольных: L=[1,2,”три”,4].
В Python нет типа массив, поэтому перечисляемые типы данных представлены только последовательностями. Основное отличие последовательности от массива состоит в том, что в массиве хранятся данные одного типа, а в последовательностях могут хранится данные любых типов. Тип массив (array) есть в математической библиотеке numpy. Массивы numpy обеспечивают быстродействие и удобную запись векторных и матричных операций и сильно упрощают реализацию численных методов.
Важно: нумерация элементов последовательностей начинается с 0. Таким образом, в списке из 2 элементов первый имеет номер 0, а второй 1, а элемента с номером 2 нет!
Удобно, что отрицательные индексы реализуют зеркальную (кольцевую) нумерацию, то есть -1 означает последний элемент, -2 — предпоследний и т.д.






