elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Rompecabezas de Bitcoin, Medio millón USD en premios


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  Atenti con el operador / en Python ahora xD
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Atenti con el operador / en Python ahora xD  (Leído 1,839 veces)
EzianGES

Desconectado Desconectado

Mensajes: 36


Ver Perfil
Atenti con el operador / en Python ahora xD
« 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:




En línea

adastra
Endless Learner
Ex-Staff
*
Desconectado Desconectado

Mensajes: 885


http://thehackerway.com/


Ver Perfil WWW
Re: Atenti con el operador / en Python ahora xD
« Respuesta #1 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






En línea

EzianGES

Desconectado Desconectado

Mensajes: 36


Ver Perfil
Re: Atenti con el operador / en Python ahora xD
« Respuesta #2 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






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
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines