|
|
Nokia Раздел для смартфонов и телефонов. Тут море полезной информации, можно бесплатно скачать программы для смартфона, взломать смартфон и многое другое. Все для Symbian 9 |
|
Опции темы | Поиск в этой теме |
05.04.2009, 17:10 Вверх | #1 | |||
Коренной житель
|
Python на Symbian S60 числа, присваивание и преобразования
Арифметические операции
Python, как и положено практически каждому языку программирования, предоставляет возможность осуществления простых арифметических операций: x y Возвращает сумму чисел x и y. x — 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: >>> 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 — кортеж. На этой ноте я заканчиваю и прощаюсь до следующей статьи, где мы изучим способы управления программой. |
|||
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Python на Symbian S60 объекты, создание интерфейса | Yerdna | Nokia | 4 | 05.04.2009 19:45 |
Python на Symbian S6 ассоциации для Python-скриптов | Yerdna | Nokia | 0 | 05.04.2009 17:14 |
Python на Symbian S60 циклы и функции | Yerdna | Nokia | 0 | 05.04.2009 17:13 |
Python на Symbian S60 списки и объект Listbox | Yerdna | Nokia | 0 | 05.04.2009 17:09 |
Python на Symbian S60 сервисные функции системы | Yerdna | Nokia | 0 | 05.04.2009 17:08 |