Как сделать число бесконечность в питоне

Обновлено: 08.07.2024

Константа 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 это явно не лучшая практика и потенциально может иметь побочные эффекты в зависимости от вашего варианта использования, но просто подумал, что я выбрал бы альтернативу.

Читайте также: