Python на Symbian S60: числа, присваивание и преобразования

Арифметические операции

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

x + y

Возвращает сумму чисел x и y.

y

Возвращает разницу между числами x и y.

x * y

Возвращает произведение чисел x и y.

x / y

Возвращает частное от деления чисел x и y.

x % y

Возвращает остаток от деления чисел x и y.

x**y

Возвращает число x в степени y.

x

Возвращает число x с противоположным знаком.

+ x

Возвращает число x без изменений.

Обычные вычисления.

Конечно, на основных операциях над числами далеко не уедешь. Сложные математические задачи поможет решить встроенная в Python библиотека функций.

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

abs(x)

Возвращает абсолютное значение числа x:

>>> abs(5)

5

>>> abs(-2)

2

>>>

cmp(x, y)

Сравнивает числа x и y и возвращает: -1, если x < y, 0; 0, если x = y; 1, если x > y:

>>> cmp(-1,2)

-1

>>> cmp(2,1)

1

>>> cmp(3,3)

0

>>>

divmod(a, b)

Возвращает кортеж из двух чисел: целой части и остатка от деления x на y:

>>> divmod(5,3)

(1, 2)

>>>

min(v1, v2, ...)

Возвращает наименьшее число из нескольких чисел, переданных функции:

>>> min(-1,2,3)

-1

>>>

max(v1, v2, ...)

Возвращает наибольшее число из нескольких чисел, переданных функции:

>>> max(-1,2,3)

-3

>>>

pow(x, y)

Возвращает x в степени y:

>>> pow(2,3)

8

>>>

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

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

Возможно, кому-то при решении различных логических задач пригодятся функции для побитовой работы с числами:

x | y

Возвращает битовое ИЛИ чисел x и y:

x ^ y

Возвращает битовое исключающее ИЛИ чисел x и y:

x y

Возвращает битовое И чисел x и y:

x << n

Возвращает число, полученное на основе x, биты которого сдвинуты на n влево. Эквивалентно умножению числа x на двойку в степени n (x * 2 ** n). Отличается очень высокой скоростью выполнения по сравнению с обычным умножением:

x >> n

Возвращает число, полученное на основе x, биты которого сдвинуты на n вправо. Эквивалентно делению числа x на двойку в степени n (x / 2 ** n). Отличается очень высокой скоростью выполнения по сравнению с обычным делением:

~x

Возвращает число, полученное на основе x, все биты которого инвертированы.

Битовые операции — пригождается редко, но метко.

Сокращенная форма записи (простое присваивание)

В Python для удобства и наглядности предусмотрена особая форма записи операций с числами:

lvalue += expression

Аналогичен lvalue = lvalue + expression.

lvalue -= expression

Аналогичен lvalue = lvalue — expression.

lvalue *= expression

Аналогичен lvalue = lvalue * expression.

lvalue /= expression

Аналогичен lvalue = lvalue / expression.

lvalue %= expression

Аналогичен lvalue = lvalue % expression.

lvalue **= expression

Аналогичен lvalue = lvalue ** expression.

lvalue = expression

Аналогичен lvalue = lvalue expression.

lvalue |= expression

Аналогичен lvalue = lvalue | expression.

lvalue ^= expression

Аналогичен lvalue = lvalue ^ expression.

lvalue >>= expression

Аналогичен lvalue = lvalue >> expression.

lvalue <<= expression

Аналогичен lvalue = lvalue << expression.

Т.е. эта форма записи предполагает определенное действие над переменными lvalue и expression с последующим присваиванием результата обратно переменной lvalue:

>>> a = 1

>>> a = a + 1

>>> print a

1

>>> a +=1

>>> print a

2

>>>

Сокращенная форма — очень удобная вещь.

Множественное присваивание

Одна из отличительных черт Python — множественное присваивание. Применяется для удобной записи часто используемых операций.

>>> a = b = c = 0

>>> print a, b, c

0, 0, 0

>>>

Т.е. можно нескольким переменным присвоить одно и то же значение (число, текст). Пригождается эта особенность «Питона», например, когда в начале программы надо большому числу переменных присвоить стартовые значения.

