Как сделать число бесконечность в питоне
Константа math.pi возвращает значение математической константы π с точностью, которая зависит от конкретной платформы.
math.e :
Константа math.e возвращает значение математической константы e с точностью, которая зависит от конкретной платформы.
math.inf :
Константа math.inf возвращает положительную бесконечность, значение которое является типом float и может присутствовать в математических выражениях.
Русские Блоги
Специальный цифровой тип Python (бесконечность, бесконечность и т. Д.)
Следующее воспроизводится и бесконечна в Python, бесконечном и введении НАН. Он часто используется обычно используемым, и после увидеть, он перепечатан, а связанные знания будут продолжать добавлять.
Поплавок (‘inf’) бесконечно
—float (‘inf’) или float (‘- inf’) отрицательный
Где инф можно записать в инф
Начинать
Python IntersPent в целостности переполнения, потому что Python может представлять неограниченное целое число, пока память не будет вытеснена. Бесконечность часто требуется в программировании. Например, минимальное число выбрано из набора чисел. Обычно используют временную переменную для хранения конечного результата, переменная сравнивается и постоянно обновляет. И эта временная переменная обычно бесконечно бесконечна или со значением первого элемента.
Положительная бесконечность и бесконечная
Нет специального синтаксиса в Python, чтобы представлять эти значения, но может пройти float() Создать их:
Для того, чтобы проверить существование этих значений, используйте math.isinf() Суждение:
Бесконечное распространение больших чисел при выполнении математических расчетов
Это похоже на историю в математике. Бесконечность плюс постоянная все еще бесконечна, бесконечная и бесконечная вещества:
Какой результат бесконечного и бесконечного добавления?
Некоторые операции не определены и вернут одну NaN результат:
Не цифровой нан
nan Значение также будет распространяться во всех операциях и не будет давать исключения:
nan Возвращена любое сравнение ценности False :
Преобразование более безопасного типа
Из-за бесконечного присутствия некоторые исключения существуют в плавающей точке строки, и этот процесс преобразования не бросает исключение. Если программист хочет изменить поведение Python по умолчанию, вы можете использовать его. fpectl Модуль, но он не включен в стандартной сборке Python, это связана с платформой, а также для программистов на уровне экспертов. Вот относительно простое преобразование, просто добавьте один isdigit() судить:
Интеллектуальная рекомендация
Gensim Skip-Gram модель для Word2Vec
Вступление Генизм — это библиотека Python с открытым исходным кодом, которая используется для легко эффективно извлечь семантические темы в документах. Он используется для обработки оригинального, нес.
Встраиваем VSCode в OpenCV IDE (C ++, window10 1803)
Каталог статей вступление окружение шаг 1. Конфигурация Visual Studio Code 2. Конфигурация OpenCV 3. Конфигурация MinGw 4. Конфигурация cmake 5. Конфигурация проекта 6. Ссылка на ссылку В конце концов.
Интеграция и инструменты fastDFS + spring + maven
После завершения установки его нужно интегрировать в проект. 1. Поместите файл в папку config. 1.1 Содержание файла tracker_server = 192.168.1.202: 22122 — адрес сервера отслеживания, номер порта по у.
Основы Linux
Пользователи Linux делятся на два типа: Пользователь суперадминистратора: root, хранится в каталоге / root Обычные пользователи: хранятся в каталоге / home Каталог Linux /: [*] Корневой каталог. Как п.
Python Language Math Module Infinity and NaN ("not a number")
In all versions of Python, we can represent infinity and NaN ("not a number") as follows:
In Python 3.5 and higher, we can also use the defined constants math.inf and math.nan :
The string representations display as inf and -inf and nan :
We can test for either positive or negative infinity with the isinf method:
We can test specifically for positive infinity or for negative infinity by direct comparison:
Python 3.2 and higher also allows checking for finiteness:
Comparison operators work as expected for positive and negative infinity:
But if an arithmetic expression produces a value larger than the maximum that can be represented as a float , it will become infinity:
However division by zero does not give a result of infinity (or negative infinity where appropriate), rather it raises a ZeroDivisionError exception.
Arithmetic operations on infinity just give infinite results, or sometimes NaN:
NaN is never equal to anything, not even itself. We can test for it is with the isnan method:
NaN always compares as "not equal", but never less than or greater than:
Arithmetic operations on NaN always give NaN. This includes multiplication by -1: there is no "negative NaN".
There is one subtle difference between the old float versions of NaN and infinity and the Python 3.5+ math library constants:
Я работаю с графиками на Python. Я пытаюсь получить расстояние между каждой вершиной. Мне нужно использовать значение БЕСКОНЕЧНОСТЬ (представленное строкой "-") в ситуации, когда нет прямого пути между одной вершиной и другой. Попробовал пару решений. Один из них использовал безумно большой int для представления бесконечности. Однако я исследовал и обнаружил, что это плохая практика. Я также видел несколько решений по переполнению стека, в которых использовалась функция бесконечности математического модуля. Однако это не подходит для моей проблемы, поскольку мое значение INFINITY используется в пользовательском интерфейсе и должно выглядеть графически приятным. Вот почему моя БЕСКОНЕЧНОСТЬ должна оставаться строкой "-". Это ошибка, которую я получаю с моей текущей строкой кода:
Я не совсем уверен, но думаю, что 1
2 ответа
Использовать float("inf") или же math.inf
Если вам нужно использовать другое значение, кроме "inf" для бесконечности, например '-' в вашем примере вы могли бы try/except это, либо
- проверка того, является ли начальное значение вашей целевой строкой ( if a == '-': )
- разбор ошибки, вызывающей на нем float ( if "'-'" in str(err_string): )
Строка "-" это не бесконечность, даже если вы это имеете в виду. В Python вы можете получить тип двумя способами:
Ваша проблема не связана с использованием или вариантами использования бесконечного типа, но это проблема представления. Я считаю, что вы должны использовать обычный тип бесконечности в своей математике и создать свойство в своем классе, которое возвращает "-" а затем используйте его только тогда, когда вам нужно представить его в пользовательском интерфейсе, но не в математике.
Проблема, которая у вас возникает, больше связана с разделением представления и логики.
Я писал на python простую "угадайку". randint генерирует случайное число и записывает его в переменную. Дальше просят пользователя записать число. Если число совпадает, то пользователь победил. Как можно сделать так, чтобы если пользователь проиграл, то ему давали попробовать ещё раз без генерации нового числа?
1 ответ 1
Это очень просто:
Всё ещё ищете ответ? Посмотрите другие вопросы с метками python или задайте свой вопрос.
Похожие
Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.
дизайн сайта / логотип © 2022 Stack Exchange Inc; материалы пользователей предоставляются на условиях лицензии cc by-sa. rev 2022.1.21.41235
Вы можете свернуть свой собственный вариант Stream , обернув свою лямбда, чтобы выбросить исключенное исключение, а затем позже разблокировать это исключенное исключение в операциях терминала:
. Тогда вы можете использовать это же точный способ как Stream :
Это решение потребует довольно много шаблонов, поэтому я предлагаю вам взглянуть на библиотеку , которую я уже сделал , что делает именно то, что я описал здесь для всего класса Stream (и более!).
4 ответа
Вот как подавить предупреждения:
заменить nan на 1 :
Мы могли бы создать mask , используя тип тестирования что @P-robot демонстрирует:
Или с более грязными входами:
Это предполагает, что в любом входном массиве нет NaN, так? В противном случае вы можете замаскировать что-то. – Mehrdad 10 December 2016 в 02:21
Одно из решений может заключаться в том, чтобы избежать использования np.multiply.outer и найти решение, используя умножение по типу на матрицах, которые уже были проверены, чтобы увидеть, соответствуют ли они интересующему условию (ноль в одном массиве, inf в другом массиве ).
Eh . +1, так как он все же лучше, чем цикл, но да, не то, на что я надеялся. – Mehrdad 10 December 2016 в 02:04
Да, я ценю, что это не самое элегантное (или эффективное) решение, но оно позволяет избежать подавления предупреждений. Приветствия. – p-robot 10 December 2016 в 19:11
До вас, если вы хотите подавить предупреждения.
Да, я все еще хочу получить нормальное поведение для других случаев. Но +1, поскольку это обходной путь для некоторых людей (хотя и очевидный). – Mehrdad 10 December 2016 в 01:58
Хотя я согласен с ответом @ ShadowRanger, дешевым взломом может воспользоваться np.nan_to_num , который заменяет infs большими конечными числами, которые затем передадут вам inf * 0 = 0.
Чтобы преобразовать ненужные оставшиеся высокие конечные числа обратно в inf (учитывая некоторые другие операции помимо вашего вопроса), вы можете использовать несколько больших чисел на что угодно> 1, а затем разделить на одну и ту же сумму (чтобы не влиять другие номера). Например:
Перед потоком downvotes это явно не лучшая практика и потенциально может иметь побочные эффекты в зависимости от вашего варианта использования, но просто подумал, что я выбрал бы альтернативу.
Читайте также: