[python] numeric limits
Sergio Perticone
g4ll0ws@gmail.com
Ven 11 Maggio 2007 22:16:16 CEST
n4rc0s wrote:
> Sergio Perticone wrote:
>> Sergio Perticone wrote:
>>
>>> Esiste in python qualcosa che equivale al C++-ish:
>>> std::numeric_limits<>::max()
>>>
>>> ?
>>>
>>> Grazie,
>>>
>>> s.
>>>
>>>
>> Uhm, ho trovato sys.maxint
>>
>> s.
>>
>
> no aspetta le cose non stanno proprio così :-)
>
> per gli interi ci sono due tipi: int e long. Sono stati unificati a
> partire dal 2.3. Credo ciò significhi
> che te ne puoi tranquillamente infischiare: è l'interprete che decide se
> usare l'uno o l'altro... Il limite maxint
> è per gli int. I long non hanno upper bound. Se non capisco male quello
> che succede è che se fai operazioni con
> int e superi il limite lui li converte silenziosamente in long e
> continua tranquillo. I long invece restano long. Non viene effettuata
> nessuna conversione implicita da long a int. La devi esplicitare con un
> cast, ma se vai fuori del limite ottieni nuovamente un long.
Ok, afferrato.
>
> [QUOTE]
> integers (type |int|) are implemented with C longs (signed 32 bits,
> maximum value is |sys.maxint|)
> Long integers (type |long|) have unlimited size (only limit is system
> resources).
> [/QUOTE]
>
> vediamo un po'...
>
> [CODE]
> >>> import sys
> >>> a=sys.maxint
> >>> a
> 2147483647
> >>> type(a)
> <type 'int'>
> >>> a+=1
> >>> type(a)
> <type 'long'>
> >>> a
> 2147483648L
> >>> a/=2
> >>> a
> 1073741824L
> >>> type(a)
> <type 'long'>
>
> ... a proposito dei cast...
>
> >>> a=sys.maxint
> >>> a+=1
> >>> type(a)
> <type 'long'>
> >>> type(int(a))
> <type 'long'>
> [/CODE]
>
> come vedi il cast a int ha restituito un long perché eravamo fuori dal
> limite.
>
> get the picture?
Sì, adesso è più chiaro... avevo intuito del casting automatico da int a
a long ma non sapevo del contrario e che il long non fosse limitato.
Il limite del float invece (sul mio pc) sembra attorno a 2^1023.
Grazie della spiegazione.
>
> ciao
> n4
>
Ciáuz,
s.
> _______________________________________________
> palermo mailing list
> palermo@lists.linux.it
> http://lists.linux.it/listinfo/palermo
>
Maggiori informazioni sulla lista
palermo