Множественное присваивание еще используется и так:

>>> a, b = 0, 1

>>> print a, b

0, 1

>>> a, b = b, a

>>> print a, b

1, 0

>>>

Множественное присваивание.

Т.е. Python вычисляет все значения, находящиеся в правой части (после знака равно «=») и присваивает их левой (соответственно, до знака равно «=»). Если бы мы захотели поменять значения двух переменных местами без использования множественного присваивания, то нам пришлось бы обязательно использовать третью переменную.

Множественное присваивание используется для распаковки и упаковки списков и кортежей:

>>> list = [1, 2, 3]

>>> a, b, c = list

>>> print a, b, c

1, 2, 3

>>>

В примере мы распаковали список длиной три элемента и присвоили их значения трем переменным. Вместо списка можно было использовать и кортеж:

>>> divmod(5,3)

(1, 2)

>>> a, b = divmod(5,3)

>>> print a,b

1, 2

>>>

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

>>> a, b, c = 1, 2, 3

>>> list = [a, b, c]

>>> tuple = (a, b, c)

>>> print list, tuple

[1, 2, 3], (1, 2, 3)

>>>

Упаковка — распаковка.

Часто именно таким образом — упаковкой — передаются аргументы некоторым функциям.

Преобразование между различными типами данных

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

int(x)

Преобразовывает значение в целое число. Если ему передано вещественное число, то целое число получается из него обычным отбрасыванием дробной части:

>>> int(«32»)

32

>>> int(3.99999)

3

>>>

float(x)

Преобразовывает целые числа и строки в дробный тип:

>>> float(32)

32.0

>>> float(«3.14159»)

3.14159

>>>

Запомните! Если преобразованию подвергается строка с числами, то наличие в ней букв и знаков препинания ведет к ошибке.

round(x [,n])

Возвращает вещественное число, полученное в результате округления числа x до n знаков после точки. По умолчанию n равен нулю:

>>> round(2.0/3.0, 4)

0.6667

>>>

str(x)

Отвечает за преобразование в строку. Именно эту функцию предварительно запускает команда print:

>>> str(32)

‘32’

>>> str(3.14149)

‘3.14149’

>>>str([1, 2, 3])

[1, 2, 3]

>>>

list(seq)

Преобразовывает строки и кортежи в список:

>>> list(«Hello»)

[«H», «e», «l», «l», «o»]

>>> list((1, 2, 3))

[1, 2, 3]

>>>

tuple(seq)

Преобразовывает строки и списки в кортеж:

>>> tuple(«Hello»)

(«H», «e», «l», «l», «o»)

>>> tuple([1, 2, 3]))

(1, 2, 3)

>>>

repr(date)

Преобразует любой тип данных в строку так, чтобы ее можно было восстановить обратно функцией eval():

>>> repr([1, 2.0, ’Three’]))

‘[1, 2.0, ’Three’]’

>>>

eval(date)

Преобразует строку, полученную функцией repr(), в соответствующий тип данных:

>>> eval(‘[1, 2.0, ’Three’]’))

[1, 2.0, ’Three’]

>>>

Преобразуем сложные типы данных.

hex(x)

Возвращает шестнадцатеричное представление числа x в виде строки с префиксом «0x»:

>>> hex(16)

0x10

>>>

oct(x)

Возвращает восьмеричное представление числа x в виде строки с префиксом «0»:

>>> hex(16)

020

>>>

Для получения информации о типе той или иной переменной можно использовать функцию type():

>>> type(8)

>>> type(8.33)

>>> type(Hello!)

>>> type([1, 2, 3])

>>> type((3, 2, 1))

>>>

Получение типа данных функцией type().

Получаем следующие типы:

— type int — целочисленный тип;

— type float — вещественное число;

— type str — строковой тип;

— type list — список;

— type tuple — кортеж.

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






Рекомендуемый контент




Copyright © 2010-2017 housea.ru. Контакты: info@housea.ru При использовании материалов веб-сайта Домашнее Радио, гиперссылка на источник обязательна.