Yanıtlar:
Sys.maxint sabiti kaldırıldı, çünkü artık tamsayıların değeri için bir sınır yok. Ancak, sys.maxsize herhangi bir pratik liste veya dize dizininden daha büyük bir tamsayı olarak kullanılabilir. Uygulamanın "doğal" tamsayı boyutuna uygundur ve genellikle aynı platformda önceki sürümlerde sys.maxint ile aynıdır (aynı oluşturma seçeneklerini varsayarak).
Başkaları tarafından belirtildiği gibi, Python 3'lerin int
maksimum boyutu yoktur, ancak sadece başka bir int
değerden daha yüksek olduğu garanti edilen bir şeye ihtiyacınız varsa, Infinity için şamandıra değerini kullanabilirsiniz float("inf")
.
Python 3 ints maksimum değildir.
Amacınız Python'la aynı şekilde derlendiğinde C'deki bir int'in maksimum boyutunu belirlemekse, yapı modülünü kullanarak şunları bulabilirsiniz:
>>> import struct
>>> platform_c_maxint = 2 ** (struct.Struct('i').size * 8 - 1) - 1
Python 3 int nesnelerinin dahili uygulama ayrıntılarını merak ediyorsanız, sys.int_info
basamak başına bit ve basamak boyutu ayrıntılarına bakın. Hiçbir normal program bunlarla ilgilenmemelidir.
Diğerlerinden daha büyük bir sayı arıyorsanız:
Yöntem 1:
float('inf')
Yöntem 2:
import sys
max = sys.maxsize
Diğerlerinden daha küçük bir sayı arıyorsanız:
Yöntem 1:
float('-inf')
Yöntem 2:
import sys
min = -sys.maxsize - 1
Yöntem 1, hem Python2 hem de Python3'te çalışır. Yöntem 2, Python3'te çalışır. Python2 Yöntem 2 denemedim.
Python 3'ün ints keyfi uzunluğa sahip olduğundan Python 3.0 artık sys.maxint'e sahip değil. Sys.maxint yerine sys.maxsize; pozitif boyutta bir maksimum boyut_t aka Py_ssize_t.
Bir alternatif
import math
... math.inf ...