Foros del Web » Programando para Internet » Python »

Print con diversos datos ¿Y funciona igual?

Estas en el tema de Print con diversos datos ¿Y funciona igual? en el foro de Python en Foros del Web. Hay una cosa que me intriga de Print. Tengo la versión 2.7 de Python. Tanto si escribo en el IDLE de Python o dentro de ...
  #1 (permalink)  
Antiguo 18/09/2011, 02:56
 
Fecha de Ingreso: diciembre-2009
Ubicación: Spain
Mensajes: 180
Antigüedad: 14 años, 4 meses
Puntos: 9
Print con diversos datos ¿Y funciona igual?

Hay una cosa que me intriga de Print. Tengo la versión 2.7 de Python. Tanto si escribo en el IDLE de Python o dentro de PythonG o con el Geany (que aún no me aclaro), el resultado es el mismo para Print.

Pongo:

Print 9 y me sale en pantalla 9

Print "9" y me sigue saliendo el 9

Print ("9") y otra vez el 9


¿De cuantas formas se puede escribir un mismo argumento? ¿No se puede liar uno si tiene diversas formas de escribirlo y no da error?
  #2 (permalink)  
Antiguo 18/09/2011, 07:28
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 1 mes
Puntos: 1360
Respuesta: Print con diversos datos ¿Y funciona igual?

Lo que pasa es que print es una sentencia y no una función.

Explicación:
Código Python:
Ver original
  1. print 9
Imprimes el numero 9

Código Python:
Ver original
  1. print "9"
Imprimes un string que contiene 9

Código Python:
Ver original
  1. print ("9")
Lo mismo, Imprimes un string que contiene 9

Pero si haces esto
Código Python:
Ver original
  1. print ("9",)
Imprimirá una tupla de tamaño 1, con el string "9" como elemento.

Pero creo que la forma mas estándar es escribir las cosas con formato.
Código Python:
Ver original
  1. print "%d %s" % (9, "9")
  #3 (permalink)  
Antiguo 18/09/2011, 07:50
 
Fecha de Ingreso: diciembre-2009
Ubicación: Spain
Mensajes: 180
Antigüedad: 14 años, 4 meses
Puntos: 9
Respuesta: Print con diversos datos ¿Y funciona igual?

Cita:
Iniciado por razpeitia Ver Mensaje
Lo que pasa es que print es una sentencia y no una función.
Ok. Lo que pasa que en Python 3.xx si que es una función ¿No?. Bueno, de echo no me preocupa por que yo voy a estudiar el 2.7.2
  #4 (permalink)  
Antiguo 18/09/2011, 08:10
Avatar de DrFaust  
Fecha de Ingreso: septiembre-2011
Ubicación: Buenos Aires
Mensajes: 308
Antigüedad: 12 años, 8 meses
Puntos: 87
Respuesta: Print con diversos datos ¿Y funciona igual?

Cita:
Iniciado por Koan Ver Mensaje
¿No se puede liar uno si tiene diversas formas de escribirlo y no da error?
Qué.

¿Te preocupa que un programador se confunda porque una misma sentencia pueda aceptar tanto enteros como cadenas? Eso no podría pasar, porque un programador tan despistado no llegaría a ejecutar el intérprete de Python; moriría electrocutado intentando regar su computadora mientras enciende sus flores.

Me parece que estás llevando el principio de "debe haber una sola manera de hacer cada cosa" al absurdo.
  #5 (permalink)  
Antiguo 18/09/2011, 09:22
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 1 mes
Puntos: 1360
Respuesta: Print con diversos datos ¿Y funciona igual?

Cita:
Iniciado por Koan Ver Mensaje
Ok. Lo que pasa que en Python 3.xx si que es una función ¿No?. Bueno, de echo no me preocupa por que yo voy a estudiar el 2.7.2
Si, de hecho puedes ejecutar esto y volver print una función.
Código Python:
Ver original
  1. from __future__ import print_function
  #6 (permalink)  
Antiguo 18/09/2011, 10:16
 
Fecha de Ingreso: diciembre-2009
Ubicación: Spain
Mensajes: 180
Antigüedad: 14 años, 4 meses
Puntos: 9
Respuesta: Print con diversos datos ¿Y funciona igual?

Cita:
Iniciado por DrFaust Ver Mensaje
Qué.

¿Te preocupa que un programador se confunda porque una misma sentencia pueda aceptar tanto enteros como cadenas? Eso no podría pasar, porque un programador tan despistado no llegaría a ejecutar el intérprete de Python; moriría electrocutado intentando regar su computadora mientras enciende sus flores.

Me parece que estás llevando el principio de "debe haber una sola manera de hacer cada cosa" al absurdo.
Si no me preocupara, no se hubieran tomado la molestia los señores de Python en "mejorar" su lenguaje.

Creo que debes saber que te diriges a una persona que esta aprendiendo. Es lógico que igual haga preguntas un poco simples o sean dudas muy primitivas. No todo el mundo está a tu nivel.

Yo también se contestar de forma graciosa. O mirar por encima del hombro como has hecho tú. Pero me lo guardaré para cuando este a tu altisimo poder programador.

Entre tanto me quedo con las respuestas que me ofrecido razpeita. Y no me cansaré de dar gracias las veces que haga falta.
  #7 (permalink)  
Antiguo 18/09/2011, 17:54
Avatar de DrFaust  
Fecha de Ingreso: septiembre-2011
Ubicación: Buenos Aires
Mensajes: 308
Antigüedad: 12 años, 8 meses
Puntos: 87
Respuesta: Print con diversos datos ¿Y funciona igual?

Fah, suceptibilidad al palo.

No fue mi intención ofenderte, pero por si te interesa, a mí tampoco me encanta que hayas armado un culebrón alrededor de un chiste sobre regar computadoras. Todos acá estamos aprendiendo, y si actuamos como si todo el mundo se estuviera riendo de nosotros a nuestras espaldas no vamos a llegar a ninguna parte.

Este infograma parece adecuado para la situación:

http://i54.tinypic.com/2ilc9r9.jpg

Última edición por DrFaust; 18/09/2011 a las 19:25
  #8 (permalink)  
Antiguo 19/09/2011, 07:57
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Print con diversos datos ¿Y funciona igual?

Para evitar posibles confusiones, creo que vale la pena aclarar que

print ("9")

en Python < 3 NO es llamar a print como función, sino imprimir una tupla de 1 elemento.
El caso es que, como solamente tiene 1 elemento, python no genera la tupla y por eso lo imprime como un solo valor (la cadena '9'). De ahí que tiene sentido el ejemplo de razpeitia de forzar la generación de la tupla escribiendo (9,)


Saludos.
  #9 (permalink)  
Antiguo 20/09/2011, 11:33
 
Fecha de Ingreso: diciembre-2009
Ubicación: Spain
Mensajes: 180
Antigüedad: 14 años, 4 meses
Puntos: 9
Respuesta: Print con diversos datos ¿Y funciona igual?

Cita:
Iniciado por AlvaroG Ver Mensaje
Para evitar posibles confusiones, creo que vale la pena aclarar que

print ("9")

en Python < 3 NO es llamar a print como función, sino imprimir una tupla de 1 elemento.
El caso es que, como solamente tiene 1 elemento, python no genera la tupla y por eso lo imprime como un solo valor (la cadena '9'). De ahí que tiene sentido el ejemplo de razpeitia de forzar la generación de la tupla escribiendo (9,)


Saludos.
Gracias...!

Etiquetas: print, formulario
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:23.