Comunidad de diseño web y desarrollo en internet online

Python desde cero: números, letras y variables

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

:

25


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)


:

25
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)


:

18.0
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
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"


:

Hola, como te llamas?: Giovanni
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.

Publica tu comentario

o puedes...

¿Estás registrado en Cristalab y quieres
publicar tu URL y avatar?

¿No estás registrado aún pero quieres hacerlo antes de publicar tu comentario?

Registrate