La pregunta es... ¿qué scripts guardaremos si aún no hemos creado programa alguno? Bueno... ese es el motivo de este post: "Crear nuestro primer Script".
La mayoria de tutoriales, libros y demás artículos para iniciantes en cualquier lenguaje de programación ya sea Python, Java, Delphi, C, C++, Pascal, etc... normalmente tienen como primer programa de creación al tan famoso "Hola Mundo". Bueno... les digo que este post será la excepción.
Nuestro primer script en Python será un programa que pedirá como entrada algún dato numérico, confirmará si el dato ingresado cumple con el requerimiento solicitado y finalmente mostrará un texto (string) con esa confirmación en pantalla. Manos a la obra... Abre el IDLE, luego abre una ventana nueva en el menú File / New Window, pega este código en esa ventana y guardalo:
# -*- coding:utf-8 -*-
# Primer programa en Python - prueba.py
dato=input("Saludos amigo!! ingresa un número mayor que cero: ")
while dato<=0:
print "El número no es el indicado, debe der mayor que cero"
dato=input("Ingrese el número nuevamente: ")
print "Correcto!! El número ingresado es ",dato," ,gracias !!"
from time import sleep
sleep(5)
Explicación del código:
La línea 1 es la codificación de caracteres, utf-8, para poder poner tildes, eñes y demás. Sin esta línea y si tu código tiene carácteres especiales, el programa no funcionaría desde el modo consola (no te preocupes veremos esto luego). Sin embargo al ejecutarlo desde el IDLE (presionando F5), python se da cuenta del uso de estos carácteres y te sugiere poner la línea 1 mostrándote una pequeña ventana de alerta donde debes presionar la opción "Edit my file", de esta manera python añadirá en la primera línea de tu código lo siguiente # -*- coding: cp1252 -*- la cual tiene el mismo efecto que lo escrito con utf-8. Esta línea 1 siempre debemos ponerla en la primera línea de código de todos los programas que crearemos.
La línea 2 es sólo un comentario. Ten en cuenta que en python para hacer un comentario este debe ser encabezado por el símbolo # , el comentario será lo que se escriba en esa línea sin dar un salto a la siguiente. Al dar un salto de línea se sale del comentario. Si una línea no fue suficiente y queremos seguir comentando sobre lo mismo, en ese caso continuamos en la siguiente línea pero previamente escribimos como primer caracter el símbolo #.
La linea 4 permite la entrada de datos, en este caso se pide un número. La sentencia input (entrada) nos permite ingresar un dato de tipo numérico desde el teclado al programa. El efecto en pantalla es que cuando esta sentencia se ejecuta hace una pausa esperando por el valor requerido que es ingresado por el usuario. Ten en cuenta que nosotros estamos almacenando en una variable llamada dato el valor que es ingresado por input.
La estructura de input es la siguiente:
donde cadena es un texto entre comillas ( " " ) o apóstrofes ( ' ' ).
La línea 6 es un bucle o ciclo, es una sentencia que se realiza repetidas veces a un trozo aislado de código, hasta que la condición asignada a dicho bucle deje de cumplirse. Las líneas 7 y 8 son las tareas o sentencias para el bucle. Analicemos este grupo:
while dato<=0:
print "El número no es el indicado, debe der mayor que cero"
dato=input("Ingrese el número nuevamente: ")
while < condición >:
tarea 1
tarea 2
tarea 3
. . .
¿cómo funciona el bucle? pues... al iniciar el bucle primero se analiza la condición, si esta fuera verdadera entonces las sentencias del while se ejecutan y luego se regresa la dirección del programa otra vez a analizar la condición, si esta nuevamente es verdadera entonces otra vez de ejecutan las sentencias del bucle y otra vez se vuelve a analizar la condición, y asi sucesivamente ¿cuándo se detiene el bucle?, cuando al analizar la condición esta resulte falsa entonces no se ejecutan las sentencias y se sale del bucle (o se termina el bucle).
en el caso de la línea 6, en español estas líneas serían como decir lo siguiente:
mientras que dato sea menor o igual a cero:
imprime "El número no es el indicado, debe der mayor que cero"
dato=ingrese("Ingrese el número nuevamente: ")
podemos ver que mientras que el valor asignado a dato sea menor o igual a cero (que la condición sea verdadera), el bucle se repetirá una y otra vez. Por ejemplo si ingresamos dato = -2 que es menor que cero, la condición del bucle es verdadera por lo tanto las sentencias del bucle se ejecutarán mostrando: (1) que el número que ingresamos no es el que fue requerido (un número mayor a 0), (2) pidiendo el ingreso de un nuevo valor para dato, y (3) con el nuevo valor asignado a dato, devolviendo la dirección del programa para analizar la condición otra vez. Pero que pasaría si ingresamos dato = 5, en ese caso al analizar la condición tendríamos que 5 es menor o igual a cero lo cual es falso, entonces no se ejecutan las sentencias del bucle y saltamos fuera de él. .... Ufff al fin fuera del bucle !!
¿si el bucle nos molesta tanto porque lo escribimos en nuestro script? pues... el bucle while es como alguien que verifica que el usuario final (el que usará nuestro programa) ingrese los datos que nosotros requerimos y no los que ellos deseen. Es una herramienta muy útil, si queremos limitar la entrada de datos a ciertos patrones.
La línea 10 es print, que es como decir mostrar en pantalla donde lo que se mostrará en pantalla será las variables o cadenas de texto mencionadas despues de él. print es capáz de imprimir en pantalla : variables, strings o combinaciones de ellas separadas por comas.
La línea 12 es algo que nos permitirá ver los resultados si ejecutamos nuestro escript en modo consola. Expliquemos primero esto. Anteriormente habíamos visto que para ejecutar un script de Python teníamos que hacerlo desde el IDLE mediante el menu Run / Run Module o presionando F5. sin embargo hay otra manera talvéz más familiar de ejecutar nuestros scripts. Simplemente nos vamos a la carpeta donde se encuentra el script que hemos creado y luego hacemos doble click sobre él ... y listo... veremos nuestro programa ejecutándose en modo consola (en windows es CMD la ventana de fondo negro).
Pero surgiría un pequeño problema, y es aquí donde explico el uso de la línea 12. En la ejecución desde el IDLE con F5 no necesitaríamos esta línea porque veríamos toda la ejecución del programa sin problemas desde la primera hasta la última línea de código. Pero en modo consola, las líneas de código del programa se ejecutan tan rápido que el programa se cierra al instante y talvéz no podamos visualizar las últimas líneas de código ejecutarse. ¿entonces nuestro programa esta mal hecho? NO... el programa tiene un código fuente correcto solamente que se ejecuta muy rápido y al no haber mas líneas de código que ejecutar se cierra la ventana inmediatamente. ¿Cómo lo arreglamos? con la línea 12. Esta línea importa desde una biblioteca (library en inglés) un módulo. Especificamente importamos el módulo sleep (dormir) desde la biblioteca time (tiempo) ¿que hace exactamente este módulo sleep? pues dormir o pausar el programa en ese instante por un tiempo en segundos. En nuestro problema le pusimos sólo 5 segundos. Con esta sentencia ubicada al final de todas las demás líneas, estamos diciéndole al programa que al terminar de ejecutar las líneas se espere 5 segundos hasta cerrar la ventana del programa, permitiéndonos ver la ejecución completa del script. Listo !!! ... se acabó
pero podrías estar preguntándote ¿Qué pasó con las líneas 3, 5 y 11? bueno... lee lo siguiente:
Listo amigos... espero haya quedado claro todo lo mencionado anteriormente. He tratado de ser lo más detallista posible en la explicacion de las líneas de código con respecto a lo que cada una de ellas hacen durante su ejecución, por ahí también les di unos datos importantes a tener en cuenta... talvéz me extendí un poco en los conceptos ... pero por ahi se dice que "es mejor que sobre a que falte".
Esto es todo... nos vemos en el siguiente post...