Sreevisakh - 1 year ago 131

Python Question

How can I assign the maximum value for a long integer to a variable, similar, for example, to C++'s

`LONG_MAX`

Answer Source

There is no explicitly defined limit. The amount of available address space forms a practical limit.

(Taken from this site). See the docs on Numeric Types where you'll see that `Long integers have unlimited precision`

. In Python 2, Integers will automatically switch to longs when they grow beyond their limit:

```
>>> import sys
>>> type(sys.maxsize)
<type 'int'>
>>> type(sys.maxsize+1)
<type 'long'>
```

for integers we have

The maximum value of an int can be found in Python 2.x with `sys.maxint`

. It was removed in Python 3, but `sys.maxsize`

can often be used instead. From the changelog:

The sys.maxint constant was removed, since there is no longer a limit to the value of integers. However, sys.maxsize can be used as an integer larger than any practical list or string index. It conforms to the implementation’s “natural” integer size and is typically the same as sys.maxint in previous releases on the same platform (assuming the same build options).

and, for anyone interested in the difference (Python 2.x):

sys.maxintThe largest positive integer supported by Python’s regular integer type. This is at least 2**31-1. The largest negative integer is -maxint-1 — the asymmetry results from the use of 2’s complement binary arithmetic.

sys.maxsizeThe largest positive integer supported by the platform’s Py_ssize_t type, and thus the maximum size lists, strings, dicts, and many other containers can have.

and for completeness, here's the Python 3 version:

sys.maxsizeAn integer giving the maximum value a variable of type Py_ssize_t can take. It’s usually 2^31 - 1 on a 32-bit platform and 2^63 - 1 on a 64-bit platform.

There's `float("inf")`

and `float("-inf")`

. These can be compared to other numeric types:

```
>>> import sys
>>> float("inf") > sys.maxsize
True
```