[pyar] Int anti-intuitivo

Hystrix ego en hystrix.com.ar
Mar Nov 16 20:33:10 ART 2010


2010/11/15 Sebastian Bassi <sbassi en clubdelarazon.org>:
>>>> int(2)
> 2
>>>> int(2.1)
> 2
>>>> int("2")
> 2
>>>> int("2.1")
> Traceback (most recent call last):
>   File "<stdin>", line 1, in <module>
> ValueError: invalid literal for int() with base 10: '2.1'
> Hubiese esperado que me devuelva 2.
>


En el primer caso estas convirtiendo a int un int, lo cual funciona.

En el segundo caso estas convirtiendo a int un float y funciona.

En el tercer caso convertis un string que representa a un int, tambien funciona.

Pero en el cuarto caso queres convertir un string que no representa a
un int, es logico que falle. Lo que si tiene que funcionar es:

>>> int(float("2.1"))
2

Para int "2.1" es lo mismo que "dos.uno" y que "unstring", strings que
no representan enteros.
-- 
Hystrix



More information about the pyar mailing list