Computer >> Máy Tính >  >> Lập trình >> Python

Giá trị lớn nhất có thể có của một số nguyên trong Python là gì?

Không giống như C / C ++ Long trong Python 3 có độ chính xác không giới hạn và không có giới hạn được xác định rõ ràng. Số lượng không gian địa chỉ có sẵn được coi là giới hạn thực tế.

Trong python 2, các số nguyên sẽ tự động chuyển sang long khi chúng phát triển vượt quá giới hạn -

Python 2

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

Python 3

Maxint đã bị xóa trong python 3, nhưng bạn thường có thể sử dụng sys.maxsize để thay thế.

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

Từ đầu ra ở trên, chúng ta có thể thấy, trong python 3 int và long thực sự được hợp nhất và giá trị không có tầm quan trọng như vậy.

#Python 2.7

>>> import sys
>>> print sys.maxint# Max Integer value
2147483647
>>> print -sys.maxint -1# Min. Ineteger value
-2147483648

Nhưng trong python 3, chúng ta có thể gán giá trị cao hơn giá trị này vì lần này phạm vi sẽ được tăng lên. Sys.maxint được thay thế bằng sys.maxsize.

# Trong Python 3.6

>>> import sys
>>> print(sys.maxsize)
2147483647

Số nguyên, giá trị long và float lớn nhất &nhỏ nhất

#Python 2.7
import sys
print("Float value information: ",sys.float_info)
print("\n")
print("Long Integer value information: ",sys.long_info)
print("\n")
print("Maximum size of an integer: ",sys.maxsize)

đầu ra

('Float value information: ', sys.float_info(max=1.7976931348623157e+308, max_exp=1024, max_10_exp=308, 
min=2.2250738585072014e-308, min_exp=-1021, min_10_exp=-307, dig=15, 
mant_dig=53, epsilon=2.220446049250313e-16, radix=2, rounds=1))
('Long Integer value information: ', sys.long_info(bits_per_digit=30, sizeof_digit=4))
('Maximum size of an integer: ', 9223372036854775807L)

#Python 3.6

import sys
print("Float value information: ",sys.float_info)
print("\nInteger value information: ",sys.int_info)
print("\nMaximum size of an integer: ",sys.maxsize)

đầu ra

Float value information: sys.float_info(max=1.7976931348623157e+308, max_exp=1024, 
max_10_exp=308, min=2.2250738585072014e-308, min_exp=-1021, min_10_exp=-307, 
dig=15, mant_dig=53, epsilon=2.220446049250313e-16, radix=2, rounds=1)
Integer value information: sys.int_info(bits_per_digit=15, sizeof_digit=2)
Maximum size of an integer: 2147483647