Hemos visto en los anteriores tutoriales de Aprende Python desde cero, algunos tipos de objetos (números y letras) y ya vimos cómo hacer que las variables apunten a ellos; ahora lo que aprenderemos es mezclar un poco las cosas para que hagamos cosas más avanzadas.
Ya vimos que si queremos que un programa imprima 25 en la pantalla, el siguiente código no funciona, porque no podemos sumar números y cadenas:
Código :
var1 = 2 var2 = '5' print var1 + var2
Parte del problema es que la computadora no sabe si estas tratando de obtener un 7 (2 + 5) o si quieres obtener un 25 (’2′ + ’5′).
Antes de que podamos sumarlos o concatenarlos, necesitamos obtener una cadena de var1 u obtener un entero de var2.
Conversiones
Para obtener una cadena de un objeto, simplemente escribimos str() y dentro de los paréntesis ponemos el objeto que queremos convertir a cadena.
Código :
var1 = 2 var2 = '5' print str(var1) + var2
:
De la misma forma, int() nos da un entero y float() nos da un flotante. Veamos que es lo que estas funciones hacen (y no hacen) de manera más detallada:
Código :
var1 = 2 var2 = '5' print str(var1) + var2 print var1 + int(var2)
:
7
Nótese que aunque obtenemos la cadena de var1 llamando a la función str(), la variable sigue apuntando a 2 y no a '2';, a no ser que reasignemos var1 (lo cual requiere del sigo = ), mientras no le reasignemos un nuevo valor a una variable, ésta seguirá apuntando al valor que le dimos por el resto del programa.
Ahora veamos algunas conversiones más interesantes:
Código :
print float(18) print float('99.99') print int(99.99) print '' print int("8") print float("6") print '' print str("Cadena") print int(3)
:
99.99
99
8
6.0
Cadena
3
Vamos a analizar los resultados. Lo primero se ve obvio, no da 18.0. Después de eso convertimos la cadena '99.99' a flotante y el número flotante 99.99 nos da 99. ¿Por qué sucede esto? Cuando obtenemos un número entero de un flotante, la parte decimal se trunca (no se redondea) y por lo tanto nos quedamos con la parte entera, como vimos en lecciones pasadas.
Luego convertimos dos cadenas, una a entero y una a float. Y finalmente las dos últimas conversiones no hicieron nada, como se esperaba.
Hagamos un breve vistazo a print. Hay algo extraño en esta sentencia. Veamos:
Código :
print 22 print str(22) print '22'
:
22
22
¿Por qué estas tres líneas nos imprimen lo mismo? Bueno, las últimas dos deberían ya que str(22) es lo mismo que '22'. Pero ¿qué hay del primero? El 22 es un entero. Ahora que lo vemos, ¿qué significa escribir un 22 entero? Cuando escribes en una hoja de papel por ejemplo un 1 y después un 0, estas escribiendo una cadena. 10 es el número entero de dedos que tenemos en las manos, no es un 1 seguido de un 0.
Antes de que usemos print en un número, python lo transforma a cadena para que lo veamos en la pantalla. Ahora que ya sabemos esto, podemos enfrentarnos a lo siguiente con un poco más de conocimiento.
Obteniendo datos del usuario
Si podemos escribir en la pantalla usando print, también podemos obtener datos del usuario usando raw_input() en python 2.x o input() en python 3.x. Cuando obtenemos datos del usuario solo recibimos cadenas. ¿De dónde las obtenemos? Pues del teclado obviamente. Y como el teclado escribe cadenas, todo funciona de maravilla =)
Veamos un ejemplo de cómo funciona raw_input():
Código :
nombre = raw_input("Hola, como te llamas?: ") print "Tu nombre es " + nombre print "Gusto en conocerte " + nombre + ", me gusta ese nombre"
:
Tu nombre es Giovanni
Gusto en conocerte Giovanni, me gusta ese nombre
Listo, el programa funciona correctamente, veamos que hicimos. Usamos raw_input(), la cadena que va dentro del paréntesis es el mensaje que queremos dar al usuario, a esto se le llama prompt, lo que escribe el usuario hasta que presiona enter lo guardamos en una variable, a esa variable la llamamos nombre. Ahora podemos usar esa variable en el programa y así hemos hecho ya nuestro primer programa interactivo =)
Ejercicios
- Escribe un programa que pregunte el nombre de una persona, luego el apellido paterno, luego el apellido materno, finalmente haz que salude a la persona usando su nombre completo
- Escriba un programa que pregunte el número favorito de una persona. Que tu programa le sume 1 a ese número y que lo sugiera como uno mejor y más grande
- Escribe un programa que pida dos números, y luego que de el resultado de la suma, resta, multiplicación, división y residuo de esos dos números.
Listo, ya terminamos esta lección, en la siguiente veremos cómo hacer nuestros métodos y empezar a hacer programas que sean más inteligentes.
Por cierto, las respuestas a los ejercicios estarán en el siguiente post en un enlace a Pastebin para que lo vean. O no sé si lo quieren todas las respues en un post completo, ustedes voten.
¿Sabes SQL? ¿No-SQL? Aprende MySQL, PostgreSQL, MongoDB, Redis y más con el Curso Profesional de Bases de Datos que empieza el martes, en vivo.
Por Ronel el 25 de Enero de 2012
Me gusto el tutorial
Saludos!
Por Gidrek el 25 de Enero de 2012
Ronel-blog :
Me gusto el tutorial
Saludos!
Hola, aún no termino el tutorial, me faltan todavía muchas lecciones y apenas estoy empezando jeje, espero que te pueda ser útil.
Saludos
Por trece el 25 de Enero de 2012
Por Gidrek el 25 de Enero de 2012
trece-blog :
Si hay excepciones en Python pero no sé si lo llegue a tocar, al ser más que nada un tutorial para quienes no saben programar o casi no saben yo considero que es algo avanzado aunque no se, depende también si se quiera, de ser así tocaré muchas más cosas y creo que será un tutorial largo y no quiero dejarlo sin alguna conclusión.
Ya dependerá si lo piden mucho u otras cuestiones, pero por ahora veré algunas cosas más que están apuntados en mi agenda de este tutorial
Por trece el 26 de Enero de 2012
Por ach4m0 el 26 de Enero de 2012
Por Gurtelti3r el 27 de Enero de 2012
Por Gurtelti3r el 27 de Enero de 2012
Por gomixx18 el 31 de Enero de 2012
saludos!!!!
Por Daniel el 29 de Marzo de 2012
saludos
Por Solange el 18 de Abril de 2012
Por DXCuliacan el 21 de Abril de 2012
Por Paul´S el 18 de Septiembre de 2012
Por Dan el 14 de Mayo de 2013
Por anonimo el 19 de Noviembre de 2014