Comment est-ce que je vois le type d'une variable si elle est non signée 32 bits, signée 16 bits, etc.?
Comment puis-je le voir?
Comment est-ce que je vois le type d'une variable si elle est non signée 32 bits, signée 16 bits, etc.?
Comment puis-je le voir?
La question est quelque peu ambiguë -- je ne suis pas sûr de ce que tu veux dire par "voir". Si vous essayez d' interroger le type d'un natif objet Python, @atzz's réponse permettra de vous orienter dans la bonne direction.
Toutefois, si vous essayez de générer des objets Python qui ont la sémantique des primitives de type C, (comme uint32_t
, int16_t
), l'utilisation de l' struct
module. Vous pouvez déterminer le nombre de bits dans un C-type primitif ainsi:
>>> struct.calcsize('c') # char
1
>>> struct.calcsize('h') # short
2
>>> struct.calcsize('i') # int
4
>>> struct.calcsize('l') # long
4
Cela se reflète également dans l' array
module, qui peut faire des tableaux de plus en plus ces types de niveau:
>>> array.array('c').itemsize # char
1
L'entier maximal soutenu (Python 2 int
) est donnée par sys.exemple maxint.
>>> import sys, math
>>> math.ceil(math.log(sys.maxint, 2)) + 1 # Signedness
32.0
Il est également sys.getsizeof, qui retourne la taille réelle de l' Python objet résiduel de la mémoire:
>>> a = 5
>>> sys.getsizeof(a) # Residual memory.
12
Pour flottent des données et la précision des données, l'utilisation sys.float_info:
>>> 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)
Voulez-vous dire en Python ou en utilisant ctypes?
Dans le premier cas, vous ne peut tout simplement pas - parce que Python n'a pas signé/non signé, 16/32 bits entiers.
Dans le second cas, vous pouvez utiliser type()
:
>>> import ctypes
>>> a = ctypes.c_uint() # unsigned int
>>> type(a)
<class 'ctypes.c_ulong'>
Pour plus d'information sur ctypes, un son type, voir la documentation officielle.
Python ne pas ces types comme vous décrire. Il existe deux types utilisés pour représenter des valeurs intégrales : , qui correspond au type int de la plate-forme c, et
, qui est un entier de précision arbitraire (c'est-à-dire qu’il se développe selon les besoins et n’est pas une limite supérieure). s sont converties en silence en
si une expression produit résultat qui ne peut pas être stocké dans `` .
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.