Python. Числа. Представление чисел разных типов. Базовые числовые типы. Функции преобразования чисел




Числа. Представление чисел разных типов. Базовые числовые типы. Функции преобразования чисел


Содержание


Поиск на других ресурсах:

1. Категории числовых типов

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

  • обычные числовые типы (вещественные, целочисленные);
  • литералы (создают числовые типы);
  • выражения (обработка числовых типов).

 

2. Перечень числовых типов

В языке Python поддерживаются следующие числовые типы:

  • целые и вещественные числа;
  • комплексные числа;
  • числа фиксированной точности;
  • рациональные числа;
  • множества;
  • логические значения;
  • целые числа неограниченной точности.

 

3. Представление целых чисел (литералов) в разных системах исчисления. Пример

Целые числа (или целочисленные литералы) могут записываться в разных системах исчисления:

  • десятичный формат;
  • шеснадцатеричный;
  • восьмеричный;
  • двоичный.

Пример. Запись числа (литерала) 30 в различных форматах

30 # десятичный формат
0x1e # шестнадцатеричный
0X1E # шестнадцатеричный
036 # восьмеричный, версия Python 2.6
0B11110 # двоичный
0b11110 # двоичный
0O36 # восьмеричный, версия Python 3.0
0o36 # восьмеричный, версия Python 3.0

Если в версии Python 3.0 попробовать представить восьмеричное значение так как в версии Python 2.6 (036), то компилятор выдаст ошибку.

 

4. Типы целых чисел в Python 2.6: обычные и длинные. Пример

В Python 2.6 целые числа могут быть представлены двумя типами:

  • обычные (32-битные) числа;
  • длинные (неограниченной точности) числа. Такие числа заканчиваются символом l или L. Если числовое значение целочисленного литерала не помещается в обычное 32-битное число, то это значение автоматически приводится к длинному целому. В этом случае интерпретатор автоматически выполняет соответствующее преобразование.

Пример.

12345 # обычное 32-битное число
1234567890l # длинное число в версиях Python до 3.0
7777777777777L # длинное число в версиях Python до 3.0

 

5. Представление целых чисел в Python 3.0

В Python 3.0 оба типа чисел (обычные и длинные) были представлены как один (единый) тип целых чисел, который автоматически представлен как длинное целое число (поддерживает неограниченную точность). Поэтому, в этой версии Python нет потребности завершать литералы символами l или L. Если в Python 3.0 указать l или L после числа, то интерпретатор выдаст ошибку «Invalid token».



 

6. Функции преобразования из числа в строку и наоборот hex(), oct(), bin(), int(). Примеры

Чтобы превратить числовой вид литерала в строку используются следующие функции:

  • hex(num) – преобразует число num в строку, которая отображает это число в шестнадцатеричной системе исчисления;
  • oct(num) – преобразует число num в строку, которая представляет это число в восьмеричной системе исчисления;
  • bin(num) – преобразует число num в строку, которая представляет это число в двоичной системе исчисления.

Чтобы преобразовать строку в целое число с учетом системы исчисления используется функция

int(s, base)

где

  • s – строка;
  • base – целое число определяющее количество цифр в системе исчисления. Например, для системы исчисления 7 значение base = 7.

Примеры функций преобразования.

sh = hex(15) # sa = 0xF
so = oct(15) # sb = 0o17
sb = bin(15) # sb = 0b1111

i = int('15',10) # i = 15
i = int('15',8) # i = 13
# i = int('19',8) - ошибка, цифра 9 не может быть в 8-й системе исчисления

i = int('2EF',16) # i = 751
i = int('20',16) # i = 32
i = int('14',5) # i = 9

 

7. Представление вещественных чисел. Пример

Вещественные числа определяют числа с плавающей запятой. Вещественные числа (литералы) могут быть представлены в виде:

  • чисел, которые содержат разделитель целой и дробной части;
  • чисел, которые содержат символ e или E для обозначения порядка числа.

Интерпретатор Python распознает вещественное число по наличию символа ‘.’ («точка») или экспоненты (символ e или E). После того, как число распознано, создается соответствующий объект вещественного типа. Такой объект используется в дальнейших математических выражениях как объект вещественного типа (а не объект целого или другого типа).

Пример.

2.85 # обычное представление вещественного числа
3. # число 3.0
1.3e-3 # число 0.0013
1.52E6 # 1520000.0
3e2 # 300.0
2.0E-1 # 0.2

 

8. Комплексные числа. Примеры

В языке Python есть возможность работать с комплексными числами. Общая форма представления комплексного числа следующая:

real_part + imag_part j

где

  • real_part – вещественная часть комплексного числа, которая есть необязательной (в случае, когда число не содержит вещественной части);
  • imag_part – мнимая часть комплексного числа, которая завершается символом j или J.

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

Примеры литералов комплексных чисел

6-8j
2.5+3.8j
0.001J
2.-3.J

 

9. Создание комплексных чисел. Функция complex(). Пример

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

complex(real, imag)

Пример.

a = complex(6, -8) # a = (6-8j)
b = complex(0, 2.5) # b = 2.5j
c = complex(0.02, -1e4) # c = (0.02-10000j)

 

10. Функция eval. Преобразование строки в число

Число может быть представлено в виде строки, например

'258'
"0x2A5"

Для преобразования строки в число можна использовать функцию eval. Функция eval(s) рассматривает строку s как программный код на языке Python. Функция выполняет компиляцию строки s и ее использование. Строка воспринимается как часть программы.

Пример.

# Функция eval

# выполнение строки как кода программы
a = 5
b = 6
c = eval('a+b') # c = a+b = 11

# преобразование строк, представленных как число, в само число
c = eval('0xF5') # c = 245
c = eval('0b111') # c = 7
c = eval('0o135') # c = 93

d = bin(eval('0b101')) # d = 0b101

 


Связанные темы