Модуль decimal. Продолжение.
В операциях с Decimal можно использовать целые числа, смотрим код:
Однако нельзя смешивать в операциях дробные числа float и Decimal, вторая часть кода:
С помощью дополнительных знаков мы можем определить, сколько будет символов в дробной части числа, последняя часть кода:
Строка "0.10" определяет два знака в дробной части, даже если последние символы будут представлять ноль. Соответственно "0.100" представляет три знака в дробной части.
🐍 Укус питона // 💬 Чат // #теория #модули #decimal
В операциях с Decimal можно использовать целые числа, смотрим код:
Однако нельзя смешивать в операциях дробные числа float и Decimal, вторая часть кода:
С помощью дополнительных знаков мы можем определить, сколько будет символов в дробной части числа, последняя часть кода:
Строка "0.10" определяет два знака в дробной части, даже если последние символы будут представлять ноль. Соответственно "0.100" представляет три знака в дробной части.
🐍 Укус питона // 💬 Чат // #теория #модули #decimal
Округление чисел
Объекты Decimal имеют метод quantize(), который позволяет округлять числа. В этот метод в качестве первого аргумента передается также объект Decimal, который указывает формат округления числа:
Используемая строка "1.00" указывает, что округление будет идти до двух знаков в дробной части.
🐍 Укус питона // 💬 Чат // #теория #модули #decimal #quantize
Объекты Decimal имеют метод quantize(), который позволяет округлять числа. В этот метод в качестве первого аргумента передается также объект Decimal, который указывает формат округления числа:
Используемая строка "1.00" указывает, что округление будет идти до двух знаков в дробной части.
🐍 Укус питона // 💬 Чат // #теория #модули #decimal #quantize
Погрузитесь в мир Python с нашим бесплатным курсом!
🎓 Включено 45 уроков, 56 упражнений в тренажере и 163 проверочных теста. Узнаете, как создавать программы, работать с условиями и функциями.
Что вы освоите:
— Составление программ из нескольких модулей.
— Анализ ошибок в коде с использованием отладочной печати.
📚 Курс охватывает основы Python: синтаксис, условия, циклы, типы данных и библиотеки. Практика на каждом шаге поможет вам уверенно использовать язык.
Начните свое обучение с бесплатного базового курса Python и вы сможете создавать несложные программы, а так же анализировать ошибки в коде!
Реклама. АНПОО "ХЕКСЛЕТ КОЛЛЕДЖ". ИНН 7839056670.
🎓 Включено 45 уроков, 56 упражнений в тренажере и 163 проверочных теста. Узнаете, как создавать программы, работать с условиями и функциями.
Что вы освоите:
— Составление программ из нескольких модулей.
— Анализ ошибок в коде с использованием отладочной печати.
📚 Курс охватывает основы Python: синтаксис, условия, циклы, типы данных и библиотеки. Практика на каждом шаге поможет вам уверенно использовать язык.
Начните свое обучение с бесплатного базового курса Python и вы сможете создавать несложные программы, а так же анализировать ошибки в коде!
Реклама. АНПОО "ХЕКСЛЕТ КОЛЛЕДЖ". ИНН 7839056670.
Что выведет этот код?
Anonymous Quiz
9%
101
22%
99
19%
Ничего из вышеперечисленного, это бесконечный цикл
49%
100
Округление чисел. Продолжение.
По умолчанию округление описывается константой ROUND_HALF_EVEN, при котором округление происходит до ближайшего четного числа, если округляемая часть равна 5. Например:
Стратегия округления передается в качестве второго параметра в quantize.
Строка "1.00" означает, что округление будет идти до двух чисел в дробной части. Но в первом случае "10.025" - вторым знаком идет 2 - четное число, поэтому, несмотря на то, что следующее число 5, двойка не округляется до тройки.
Во втором случае "10.035" - вторым знаком идет 3 - нечетное число, ближайшим четным числом будет 4, поэтому 35 округляется до 40.
🐍 Укус питона // 💬 Чат // #теория #модули #decimal #quantize
По умолчанию округление описывается константой ROUND_HALF_EVEN, при котором округление происходит до ближайшего четного числа, если округляемая часть равна 5. Например:
Стратегия округления передается в качестве второго параметра в quantize.
Строка "1.00" означает, что округление будет идти до двух чисел в дробной части. Но в первом случае "10.025" - вторым знаком идет 2 - четное число, поэтому, несмотря на то, что следующее число 5, двойка не округляется до тройки.
Во втором случае "10.035" - вторым знаком идет 3 - нечетное число, ближайшим четным числом будет 4, поэтому 35 округляется до 40.
🐍 Укус питона // 💬 Чат // #теория #модули #decimal #quantize
Что выведет этот код?
Anonymous Quiz
6%
2, 1, 0
14%
2, 1, 0, -1, -2, -3, -4, -5
80%
2, 1, 0, -1, -2, -3, -4
Округление чисел. Продолжение.
Данное поведение при округлении, возможно, не всем покажется желательным, и в этом случае его можно переопределить, использовав одну из следующих констант:
• ROUND_HALF_UP: округляет число в сторону повышения, если после него идет число 5 или выше
• ROUND_HALF_DOWN: округляет число в сторону повышения, если после него идет число больше 5, смотрим пример:
• ROUND_05UP: округляет 0 до единицы, если после него идет число 5 и выше, второй пример:
• ROUND_CEILING: округляет число в большую сторону вне зависимости от того, какое число идет после него, третий пример:
• ROUND_FLOOR: не округляет число вне зависимости от того, какое число идет после него, последний пример:
🐍 Укус питона // 💬 Чат // #теория #модули #decimal #quantize
Данное поведение при округлении, возможно, не всем покажется желательным, и в этом случае его можно переопределить, использовав одну из следующих констант:
• ROUND_HALF_UP: округляет число в сторону повышения, если после него идет число 5 или выше
• ROUND_HALF_DOWN: округляет число в сторону повышения, если после него идет число больше 5, смотрим пример:
• ROUND_05UP: округляет 0 до единицы, если после него идет число 5 и выше, второй пример:
• ROUND_CEILING: округляет число в большую сторону вне зависимости от того, какое число идет после него, третий пример:
• ROUND_FLOOR: не округляет число вне зависимости от того, какое число идет после него, последний пример:
🐍 Укус питона // 💬 Чат // #теория #модули #decimal #quantize
Модуль dataclass. Data-классы
Модуль dataclasses предоставляет декоратор dataclass, который позволяет создавать data-классы - подобные позволяют значительно сократить шаблонный код классов. Как правило, такие классы предназначены для хранения некоторого состояния, некоторых данных и когда не требуется какое-то поведение в виде функций.
Рассмотрим простейший пример:
Здесь определен класс Person, у которого в функции конструктора определены два атрибута: name и age. Далее создаем один объект этого класса и выводим значения его атрибутов на консоль.
🐍 Укус питона // 💬 Чат // #теория #модули #dataclass #data
Модуль dataclasses предоставляет декоратор dataclass, который позволяет создавать data-классы - подобные позволяют значительно сократить шаблонный код классов. Как правило, такие классы предназначены для хранения некоторого состояния, некоторых данных и когда не требуется какое-то поведение в виде функций.
Рассмотрим простейший пример:
Здесь определен класс Person, у которого в функции конструктора определены два атрибута: name и age. Далее создаем один объект этого класса и выводим значения его атрибутов на консоль.
🐍 Укус питона // 💬 Чат // #теория #модули #dataclass #data
Выберите правильный способ очистки следующего словаря.
Anonymous Quiz
17%
del student
5%
del student[0:2]
79%
student.clear()
Модуль dataclass. Data-классы
Теперь изменим эту программу, сделав класс Person data-классом, смотрим код:
Для создания data-класса импортируем из модуля dataclasses декоратор dataclass и применяем его к классу Person. И в этом случае в самом классе нам уже не надо указывать конструктор - функцию init. Мы просто указываем атрибуты. А Python потом сам сгенерирует конструктор, в который также мы можем передать значения для атрибутов объекта.
🐍 Укус питона // 💬 Чат // #теория #модули #dataclass #data
Теперь изменим эту программу, сделав класс Person data-классом, смотрим код:
Для создания data-класса импортируем из модуля dataclasses декоратор dataclass и применяем его к классу Person. И в этом случае в самом классе нам уже не надо указывать конструктор - функцию init. Мы просто указываем атрибуты. А Python потом сам сгенерирует конструктор, в который также мы можем передать значения для атрибутов объекта.
🐍 Укус питона // 💬 Чат // #теория #модули #dataclass #data