Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: EzianGES en 27 Febrero 2014, 17:44 pm



Título: Atenti con el operador / en Python ahora xD
Publicado por: EzianGES en 27 Febrero 2014, 17:44 pm
Hasta donde yo recordaba, si hacía algo así:
Código
  1. >>>3 / 2
  2. 1
  3. >>>3 // 2
  4. 1
  5. >>>3.0 / 2
  6. 1.5
  7. >>>3 / 2.0
  8. 1.5
  9.  

Python me devolvía un número entero si usaba / entre dos números enteros, y un número entero con // sin importar que fuesen float...

Formateo la PC, me bajo Python3.3.4 y me topo con lo siguiente (además de una web mejorada con una shell interactiva que se luce http://python.org/):
Código
  1. >>> 3 / 2
  2. 1.5
  3.  

¿Desde cuándo una división entre dos números enteros me devuelve float si o si? xD O siempre fue así y yo por algún motivo no me di cuenta? xD Busqué en la documentación sobre el último release y no dice nada al respecto D:




Título: Re: Atenti con el operador / en Python ahora xD
Publicado por: adastra en 27 Febrero 2014, 17:50 pm
 Pues si... es la "magia" de Python 3.
En versiones 2.x te devolvía un entero, en las nuevas versiones ahora te devuelve un flotante siempre ya que se hace una "floor division".
Si quieres remover la parte flotante del resultado, tienes que ejecutar la división con "//".


http://docs.python.org/3/tutorial/introduction.html
http://docs.python.org/3/glossary.html#term-floor-division (http://docs.python.org/3/glossary.html#term-floor-division)






Título: Re: Atenti con el operador / en Python ahora xD
Publicado por: EzianGES en 27 Febrero 2014, 18:15 pm
Pues si... es la "magia" de Python 3.
En versiones 2.x te devolvía un entero, en las nuevas versiones ahora te devuelve un flotante siempre ya que se hace una "floor division".
Si quieres remover la parte flotante del resultado, tienes que ejecutar la división con "//".


http://docs.python.org/3/tutorial/introduction.html
http://docs.python.org/3/glossary.html#term-floor-division (http://docs.python.org/3/glossary.html#term-floor-division)






Si, lo de quitar los decimales y demás lo capté jaja pero me sorprendió y pensé que algún distraído tampoco lo habría notado jaja