Числа и операции с ними
В Python числа могут быть целыми (int), вещественными (float) и комплексными (complex).
Целые числа (int).
Целое число в десятичной форме ничем не отличается от обыкновенного числа, например - 1
Целое число в двоичной форме имеет вид - 0b111. Перед числом стоит 0b, дальше следует само число в двоичной форме 111.
Целое число в восьмеричной форме имеет вид – 0o7. Перед числом стоит 0o (ноль и буква о), дальше следует само число в восьмеричной форме 7.
Целое число в шестнадцатеричной форме имеет вид – 0xAF. Перед числом стоит 0x, дальше следует само число в двоичной форме AF.
Существуют встроенные функции для преобразования целого числа из одной системы исчисления в другую. В двоичное число bin(), в восьмеричное число(oct()) и шестнадцатеричное число(hex().
Для преобразования в десятичное число существует встроенная функция int()
Функция int() имеет два аргумента. Первый аргумент - значение, которое нужно преобразовать в целое число, второй аргумент (необязательный) система исчисления в которой задан первый аргумент (может быть от 2 до 36), по умолчанию второй аргумент равен 10. При использовании второго аргумента отличного от 10 - первый аргумент должен быть представлен в виде строки.
Примеры:
Преобразуем строку в целое число.
>>>int('55')
55
Преобразуем вещественное число в целое число (дробная часть отбрасывается без округления):
>>>int(7.7)
7
Преобразуем число из тридцатеричной системе исчислений в целое десятичное число.
>>>int('tt', 30)
899
При использовании второго аргумента если первый аргумент функции int() представлен не строкой, получается ошибка.
>>>int(57, 3)
Traceback (most recent call last):
Python Shell, prompt 12, line 1
builtins.TypeError: int() can't convert non-string with explicit base
Для преобразования целого числа в двоичную форму используется функция bin(). Функция bin() принимает один аргумент – целое десятичное число. Возвращает строку (str).
>>>bin(8)
'0b1000'
>>>type(bin(8))
<class 'str'>
Для преобразования целого числа в восьмеричную форму используется функция oct(). Функция oct() принимает один аргумент – целое число. Возвращает строку.
>>>oct(5)
'0o5'
>>>type(oct(5))
<class 'str'>
Для преобразования целого числа в шестнадцатеричную форму используется функция hex(). Функция hex() принимает один аргумент – целое число. Возвращает строку.
>>>hex(80)
'0x50'
>>>type(hex(80))
<class 'str'>
Вещественные числа (float). Встроенная функция float()
Как я понял вещественные, числа с дробной частью и числа с плавающей запятой это разные названия числа вида: 7.0 или 77.12 и т.д и т.п.
Получить вещественное число можно с помощью функции float(). Аргумент у функции один и он может быть числом или строкой. Возвращает число типа float.
Передаем функции float() аргумент в виде целого числа.
>>>float(4)
4.0
>>>type(float(4))
<class 'float'>
Передаем функции float() аргумент в виде строки (str).
>>>float('17')
17.0
>>>type(float('17'))
<class 'float'>
Комплексные числа (complex). Встроенная функция compex()
Числа содержащие мнимую часть и имеют вид:
1+7j
Для преобразования в комплексное число есть функция complex(). Она имеет два аргумента первый действительная часть, второй аргумент мнимая часть. Оба аргумента должны быть целыми числами(int) или вещественными числами (float). Возвращает комплексное число (complex).
>>>complex(1, 4)
(1+4j)
>>>type(complex(1, 4))
<class 'complex'>
>>>complex(1.0, 4)
(1+4j)
Математику я учил давно и до сих пор так и не встретил случая, где бы я мог применить их. Так, что на данный момент можно констатировать, что в Python есть комплексные числа и это пока все.
Арифметические операторы.
+ Сложение
>>>1 + 2 сложение целого числа с целым получаем
3 целое число
>>>1.0 + 2 сложение вещественного числа с целым получаем
3.0 вещественное число
>>>3 + 5 +(1 + 7.0) если в выражении есть вещественное число результатом всегда будет
16.0 вещественное число
- Вычитание,
>>>5 – 3 Вычитаем из целого числа целое число получаем
2 целое число
>>>5 - 3.0 Вычитаем из целого числа вещественное число получаем
2.0 вещественное число
* Умножение
>>>2 * 3 Умножаем целое число на целое число получаем
6 целое число
>>>2 * 3.0 Умножаем целое число на вещественное число получаем
6.0 вещественное число
Деления в Python три:
/ Деление обыкновенное
>>>4 / 2 Делим целое число на целое число получаем
2.0 вещественное число
>>>4.0 / 2.0 Делим вещественное число на вещественное число
получаем
2.0 вещественное число
// Целочисленное деление – деление с округлением к меньшему. При таком округлении дробная часть отбрасывается, а целая часть округляется в меньшую сторону.
В случае, когда результатом вычисления является положительное число, то берется целая часть без изменений.
>>>5 // 2 Делим целое число на целое число получаем
2 целое число
>>>-3.0 // -2 Делим вещественное число на целое число получаем
1.0 вещественное число
В случае, когда результатом вычисления является отрицательное число, при округлении к меньшему, дробная часть отбрасывается, а целая часть числа уменьшается на единицу.
>>>5 // -2 Делим целое число на целое число получаем
-3 целое число, так то получаем -2.5, округляем к
меньшему получаем - 3
>>>-6.0 // 2.5 Делим вещественное число на вещественное число
получаем
-3.0 вещественное число
% Деление по модулю. Результатом деления по модулю является остаток от деления левой части выражения (делимого) на правую часть выражения (делитель), остаток будет всегда положительным числом.
>>>300 % 80 Делим по модулю получаем после деления на цело
60 остаток 60
>>>5.0 % 100 Делим по модулю получаем
5.0 т.к. 5 на 100 без получения дробной части не делится
ответ - 5
** Возведение в степень
>>>5 ** 2 Возводим целое число в степень тоже целое число
получаем
25 целое число
>>>2.0 ** 4 возводим вещественное число в степень (целое число)
получаем
16.0 вещественное число
Как видно из примеров если в выражении присутствует вещественное число, то ответом будет – вещественное число.
Приоритет выполнения операций как в арифметике.
>>>5 + 190 // 2 ** 2 % 10 * 5 / 4 - 2
11.75
Операции выполняются слева-направо и согласно приоритета.
1. Возведение в степень 2**2 = 4
2. Целочисленное деление 190//4=47
3. Деление по модулю 47%10=7
4. Умножение 7*5=35
5. Деление 35/4=8.75
6. Сложение 5+8.75=13.75
7. Вычитание 13.75-2=11.75
Самый старший приоритет - возведение в степень
Следующий приоритет - Умножение *, Деление /, Целочисленное деление //, Деление по модулю % у этих операция приоритет одинаковый если они встречаются в одном примере то выполняются в порядке очереди слева-направо.
Следующий приоритет у сложения + и вычитания они выполняются самыми последними.
Если необходимо поменять приоритеты операций нужно воспользоваться скобками. Операции в скобках выполняются первыми.
Это все что я вычитал про числа.
По ссылкам можно почитать мои конспекты:
Книги и курсы по Python
Книги и курсы по Python год спустя.
Встроенные функции (Built-in)
Методы словаря (Dict methods)
Методы списков (List methods)
Строковые методы (String Methods)
Библиотека os
Спецификаторы
Итерируемый тип данных
Инструкции continue, break и pass
Цикл for … in
Цикл while
Условная инструкция if
Индексация
Переменные
Встроенные функции print() и input()
Оператор присваивания
Основные типы данных
Утилита PIP
Коротко о языке