Bir değişkenin türünün işaretsiz 32 bit, işaretli 16 bit vb. olup olmadığını nasıl görebilirim?
Nasıl görüntüleyebilirim?
type()` fonksiyonunu arıyor olabilirsiniz.
Aşağıdaki örneklere bakın, ancak Python'da Java'da olduğu gibi "unsigned" türü yoktur.
Pozitif tamsayı:
>>> v = 10
>>> type(v)
<type 'int'>
Büyük pozitif tamsayı:
>>> v = 100000000000000
>>> type(v)
<type 'long'>
Negatif tamsayı:
>>> v = -10
>>> type(v)
<type 'int'>
Harfi harfine karakter dizisi:
>>> v = 'hi'
>>> type(v)
<type 'str'>
Kayan noktalı tamsayı:
>>> v = 3.14159
>>> type(v)
<type 'float'>
print type(variable_name)
Ayrıca bu gibi sorularla uğraşırken IPython etkileşimli yorumlayıcısını şiddetle tavsiye ederim. Değişken_adı?" yazmanıza izin verir ve tür ve türün doküman dizesi de dahil olmak üzere nesne hakkında tam bir bilgi listesi döndürür.
Örneğin.
In [9]: var = 123
In [10]: var?
Type: int
Base Class: <type 'int'>
String Form: 123
Namespace: Interactive
Docstring:
int(x[, base]) -> integer
Mümkünse bir dizeyi veya sayıyı tam sayıya dönüştürün. Kayan noktalı bir bağımsız değişken sıfıra doğru kesilecektir (buna bir dize dahil değildir kayan noktalı bir sayının temsili!) Bir dizeyi dönüştürürken, isteğe bağlı tabanı kullanın. Bir dizeyi dönüştürürken bir taban sağlamak bir hatadır. Dize olmayan. Bağımsız değişken tamsayı aralığının dışındaysa bir long nesnesi bunun yerine döndürülecektir.
Soru biraz muğlak -- "view" ile ne kastettiğinizden emin değilim. Eğer yerel bir Python nesnesinin türünü sorgulamaya çalışıyorsanız, @atzz'ın cevabı sizi doğru yöne yönlendirecektir.
Ancak, ilkel C-tiplerinin semantiğine sahip (uint32_t
, int16_t
gibi) Python nesneleri üretmeye çalışıyorsanız, struct
modülünü kullanın. Belirli bir C-tipi ilkelindeki bit sayısını şu şekilde belirleyebilirsiniz:
>>> struct.calcsize('c') # char
1
>>> struct.calcsize('h') # short
2
>>> struct.calcsize('i') # int
4
>>> struct.calcsize('l') # long
4
Bu durum, bu alt düzey türlerden diziler oluşturabilen array
modülüne de yansıtılır:
>>> array.array('c').itemsize # char
1
Desteklenen maksimum tamsayı (Python 2'nin int
i) sys.maxint tarafından verilir.
>>> import sys, math
>>> math.ceil(math.log(sys.maxint, 2)) + 1 # Signedness
32.0
Ayrıca, kalan bellekteki Python nesnesinin gerçek boyutunu döndüren sys.getsizeof de vardır:
>>> a = 5
>>> sys.getsizeof(a) # Residual memory.
12
Float veriler ve hassas veriler için sys.float_info kullanın:
>>> sys.float_info
sys.floatinfo(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.2204460492503131e-16, radix=2, rounds=1)