Python: Константы
Некоторые данные никогда не меняются — например, математические постоянные. Возьмем для примера число π. Оно всегда равно 3.14 и не может измениться. Чтобы обратиться к подобным данным, в Python используют константы:
PI = 3.14 print(PI) # => 3.14
Константа создается так же, как переменная. Разница только в том, что константы принято именовать заглавными буквами и с _ в качестве разделителя между словами. Константа, как и переменная, может использоваться в любом выражении.
Задание
Создайте константу DRAGONS_BORN_COUNT и запишите в неё число 3 — это количество драконов, родившихся у Дайенерис.
Упражнение не проходит проверку — что делать?
Если вы зашли в тупик, то самое время задать вопрос в «Обсуждениях». Как правильно задать вопрос:
- Обязательно приложите вывод тестов, без него практически невозможно понять что не так, даже если вы покажете свой код. Программисты плохо исполняют код в голове, но по полученной ошибке почти всегда понятно, куда смотреть.
В моей среде код работает, а здесь нет
Тесты устроены таким образом, что они проверяют решение разными способами и на разных данных. Часто решение работает с одними входными данными, но не работает с другими. Чтобы разобраться с этим моментом, изучите вкладку «Тесты» и внимательно посмотрите на вывод ошибок, в котором есть подсказки.
Мой код отличается от решения учителя
Это нормально , в программировании одну задачу можно выполнить множеством способов. Если ваш код прошел проверку, то он соответствует условиям задачи.
В редких случаях бывает, что решение подогнано под тесты, но это видно сразу.
Прочитал урок — ничего не понятно
Создавать обучающие материалы, понятные для всех без исключения, довольно сложно. Мы очень стараемся, но всегда есть что улучшать. Если вы встретили материал, который вам непонятен, опишите проблему в «Обсуждениях». Идеально, если вы сформулируете непонятные моменты в виде вопросов. Обычно нам нужно несколько дней для внесения правок.
Кстати, вы тоже можете участвовать в улучшении курсов: внизу есть ссылка на исходный код уроков, который можно править прямо из браузера.
Определения
- Константа — способ сохранить информацию и дать ей имя для последующего использования в коде; константы нельзя изменять, в отличие от переменных.
Константы (constants)
В отличие от некоторых других языков, в Питоне нет возможности объявить неизменяему переменную.
Для обозначения переменных, значения которых не должны меняться существует договорённость именовать их прописными буквами.
MY_CONSTANT = 'моя «константа»'
Конечно, ничто не препятствует замене значения для имени MY_CONSTANT , однако это будет нарушением соглашения.
В классах
Для получения неизменяемых значений в классах иногда целесообразно использовать дескрипторы, в частности property, дозволяющие только чтение.
Разметка Final
Начиная с +py3.8 для аннотации стал доступен тип typing.Final , и если в проекте используется анализ типов, то анализатор сможет обнаружить замену значений.
from typing import Final
MY_CONSTANT: Final = 1
# Переназначить по-прежнему можно, но это заметит статический анализатор типов.
MY_CONSTANT = 2
Вопросы с меткой [константа]
Ещё никто не добавил руководство по использованию для метки константа, но есть описание этой метки.
35 вопросов
Конкурсные
Неотвеченные
- Конкурсные 0
- Неотвеченные
- Цитируемые
- Рейтинг
- Неотвеченные (мои метки)
49 показов
Ближайший ноль. Проблемы с выносом констант
Помогите исправить замечания по коду. Нужно вынести константу как ключевой аргумент интерфейса функции и объявить список с индексами нулей в начале алгоритма. def nearest_zero (n, street) -> .
задан 7 авг в 9:45
38 показов
Оптимальный вариант локальной именованной константы
Есть потенциально тяжелый (например, с необходимость динамического выделения памяти) локальный неизменяемый объект класса BigObject. Этот объект используется по месту, например: void f() < g(.
задан 5 мая в 11:30
185 показов
Выражение должно иметь константное значение
Visual Studio выдает ошибку «выражение должно иметь константное значение» когда задается массив размера N. В чем проблема и как ее решить? #include
задан 2 янв в 5:46
Не находит константну (в основном на IOS) [закрыт]
Описание В проекте, при переходе на одну из страниц, сайт должен проверять присутствуют данные в localStorage? Если да то они должны быть присвоены константу sheet и обработаны. Основная структура .
задан 18 дек 2022 в 15:44
167 показов
Почему java требует сделать поле константой, тогда как оно уже является константой?
Значение аннотации @EnableRedisHttpSession инициализируется значением константы SESSION_TIME_TO_LIVE: @Configuration @EnableRedisHttpSession(maxInactiveIntervalInSeconds = SessionConfig.
задан 25 июн 2021 в 12:48
173 показа
Недопустимый аргумент шаблона, требуется константное выражение времени компиляции [закрыт]
Есть следующая структура классов: RCC.h #pragma once template
задан 18 июн 2021 в 7:32
144 показа
Зачем писать const в конструкторе
class World < public: World(const char* str); private: char* string[255]; >или class World < public: World(char* str) const; private: char* string[255]; >И в чём отличие первого .
задан 28 окт 2020 в 19:40
732 показа
Почему изменение const в цикле не вызывает ошибок и работает корректно?
На просторах Интернета встретил несколько функций наподобие этого кода: const popupLinks = document.querySelectorAll(«.popup-link»); if (popupLinks.length > 0)< for (let i =0; i< .
задан 27 окт 2020 в 11:00
На выходе нужно получить многомерный массив, где каждый вложенный массив состоит из цифр, в сумме дающих значение константы [закрыт]
имеется значение константы = 10 и имеется массив значений = [1, 2, 5, 10, 9, 8, 6, 4] нужно упорядочить массив значений так чтобы он не превышал значение константы например значение константы = 10 .
задан 26 окт 2020 в 9:25
4k показов
Что такое литералы? [дубликат]
В следующем примере 1 и Кот это литералы, а a1, c и cat — переменные: int a1 = 1; int c = a1; string cat = «Кот»; Если «Литерал» это фиксированное значение, то зачем это .
задан 15 окт 2020 в 5:20
55 показов
Как в Delphi объявить константу равную меньшей из двух других?
Для удобства работы, хочу задать некоторые ограничения константами. Например: const MAX_BUFFERS = 16; MAX_SOURCES = 32; MAX_SOUNDS = 16; Часть из констант со-зависимы. Хочу их связать. .
задан 23 сен 2020 в 8:50
1k показов
Зачем нужны константные параметры функции?
Зачем нужны константные параметры функции? Нужен реальный пример использования. То есть когда стоит писать, например, так void foo(const int x); а не так void foo(int x); upd Не является дубликатом .
задан 10 июл 2020 в 7:21
335 показов
Почему пишут const когда можно написать let?
Я иногда вижу, что пишут const (значение этой переменной я знаю), хотя можно просто написать let. Это что, просто особенность «подчерка»? Вот пример: const prev = document.querySelector(«.btn_prev»);.
задан 29 апр 2020 в 2:04
Организация набора констант, используемых в классе
Я рассматриваю варианты организации набора констант в классе. Константы строковые или других сложных типов (не интегральные). Образуют своеобразную иерархическую структуру, если можно так выразиться. .
задан 22 авг 2019 в 13:39
855 показов
Подсветка кода в Visual studio 2017 работает с перебоями для #define-ов, прописанных во включаемых файлах
Пишу программу на C++ с использованием WinSock2. Эта библиотека содержит ряд констант и макросов, созданных с помощью #define. Во время написания кода эти константы и макросы в случайные моменты .
задан 19 авг 2019 в 13:52
15 30 50 на странице
-
Важное на Мете
Связанные метки
Подписаться на ленту
Лента новых вопросов с меткой [константа]
Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.
Дизайн сайта / логотип © 2023 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2023.11.15.1019
Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.
Создание констант в Python
Константы играют важную роль в программировании. Они используются для хранения значений, которые не изменяются по мере выполнения программы. Например, число Пи, коэффициенты преобразования единиц измерения и другие постоянные значения.
В некоторых языках программирования, таких как Java и C++, есть встроенные механизмы для объявления констант. Например, в Java константы объявляются с использованием ключевых слов final и static :
public static final double PI = 3.14159;
Однако в Python нет встроенного механизма для объявления констант. Значения переменных в Python могут быть изменены в любой момент, и нет прямого способа указать, что переменная должна оставаться константой после ее инициализации.
Но есть общепринятый подход для создания констант в Python, который основан на соглашениях об именовании. Согласно PEP 8, имена констант должны быть написаны прописными буквами с подчеркиваниями между словами. Например:
PI = 3.14159 GRAVITY = 9.8
Несмотря на это, Python не будет предотвращать изменение этих переменных. Однако, следуя этому соглашению об именовании, другие программисты будут понимать, что переменная предназначена для использования как константа, и они не должны пытаться изменить ее значение.
Так, в Python нет встроенного способа объявить константу, но с помощью соглашений об именовании можно эффективно создавать и использовать константы. Это помогает усилить структуру и читаемость вашего кода, делая его более понятным для других разработчиков.
