Академия Eduson

Модуль «decimal»

 Модуль «decimal» и тип данных «Decimal»

 Выберите характеристики Decimal чисел.

 Ответ:  подходит для финансов и бизнеса; подходит для высокоточных вычислений; настраиваемость

 Верно ли, что тип данных Decimal является неизменяемым?

 Ответ:  да

 Может ли число Decimal быть ключом в словаре?

 Ответ:  да

 Тип данных Decimal правильно создавать на основании:

 Ответ:  целого числа (тип данных int);   строки (тип данных str)

 Правильно ли сравнивать float числа между собой при помощи оператора ==?

 Ответ:  нет

 Правильно ли сравнивать Decimal числа между собой при помощи оператора ==?

 Ответ:  да

 Что выведет следующий код?:

from decimal import *

num = Decimal(0.1) + Decimal(0.1) + Decimal(0.1) - Decimal(0.3)

if num == 0:
    print('YES')
else:
    print('NO')

 Ответ:  NO

Что выведет следующий код?:

from decimal import *

num = Decimal('0.1') + Decimal('0.1') + Decimal('0.1') - Decimal('0.3')

if num == 0:
    print('YES')
else:
    print('NO')

 Ответ:  YES

 Decimal числа, разделенные символом пробела, хранятся в строковой переменной s. Дополните приведенный код, чтобы он вывел сумму наибольшего и наименьшего Decimal числа.

from decimal import *

s = '0.77 4.03 9.06 3.80 7.08 5.88 0.23 4.65 2.79 0.90 4.23 2.15 3.24 8.57 0.10 8.57 1.49 5.64 3.63 8.36 1.56 6.67 1.46 5.26 4.83 7.23 1.22 1.02 7.82 9.97 5.40 9.79 9.82 2.78 2.96 0.07 1.72 7.24 7.84 9.23 1.71 6.24 5.78 5.37 0.03 9.60 8.86 2.73 5.83 6.50'

num = [Decimal(i) for i in s.split()]

mm = max(num)
mn = min(num)

print(mm + mn)

 Decimal числа, разделенные символом пробела, хранятся в строковой переменной s. Дополните приведенный код, чтобы он вывел на первой строке сумму всех чисел, а на второй строке 5 самых больших чисел в порядке убывания, разделенных символом пробела.

from decimal import*

s = '9.73 8.84 8.92 9.60 9.32 8.97 8.53 1.26 6.62 9.85 1.85 1.80 0.83 6.75 9.74 9.11 9.14 5.03 5.03 1.34 3.52 8.09 7.89 8.24 8.23 5.22 0.30 2.59 1.25 6.24 2.14 7.54 5.72 2.75 2.32 2.69 9.32 8.11 4.53 0.80 0.08 9.36 5.22 4.08 3.86 5.56 1.43 8.36 6.29 5.13'

num = [Decimal(i) for i in s.split()]

num.sort(reverse=True)

print(sum(num))
print(*num[:5])

 Дополните приведенный код, чтобы он вывел сумму наибольшей и наименьшей цифры Decimal числа.

from decimal import *
num = Decimal(input())

x = num.as_tuple()
print(max(x.digits) + ("0" not in str(num)) * min(x.digits))

 На вход программе подается Decimal число d. Напишите программу, которая вычисляет значение выражения: e**d+ln(d)+lg(d)+√d

from decimal import *

d = Decimal(input())

res = Decimal.exp(d) + Decimal.ln(d) + Decimal.log10(d) + Decimal.sqrt(d)

print(res)