Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Преобразование целых чисел в десятичные дроби и наоборот




Преобразование целых чисел в десятичные дроби и наоборот

Как вы только что видели, некоторые операции (как, например, сложение), при необходимости, преобразуют целые числа в числа с плавающей точкой. Это преобразование можно выполнить и самостоятельно.

> > > float(2) ①
2. 0
> > > int(2. 0) ②
2
> > > int(2. 5) ③
2
> > > int(-2. 5) ④
-2
> > > 1. 12345678901234567890 ⑤
1. 1234567890123457
> > > type(1000000000000000) ⑥
< class 'int'>

Можно явно преобразовать значение типа int в тип float, вызвав функцию float().
Так же нет ничего удивительного в том, что можно преобразовать значение типа float в значение типа int, с помощью функции int().
Функция int() отбрасывает дробную часть числа, а не округляет его.
Функция int() «округляет» отрицательные числа в сторону увеличения. Она не возвращает целую часть числа, как делает функция «пол» (англ. floor), а просто отбрасывает дробную часть.
Точность чисел с плавающей точкой равна 15 десятичным знакам в дробной части.
Целые числа могут быть сколь угодно большими.

 

Python 2 имел отдельные типы целых чисел: int и long. Тип int был ограничен значением sys. maxint, которое менялось в зависимости от платформы, но обычно было равно 232− 1. Python 3 же имеет только один целочисленный тип, который в большинстве случаев ведёт себя как тип long в Python 2. См. PEP 237.

Основные операции с числами

Над числами можно выполнять различные операции.

> > > 11 / 2 ①
5. 5
> > > 11 // 2 ②
5
> > > − 11 // 2 ③
− 6
> > > 11. 0 // 2 ④
5. 0
> > > 11 ** 2 ⑤
121
> > > 11 % 2 ⑥
1

Оператор / выполняет деление чисел с плавающей точкой. Он возвращает значение типа float, даже если и делимое, и делитель, имеют тип int.
Оператор // выполняет целочисленное деление необычного вида. Когда результат положительный, можете считать, что он просто отбрасывает (не округляет) дробную часть, но будьте осторожны с этим.
Когда выполняется целочисленное деление отрицательных чисел, оператор // округляет результат до ближайшего целого в «большую» сторону. С математической точки зрения, это конечно же округление в меньшую сторону, т. к. − 6 меньше чем − 5; но это может сбить вас с толку, и вы будете ожидать, что результат будет «округлён» до − 5.
Оператор // не всегда возвращает целое число. Если хотя бы один из операндов — делимое или делитель — будет типа float, то хотя результат и будет округлён до ближайшего целого, в действительности он также будет иметь тип float.
Оператор ** выполняет возведение в степень. 112 — это 121.
Оператор % возвращает остаток от целочисленного деления. 11, делённое на 2, даёт 5 и 1 в остатке, поэтому здесь результат — 1.

 

В Python 2, оператор / обычно означает целочисленное деление, но добавив в код специальную директиву можно заставить его выполнять деление с плавающей точкой. В Python 3, оператор / всегда означает деление с плавающей точкой. См. PEP 238.

Дроби

Python не ограничен целыми числами и числами с плавающей точкой. Он также может выполнять все те забавные вещи, которые вы изучали в школе на уроках математики и затем благополучно забыли.

> > > import fractions ①
> > > x = fractions. Fraction(1, 3) ②
> > > x
Fraction(1, 3)
> > > x * 2 ③
Fraction(2, 3)
> > > fractions. Fraction(6, 4) ④
Fraction(3, 2)
> > > fractions. Fraction(0, 0) ⑤
Traceback (most recent call last):
File " < stdin> ", line 1, in < module>
File " fractions. py", line 96, in __new__
raise ZeroDivisionError('Fraction(%s, 0)' % numerator)
ZeroDivisionError: Fraction(0, 0)

Перевод сообщения оболочки:

Раскрутка стека (список последних вызовов):

Файл " < stdin> ", строка 1, в < модуль>

Файл " fractions. py", строка 96, в __new__

raise ZeroDivisionError('Дробь(%s, 0)' % числитель)

ZeroDivisionError: Дробь(0, 0)

Перед началом использования дробей, импортируйте модуль fractions.
Чтобы определить дробь, создайте объект класса Fraction и передайте ему числитель и знаменатель.
С дробями можно выполнять все обычные математические операции. Все они возвращают новый объект класса Fraction.
Объект Fraction автоматически сократит дроби.
У Python хватает здравого смысла, чтобы не создавать дроби с нулевым знаменателем.
Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...