Рубрики
Без рубрики

Как сделать целое число больше, чем любое другое целое число в Python?

В этой статье рассматривается ситуация, когда вы должны реализовать целочисленный объект, который по сравнению с использованием более большего, чем оператора>, к любому другому существующему целому значению в программе, всегда вернутся. Перед погружением в возможные решения мы должны принять к сведению следующее: Python 2 состоит из простых целых чисел … Как сделать целое число больше, чем любое другое целое число в Python? Прочитайте больше “

Автор оригинала: Shubham Sayon.

В этой статье рассматривается ситуация, когда вы должны реализовать Целое число объект, который, по сравнению с использованием большего, чем оператор > , к любой другой существующей целочисленной цене в программе, всегда будет возвращать Правда Отказ

Перед погружением в возможные решения мы должны принять к сведению следующее:

Python 2 состоит из простые целые числа и длинные целые числа. Однако в Python 3 простые и длинные целые числа были объединены, и целое число в Python 3 такое же, как долго в Python 2. Следовательно, целочисленное значение не имеет максимальных и минимальных пределов в Python 3.

value1=9223372036854775807
print("value1=",value1)
print(type(value1))

value2=value1+1
print("value2=",value2)
print(type(value2))

Выход в Python 2:

value1= 9223372036854775807

value2= 9223372036854775808L
 

Выход в Python 3:

value1= 9223372036854775807                                                                                                  
                                                                                                                
value2= 9223372036854775808                                                                                                  
  

Примечание:

В 64-битной среде Sys.maxint Constant возвращает максимально возможное простое целочисленное значение в Python2, который является «9223372036854775807». Что-то выше, чем это значение будет автоматически преобразовано в длинный тип. Однако константу Sys.maxint была удалена в Python3, поскольку больше нет предела до значения целых чисел. В Python 3 Sys.maxsize можно использовать в качестве целого числа большего, чем любой другой практический список или строковый индекс в программе. Значение, возвращенное Sys.maxsize Constance, зависит от системы/платформы. Это означает, что для 32-битной платформы значение будет 2 ** 31 – 1 = 2147483647, в то время как в 64-битной платформе стоимость будет 2 ** 63 -.

Теперь позвольте нам исследовать, как мы можем использовать наибольшую целочисленную ценность в нашей программе:

Метод 1: Использование пользовательского класса

Все в Python – « объект». Кроме того, целые числа в Python3 нет ограничений. Таким образом, безопасно сказать, что целые числа в Python являются объектами без максимальных и минимальных пределов. Поэтому вероятный обходной путь для нашей задачи проблемы состоит в том, чтобы создать пользовательский класс и вернуть объект, который будет больше, чем любой другой объект в программе.

import functools
import sys

@functools.total_ordering
class AlwaysGreater(object):
    def __le__(self, other):
        return False

class MaximumInteger(AlwaysGreater, int):
    def __repr__(self):
        return 'MaximumInteger()'    
 
obj=MaximumInteger()
print(isinstance(obj,int))
print("1. Is obj greater than sys.maxsize?",obj > sys.maxsize)
print("2. Sorting list: [100,0,obj,922337036854775808,sys.maxsize] in ascending order: ")
print(sorted([100,0,obj,9223372036854775808,sys.maxsize]))

Выход:

True
1. Is obj greater than sys.maxsize? True                                                                                     
2. Sorting list: [100,0,obj,922337036854775808,sys.maxsize] in ascending order:                                              
[0, 100, 9223372036854775807, 9223372036854775808, MaximumInteger()]

Метод 2: Использование Python Infinity

Положительная бесконечность в Python – неопределенное число, которое больше, чем любое другое значение в программе. Чтобы представлять любое число в программе, которая выше, чем все остальные числа в программе, мы можем использовать бесконечность Python.

Следующий код представляет вышеуказанную концепцию:

import sys
value=float('Inf')
print("1. Is value greater sys.maxsize? :",value>sys.maxsize)
print("2. Sorting list: [100,0,value,922337036854775808,sys.maxsize] in ascending order: ")
print(sorted([100,0,value,9223372036854775808,sys.maxsize]))

Выход:

1. Is value greater sys.maxsize? : True                                                                                      
2. Sorting list: [100,0,value,922337036854775808,sys.maxsize] in ascending order:                                            
[0, 100, 9223372036854775807, 9223372036854775808, inf]

Отказ от ответственности: На данный момент нет способа представления бесконечности Python в качестве целочисленного значения. Однако, поскольку значения Python Float могут быть использованы для представления бесконечного целого числа. Следовательно, Int (float (‘inf’)) приведет к переполнению: не может преобразовать поплавок бесконечность в целое число.

Вы можете узнать больше о Python Infinity здесь.

Способ 3: Использование Infinity.infinity

Еще одна работа для получения наибольшего целочисленного значения – использование целочисленного значения Konsta VeseStreinen для Python, которое можно сравнить с любым объектом. Единственным вопросом с этим методом это не наследует от INT. Чтобы преодолеть эту проблему, мы можем создать подкласс, а затем сделать его наследующуюся от INT, как указано ниже:

from infinity import Infinity
import sys

class IntInfinity(Infinity, int):
  pass

print(isinstance(IntInfinity(), int))
obj = IntInfinity()
print("1. Is obj greater than sys.maxsize?", obj > sys.maxsize)
print("2. Sorting list: [100,0,obj,922337036854775808,sys.maxsize] in ascending order: ")
print(sorted([100, 0,obj, 9223372036854775808, sys.maxsize]))

Выход:

True
1. Is obj greater than sys.maxsize? True
2. Sorting list: [100,0,obj,922337036854775808,sys.maxsize] in ascending order:
[0, 100, 2147483647, 9223372036854775808, inf]

Вывод

Важно отметить, что целые числа в Python неограничены. Даже значения Sys.maxsize зависят от платформы, которую они выполняются, как упоминалось ранее. Это означает, что Sys.maxsize + 1> sys.maxsize. Предлагаемые методы являются вероятными обходами для создания целого числа большего, чем любое другое целое число в программе.

Я надеюсь, что вы нашли эту статью в блоге полезны, и это помогло вам. Будьте настроены на будущие обновления.

Я профессиональный Python Blogger и Content Creator. Я опубликовал многочисленные статьи и создал курсы в течение определенного периода времени. В настоящее время я работаю полный рабочий день, и у меня есть опыт в областях, таких как Python, AWS, DevOps и Networking.

Вы можете связаться со мной @: