Hola GUTL! Con la intención de darle continuación al cursillo de Python que publico @Ozkar hace unos meses, aquí les traigo una tercera parte… Si es primera vez que escuchas de Python, llégate por esta introducción y esta otra. Si ya tienes conocimientos avanzados de programación y buscas referencias, pues este artículo NO es para ti 🙁 .
En los post anteriores aprendimos a mostrar en la pantalla un mensaje con print(), y a aceptar entradas del usuario con raw_input(); conociendo solo estas dos funciones podemos hacer nuestro primer programa interactivo.
Primero la idea, necesitamos un programa que nos pregunte el nombre y la edad, para luego decirnos como nos llamamos y que tan viejos estamos. Lo haremos con un script de tan solo tres líneas de código.
Anteriormente usamos raw_input() para esperar a que el usuario presionara enter antes de terminar el programa, pero también podemos recoger un mensaje (palabras o números) del usuario, aunque para esto debemos asignarle una variable:
nombre = raw_input (‘Como te llamas? ’)
Observa que le dimos una variable al valor, es decir, que lo que el usuario responda, se guarda en la variable “nombre” y así podemos acceder cuando lo necesitemos. Observa también que después del signo de pregunta, se deja un espacio antes de cerrar la comilla, esto es porque lo cualquier cosa que escriba el usuario, se muestra exactamente después de la comilla, sin espacio, por eso lo ponemos antes, pero pruébalo para que veas… bien, ya tenemos el nombre del usuario en la variable “nombre”, ahora a pedirle la edad.
edad = raw_input(‘Cuantos años tienes?: ‘)
Tenemos aquí la edad y el nombre, ahora, solo nos queda mostrarlos, presta atención, que aquí hay un truquito muy útil, que te puede confundir un poco…. Veamos:
print(‘Hola ’ + nombre + ‘, a que tienes’ + edad + ‘ años’)
Wao, que paso aquí? Es un print() normal, excepto que también necesitamos mostrar las variables, así que literalmente las sumamos a la oración (+) en la posición que necesitemos, ponemos lo que queremos mostrar entre ‘comillas’, y le sumamos las variables, que NO van entre comillas, y como tooodo esto esta dentro del print(), lo encerramos todo en paréntesis(….). Para entender esto, pudes usar un print() solo para cada variable, todo esta en que experimentes…
Si te sale todo junto, sin espacios, recuerda que estos deben ir dentro de las comillas, porque cuando sumamos las variables, van justo pegadas a las comillas, sea antes o después, siempre tienes que tener esto en mente.
No entiendo bien eso de la variable:
Bien, es asi, cuando usamos raw_input() para recoger información del usuario, necesitamos guardarlo en algún lado, puedes mirar la variable como la “gaveta” en la cual guardar la información que recoges, en este caso, tenemos dos “gavetas” llamadas ‘nombre’ y ‘edad’ cada una guardando lo que le asignamos; estas variables se pueden llamar de cualquier forma, pero es fuertemente recomendado que su nombre tenga que ver con su contenido; claro, tampoco puedes ponerles como nombres las funciones internas de Python(print, raw_input, y otras mas que iremos conociendo).
Bastante simple, verdad?, solo tienes que poner estas tres líneas en un archivo llamado miprograma.py y abrirlo como dice en los post anteriores…
Déjame saber en los comentarios si tuviste problemas entendiendo el contenido del post; y cualquier sugerencia para futuras publicaciones 🙂
print(‘Hola ’ + nombre + ‘, a que tienes’ + edad + ‘ años’)
este modo no es portable, debería ser
msj = ’ ’.join([‘Hola {name}, a que tienes {age} años’.format(name=nombre,age=edad)])
print msj
esta corre tanto en python 2 como en python 3 y además es multiplataforma.
Saludos
sip, pero no te parece mas complicado asi??? Recuerda que es para no-programadores..
Indeed! LoboObispo, ya llegará la parte de import os y demás 😉
Oye Spider Jerusalem estas vago … @ilid@n ha tenido q recoger el testigo del cursillo … 😉
😀 Sin comentarios! Estoy dedicando tiempo a subir mi skill en cerveza que lo tengo bajito.
Viking! ya mandé la última versión del commands.py, ya la testeé en mi casa, ahora funcionan al quilo todas las funciones.
oya una duda, cual es la diferencia entre os.popen() y subprocess.Popen() además del nombre?? Por lo que veo hacen lo mismo pero es mejor que lo diga un experto.
el modulo subprocess esta tratando de reemplazar funciones antiguas… asi que vete por el segundo 🙂 que tiene mas prestaciones
probando con python 2.6.6 el hacer esto:
edad = raw_input(«cuantos años tienes?: «)
me asigna a edad un string …. como podria hacer para q se reciba un int ¿algun tipo de casting?
puedes hacerlo directo edad = int(raw_input(“cuantos años tienes?: “))
o hacerlo despues
edadnum = int(edad)
y lo mismo con floats
edad = float(raw_input(“cuantos años tienes?: “))
Por cierto, paradix, python 2.6.6?? ya debian tiene la 2.7.5 que es la que yo uso, además de la 3.2.3 si lo llamas como python3, que debian tú tienes??
Jessie tiene 2.7.6… y va como la seda.
Lobo Obispo no me des chucho .. squeeze aun 🙂
pues apt-get dist-upgrade contigo!!
Hablando de debian, ayer salió el 7.4, Algún alma caritativa que publique el Release Notes aunque sea en inglés??
Ya lo envie a la lista
Deja ver que se puede hacer
No es mucho, pero de alguito te enteras:
http://swlx.cubava.cu/llega-la-cuarta-actualizacion-de-debian-wheezy/
O usar input() en vez de raw_input()
hay una pequeña diferencia entre ellas (que se explicara mas adelante)…pero desde el principio, es mejor ir con «buenas practicas»
El ejemplo se puede lograr en una linea de una manera bastante simple de la siguiente manera:
print ‘Hola %s, a que tienes %s años’ % (raw_input (‘Como te llamas? ‘), input(‘Cuantos años tienes?: ‘))
Hablando de Python, acabo de terminar una aplicacion que hice en Python y con Qt4 para consultar la base de datos de etecsa, y funciona tanto en GNU/* como en Windows, como en MacOsX, como en FreeBSD. Permite incluso hacer consultas utilizando expresiones regulares. Me gustaria compartirla en algun FLISOL, o algo por el estilo.
El script me dio bateos con las ‘ñ’
Muestro el error debajo
…..
File «curso.py», line 3
SyntaxError: Non-ASCII character ‘\xc3’ in file borrar.py on line 3, but no encoding declared; see http://www.python.org/peps/pep-0263.html for details
…..
Pero al agregarle
# -*- coding: utf-8 -*-
en la parte de arriba del fichero desparecio el problema.
Esto me había pasado en ruby también y esa fue la solución que le di.
Sldos
exacto! como ves, por defecto se usa ASCII, pero la codificacion se puede especificar
Muchas gracias empece a presentar este problema pero gracias a tu comentario lo pude resolver