Sei sulla pagina 1di 35

Leccin 1: Iniciando en la programacin con Python

Unknown junio 16, 2013

Una pequea introduccin sobre qu es Python Python es un lenguaje de programacin de alto nivel el cual tiene una sintaxis muy limpia y que favorece a un cdigo legible, creando buenos hbitos de programacin (sobre todo a un iniciante en el tema). Python permite varios estilos de programacin: programacin orientada a objetos, programacin imperativa y programacin funcional. Tambin hay que tener en cuenta que Python es un lenguaje interpretado, no compilado. Otra ventaja de programar en Python es la portabilidad. Es un lenguaje multiplataforma, es decir se puede programar en sistemas Windows, Linux y Mac y transportar el codigo y ejecutarlo sin problemas mayores en cualquiera de ellos. Adems, Python posee una licencia de cdigo abierto, lo cual es excelente ya que de esta manera hay una comunidad de programadores que aportan conocimientos que ayudan a mejorar este lenguaje de programacin. Un claro ejemplo de ello es la cantidad de mdulos y paquetes adicionales (de terceros) que se pueden aadir a la instalacin bsica de Python, tales como wxPython, PyGame, NumPy, SciPy, Matplotlib, PyQt entre otros muchos, los mismos que hacen a este lenguaje mucho mas potente. Instalacin de Python La instalacin es muy sencilla y como mencion antes la descarga es gratuita. Les dejo el enlace desde la web oficial para descargar python. Pueden usar la versiones Python 2 o Python 3. Personalmente uso la version Python 2.5.4 para sistemas de 32bit (en windows) y version 2.6 en Ubuntu 10.10 que son las versiones con las que trabajaremos en los siguientes posts... algn motivo en especial por usar las versiones Python 2 en general? Si, la compatibilidad. Como bien explican en la web www.python.org, hay ms complementos (mdulos) de terceros compatibles para Python en sus versiones 2 que en la 3. Si se deciden por la versin Python 2.5.4. para Windows, aqu les dejo el enlace para descargar Python 2.5.4 vlido para sistemas de 32 o 64 bits. Si tienen Ubuntu o alguna otra distro de Linux, Python ya viene instalado por defecto. Bueno amigos... esta fue una breve presentacin sobre Python... en el siguiente post seguiremos con los conceptos esenciales para conocer mejor este lenguaje de programacin. Si estas interesado, ve a la siguiente presentacin acerca del IDLE, el entorno de desarrollo de Python.

Leccin 2: IDLE, el entorno de desarrollo de Python


Unknown julio 06, 2011 Python, como mencion en un post anterior, es el nombre del lenguaje de programacin de alto nivel. IDLE (Integrated DeveLopment Environment for Python - Entorno de Desarrollo Integrado) es el entorno de desarrollo que nos va a permitir editar y ejecutar los programas (tambin llamados Scripts de Python). Se pueden crear y ejecutar programas en Python sin utilizar IDLE, pero IDLE nos hace mucho ms fciles esas tareas (en realidad, IDLE es un vocablo en ingls que significa holgazn). Asumo que ya tienen instalado Python en sus Pc's, sino es as, primero tienes que descargar e instalar Python: Observacin: Antes de empezar, tengan en cuenta que usaremos imgenes para guiarnos mejor pero a veces no se ven bien los detalles, por ello, dar click en las imgenes para ver el tamao original y poder apreciar mejor las especificaciones. Aclarado esto, empecemos !!! Abramos el IDLE para conocerlo mejor: en Inicio / Todos los programas / Python 2.5 (carpeta) / IDLE (Python GUI),

se abrir la ventana principal de IDLE, como puedes ver en la imagen siguiente.

En esta ventana podremos ver la versin de Python y la versin de IDLE que usaremos. En la ventana de IDLE podemos escribir rdenes de Python despus del prompt >>> (el mismo que espera por alguna indicacin o instruccin). Al presionar Enter (Intro), IDLE ejecutar la orden requerida inmediatamente. Si la orden produce algn resultado, ste se mostrar en color azul y sin el prompt a su izquierda. Hagamos un simple ejemplo como una resta o multiplicacin: >>> 15-9 6 >>> 6*4 24 Al terminar de ejecutar la orden, IDLE vuelve a mostrar el prompt, el cual nuevamente est en espera de una orden.

Editor de Python: Algo colorido


Al escribir rdenes en IDLE podrs notar que algunas palabras cambian de color Pero para qu sirve esto de los colores? pues bueno... los colores nos ayudarn a identificar las instrucciones que se vayan dando. Como por ejemplo, las palabras reservadas de Python (palabras que son parte del lenguaje de programacin) se muestran en color naranja y morado. Las cadenas de texto (strings) se muestran en verde. Los resultados de las rdenes se escriben en azul y los mensajes de error se muestran en rojo. Mira los colores que se

generan en este ejemplo: >>> input('Hola !! ingresa un numero: ') Hola !! ingresa un numero: 6 6 >>> print "gracias" gracias >>> input("Ingrese un numero: ") Ingrese un numero: uno Traceback (most recent call last): File "", line 1, in input("Ingrese un numero: ") File "", line 1, in NameError: name 'uno' is not defined >>> Observa que las cadenas de texto deben estar rodeadas con comillas (") o apstrofes ('). Mira tambin la tercera orden del ejemplo anterior, Python escribe un mensaje de error en ingls que indica dnde se ha producido el error y por qu.

Hasta aqu slo se ven instrucciones pero Cmo guardo mis programas en archivos?
Bueno te explico... como ya habrs notado, el inconveniente de la ventana principal de IDLE es que para repetir una orden hay que volver a escribirla. Esto es til y suficiente si queremos practicar rdenes sencillas, pero si se trata de un programa ms complejo?que hacemos? pues... en ese caso es ms conveniente guardar el programa en un archivo para poder recuperarlo o reeditar el cdigo en cualquier momento que queramos. Adems, si le aadimos el hecho de que a veces (por no decir muchas) los programas no salen bien a la primera, pues guardar el archivo nos va permitir corregir los errores sin tener que volver a escribir todo de nuevo. Todo esto se puede hacer con el mismo IDLE, abriendo una nueva ventana mediante el men File / New Window.

Al elegir esta opcin se abrir una nueva ventana como la de la imagen.

Vers que en esta ventana ya no aparece el prompt porque es simplemente un editor de texto (como el "block de notas" pero que tambin colorea las palabras). Escribamos por ejemplo el siguiente programa: input('Hola !! ingresa un numero: ') print "gracias" Habrs notado que en esta ventana, cuando pulsas Enter (Intro), no se ejecuta la orden como en los ejemplos previos, sino que simplemente se pasa a la siguiente lnea.

Entonces... cmo ejecutar el programa? Para poder ejecutarlo, primero es necesario guardar el programa en el disco duro del ordenador o un pendrive (usb). Para ello, ve al men File opcin Save As... (tambin puedes utilizar la combinacin de teclas Ctrl+S).

La primera vez que guardes un programa se abrir la ventana de dilogo estndar de Windows.

Desplzate hasta la carpeta donde guardes tus programas (por ejemplo una carpeta llamada "Proyectos Python") y escribe en la caja de texto "Nombre de archivo" el nombre que le quieras dar al programa, yo lo llamar "prueba.py" (sin comillas).

Importante: Al escribir el nombre, no olvides escribir tambin la extensin ".py" (sin comillas). Si no escribes la extensin, IDLE no colorea las palabras (hay otra razn mas importante de escribir .py, pero lo explicar mas adelante). Una vez guardado el programa, el nombre del archivo aparecer en la barra de ttulo de la ventana.

Guardado el programa, puedes ejecutarlo mediante la opcin del men Run / Run module (tambin puedes utilizar la tecla F5). La salida del programa se mostrar en la ventana principal de IDLE.

Ten en cuenta lo siguiente: Cada vez que modifiques el cdigo del programa (aunque sea por una coma o un punto) antes de ejecutarlo con F5, primero debes guardar los cambios. Para esto, ya es mas sencillo ya que slo necesitars presionar Ctrl + S (o tambin desde el men File / Save - y no Save As...) y se guardarn las modificaciones sobre el mismo archivo que fue creado previamente.

Por ltimo, a veces sin darnos cuenta presionamos alguna tecla y queremos ejecutar el programa con F5 y vemos que no funciona inmediatamente (suponiendo que no hay error en el cdigo escrito). En ese caso, antes de que el programa se ejecute, Python primero te pedir guardar los cambios o modificaciones hechas. Pero hay una forma de ver por nosotros mismos si se han producido cambios (incluso si no nos damos cuenta de que se produjeron por algn error presionando alguna tecla). Bueno... cada vez que se produsca un cambio, en la barra de ttulo vers un * en ambos extremos del nombre del archivo, lo cual indicar que el programa fue modificado en su escritura, por lo tanto antes de ejecutar el programa, primero debemos guardar las modificaciones (o arreglar el error).

Listo !!! con esto ya estas preparado sobre las nociones mas bsicas para saber el significado de ciertas cosas que iremos viendo en el IDLE y no cometer algn error el manejar los archivos que iremos creando con Python... Bueno.. en la siguiente entrada empezaremos con nuestro primer script en Python.

Leccin 3: Primer script en el lenguaje Python


Unknown julio 06, 2011

Hola de nuevo... en los dos primeros posts vimos una introduccin "terica" sobre algunos conceptos propios de Python, como las versiones que estan disponibles a la fecha e instalacin. Tambin hemos visto a fondo lo que notaremos en su IDLE de manera que ahora estamos mas familiarizados con la forma en que se muestra el cdigo fuente de un programa en Python. Por ltimo, vimos como guardar y ejecutar nuestros scripts (es decir nuestros programas hechos en Python). La pregunta es... qu scripts guardaremos si an no hemos creado programa alguno? Bueno... ese es el motivo de este post: "Crear nuestro primer Script". La mayoria de tutoriales, libros y dems artculos para iniciantes en cualquier lenguaje de programacin ya sea Python, Java, Delphi, C, C++, Pascal, etc... normalmente tienen como

primer programa de creacin al tan famoso "Hola Mundo". Bueno... les digo que este post ser la excepcin. Nuestro primer script en Python ser un programa que pedir como entrada algn dato numrico, confirmar si el dato ingresado cumple con el requerimiento solicitado y finalmente mostrar un texto (string) con esa confirmacin en pantalla. Manos a la obra... Abre el IDLE, luego abre una ventana nueva en el men File / New Window, pega este cdigo en esa ventana y guardalo:
# -*- coding:utf-8 -*# Primer programa en Python - prueba.py dato=input("Saludos amigo!! ingresa un nmero mayor que cero: ") while dato<=0: print "El nmero no es el indicado, debe der mayor que cero" dato=input("Ingrese el nmero nuevamente: ") print "Correcto!! El nmero ingresado es ",dato," ,gracias !!" from time import sleep sleep(5)

Dato importante 1: Primero me gustara empezar recalcando que Python es Case sensitive qu es esto? pues... es decir que Python hace diferencia entre maysculas y minsculas (en realidad Case sensitive significa sensible a las maysculas/minsculas) por lo tanto las palabras Hola y hola son variables diferentes para Python.

Explicacin del cdigo:


La lnea 1 es la codificacin de caracteres, utf-8, para poder poner tildes, ees y dems. Sin esta lnea y si tu cdigo tiene carcteres especiales, el programa no funcionara 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 carcteres y te sugiere poner la lnea 1 mostrndote una pequea ventana de alerta donde debes presionar la opcin "Edit my file", de esta manera python aadir en la primera lnea de tu cdigo lo siguiente # -*- coding: cp1252 -*- la cual tiene el mismo efecto que lo escrito con utf-8. Esta lnea 1 siempre debemos ponerla en la primera lnea de cdigo de todos los programas que crearemos. La lnea 2 es slo un comentario. Ten en cuenta que en python para hacer un comentario este debe ser encabezado por el smbolo # , el comentario ser lo que se escriba en esa lnea sin dar un salto a la siguiente. Al dar un salto de lnea se sale del comentario. Si una lnea no fue suficiente y queremos seguir comentando sobre lo mismo, en ese caso continuamos en la siguiente lnea pero previamente escribimos como primer caracter el smbolo #. La linea 4 permite la entrada de datos, en este caso se pide un nmero. La sentencia input (entrada) nos permite ingresar un dato de tipo numrico 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:

input(cadena) donde cadena es un texto entre comillas ( " " ) o apstrofes ( ' ' ).

Dato importante 2: Fijate que en Python no es necesario declarar el tipo de variable de dato, es decir no es necesario poner si es de tipo integer (entero) float (real). Con slo darle un valor a la variable, Python se encarga de establecer su tipo. Por ejemplo, si ingresamos dato = 2 python lo declara de tipo integer ( es decir entero), pero si ingresamos dato = 2.1 o incluso dato = 2.0 python lo declara de tipo float (osea real). La lnea 6 es un bucle o ciclo, es una sentencia que se realiza repetidas veces a un trozo aislado de cdigo, hasta que la condicin asignada a dicho bucle deje de cumplirse. Las lneas 7 y 8 son las tareas o sentencias para el bucle. Analicemos este grupo:
while dato<=0: print "El nmero no es el indicado, debe der mayor que cero" dato=input("Ingrese el nmero nuevamente: ")

while < condicin >: tarea 1 tarea 2 tarea 3 . . . cmo funciona el bucle? pues... al iniciar el bucle primero se analiza la condicin, si esta fuera verdadera entonces las sentencias del while se ejecutan y luego se regresa la direccin del programa otra vez a analizar la condicin, si esta nuevamente es verdadera entonces otra vez de ejecutan las sentencias del bucle y otra vez se vuelve a analizar la condicin, y asi sucesivamente cundo se detiene el bucle?, cuando al analizar la condicin esta resulte falsa entonces no se ejecutan las sentencias y se sale del bucle (o se termina el bucle). en el caso de la lnea 6, en espaol estas lneas seran como decir lo siguiente:
mientras que dato sea menor o igual a cero: imprime "El nmero no es el indicado, debe der mayor que cero" dato=ingrese("Ingrese el nmero nuevamente: ")

podemos ver que mientras que el valor asignado a dato sea menor o igual a cero (que la condicin sea verdadera), el bucle se repetir una y otra vez. Por ejemplo si ingresamos dato = -2 que es menor que cero, la condicin del bucle es verdadera por lo tanto las sentencias del bucle se ejecutarn mostrando: (1) que el nmero que ingresamos no es el que fue requerido (un nmero mayor a 0), (2) pidiendo el ingreso de un nuevo valor para dato, y (3) con el nuevo valor asignado a dato, devolviendo la direccin del programa para

analizar la condicin otra vez. Pero que pasara si ingresamos dato = 5, en ese caso al analizar la condicin tendramos 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 lnea 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 capz de imprimir en pantalla : variables, strings o combinaciones de ellas separadas por comas. La lnea 12 es algo que nos permitir ver los resultados si ejecutamos nuestro escript en modo consola. Expliquemos primero esto. Anteriormente habamos visto que para ejecutar un script de Python tenamos que hacerlo desde el IDLE mediante el menu Run / Run Module o presionando F5. sin embargo hay otra manera talvz ms 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 ejecutndose en modo consola (en windows es CMD la ventana de fondo negro). Pero surgira un pequeo problema, y es aqu donde explico el uso de la lnea 12. En la ejecucin desde el IDLE con F5 no necesitaramos esta lnea porque veramos toda la ejecucin del programa sin problemas desde la primera hasta la ltima lnea de cdigo. Pero en modo consola, las lneas de cdigo del programa se ejecutan tan rpido que el programa se cierra al instante y talvz no podamos visualizar las ltimas lneas de cdigo ejecutarse. entonces nuestro programa esta mal hecho? NO... el programa tiene un cdigo fuente correcto solamente que se ejecuta muy rpido y al no haber mas lneas de cdigo que ejecutar se cierra la ventana inmediatamente. Cmo lo arreglamos? con la lnea 12. Esta lnea importa desde una biblioteca (library en ingls) un mdulo. Especificamente importamos el mdulo sleep (dormir) desde la biblioteca time (tiempo) que hace exactamente este mdulo sleep? pues dormir o pausar el programa en ese instante por un tiempo en segundos. En nuestro problema le pusimos slo 5 segundos. Con esta sentencia ubicada al final de todas las dems lneas, estamos dicindole al programa que al terminar de ejecutar las lneas se espere 5 segundos hasta cerrar la ventana del programa, permitindonos ver la ejecucin completa del script. Listo !!! ... se acab pero podras estar preguntndote Qu pas con las lneas 3, 5 y 11? bueno... lee lo siguiente: Dato importante 3: Como habrs notado las lneas 3, 5 y 11 son lneas en blanco. tendrn algn efecto estas lneas en momento de ejecucin del script? pues NO. Las lneas en blanco slo nos ayudan a mantener nuestro cdigo mas ordenado pero al momento de ejecutar el script (nuestro programa), Python hace caso omiso de ellas y las ignora. Esa es la razn por la cual al ejecutar el script viste que todas las lneas de texto (strings) estaban una despus de la otra sin espacios verticales entre ellas. Por eso no importa cuantas lneas en blanco dejes, en momento de ejecucin Python las ignora completamente.

Listo amigos... espero haya quedado claro todo lo mencionado anteriormente. He tratado de ser lo ms detallista posible en la explicacion de las lneas de cdigo con respecto a lo que cada una de ellas hacen durante su ejecucin, por ah tambin les di unos datos importantes a tener en cuenta... talvz me extend un poco en los conceptos ... pero por ahi se dice que "es mejor que sobre a que falte".

1. Muy buen tutorial, muchas felicidades, solo hay algo que no entendi, Cmo determina Python cuantas tareas(lineas de codigo) debe realizar el bucle? ya que mencionas que las lineas en blanco no son tomadas en cuenta y no veo por ningun lado algun signo como en C el {}. Gracias y Saludos!!!

Jasz Andre 4.1 diciembre 19, 2012 2:25 p.m. Hola, Python sabr cuantas tareas o lneas de cdigo debe realizar en el bucle a travs de la indentacin, veamos por ejemplo estos dos bloques aparentemente iguales: Bloque 1: while dato<=0: print "El nmero no es el indicado, debe der mayor que cero" dato=input("Ingrese el nmero nuevamente: ") Bloque 2: while dato<=0: print "El nmero no es el indicado, debe der mayor que cero" dato=input("Ingrese el nmero nuevamente: ") Estos dos bloques de cdigo NO son iguales para Python, ya que Python reconoce la indentacin en el primero y la usa para saber el inicio y final del bucle, entonces para python la ltima lnea que tenga la indentacin ser reconocida como la ltima lnea del bucle. En el segundo bloque que NO tiene indentacin obtendras un error como el siguiente: Line 3: print "El numero no es el indicado, debe der mayor que cero"

IndentationError: expected an indented block Es claro lo que se solicita para el bucle. Espero haber aclarado la duda. Saludos.

Leccin 4: Herramientas de Control de Flujo en Python


Unknown julio 09, 2011

Saludos otra vez, en esta ocasin veremos algunos tipos de Control de Flujo que usaremos en nuestros scripts... Empecemos !!

Control de Flujo Simple: Construcciones if


Quiz la mejor conocida de las construcciones es if ("si" en Espaol). Veamos un ejemplo: este script pedir al usuario un nmero, luego evaluar si el nmero es positivo, negativo o cero mostrando el resultado en un mensaje. Bueno... abre el IDLE de Python, luego abre una ventana nueva en el men File / New Window, pega este cdigo en esa ventana (editor), guardalo y ejectalo en modo consola (doble click sobre el archivo guardado). entiendes el funcionamiento interno del script?, si es as ... excelente !!! , caso contrario... no te preocupes que lo explicar en un momento
# -*- coding: utf-8 -*# control de flujo simple prueba_2.py

x = input('Ingrese un nmero: ') if x > 0: print 'El nmero es positivo' elif x < 0: print 'El nmero es negativo' else: print 'El nmero es cero' from time import sleep sleep(5)

primero expliquemos el funcionamiento de la construccin if if <condicin_1 es verdadera> : accin 1.1 accin 1.2 . . . elif <condicin_2 es verdadera> :

accin 2.1 accin 2.2 . . . else : accin a accin b . . . Puede haber cero o ms partes elif y la parte else (si no) es opcional. La palabra clave elif es una abreviatura de else if (a lo mejor viste esto en otros lenguajes de programacin). Una secuencia if . . . elif . . . elif . . . es la sustituta de las sentencias switch o case de otros lenguajes. Cmo se ejecuta la construccin if? ... veamos 1. Primero se evala la condicin_1 del if. 2. Si la evaluacin resulta verdadera, se ejecutan las acciones del if : accin 1.1, accin 1.2, accin 1.3, etc... luego de ejecutarse estas acciones, se termina toda la estructura y las dems condiciones ni siquiera se evalan, es decir se sale completamente del if. 3. Pero, si la evaluacin de la condicin_1 fuera falsa entonces se evala la condicin_2 del elif. Si el resultado de esta evaluacin es verdadero, entonces se ejecutan sus acciones: accin 2.1, accin 2.2, accin 2.3, etc... y luego se termina la estructura completamente. 4. En caso de que las evaluaciones de las condiciones anteriores sean todas falsas, entonces se ejecutan las acciones del else y luego se termina la estructura (ten en cuenta que aqu no hay condiciones). Para resumir, cmo funciona? pues... se evalua la primera condicin y luego dice: "si esta es cierta entonces ejecuto sus acciones y salgo de la estructura, pero si es falsa entonces paso a evaluar la siguiente condicin", ya en la segunda condicin dice: "si esta es cierta ejecuto sus acciones y luego termino la estructura, pero si es falsa, paso al siguiente"... y asi sucesivamente... Si todas son falsas dice: "ejecuto si o si las acciones de respaldo del else y salgo de la estructura". De esto podemos notar que se ejecuta las acciones de slo una de las condiciones, aquella que resulte verdadera.

Ahora que sabemos el funcionamiento de la estructura if, expliquemos nuestro script del ejemplo:
Cuidado !! la indentacin es importante: notaste que las palabras if, elif y else estn a la misma altura en sus respectivas lneas, mientras que print esta indentado osea desplazado un poco hacia la derecha? bueno... pues esa ordenacin es importante. if, elif y else son, por decirlo menos tcnico, del mismo rango de prioridad por tanto cualquiera de ellos no puede estar indentado dentro del otro (a menos que se trate de una subconstruccin if). Te invito a indentar la lnea del elif o la del else de nuestro ejemplo y

vers que el programa no se ejecutar por ese error. Por otro lado, print es una tarea a ejecutarse ya sea del if, elif o else por lo tanto ella si debe estar indentada.... recuerda la indentacin es importante no slo en nuestro ejemplo sino en todo script hecho en python. La lnea 1 es la codificacin para poder escribir carcteres como tildes, ees y dems. La lnea 2 es un simple comentario La lnea 4 es la instruccin input que le permite al usuario ingresar data numrica a travs del teclado Las lneas 5 y 6 son la escructura if donde se evalua su condicin. Si ingresamos por ejemplo x = 3 esta condicin sera cierta (pues 3 es mayor que cero) y por lo tanto la instruccin print de la lnea 6 al ejecutarse mostrara en pantalla el mensaje "El nmero es positivo." Las lneas 7 y 8 . Si la condicin en la lnea 5 es falsa y si el nmero ingresado fuera menor que cero, por ejemplo x = -5, entonces se verifica la condicin de la lnea 7 y se mostrara en pantalla el mensaje "El nmero es negativo." Las lneas 9 y 10. Si las condiciones anteriores son falsas, es decir si ingresamos el nmero x = 0 (ni negativo ni positivo) pues se ejecuta la lnea 10 y la instruccin print nos mostrara "El nmero es cero." Las lneas 12 y 13. Cuando ejecutamos el programa en modo consola, estas dos lneas trabajan en conjunto para pausar el programa por unos segundos antes de cerrar la ventana de ejecucin; de lo contrario, el programa cerrar su ventana muy rpido.

Control de Flujo Repetitivo: Construcciones For


La construccin For (para) es un poco diferente a lo acostumbrado en C o Pascal. En lugar de recorrer siempre una progresin aritmtica (como en Pascal) o dejar al programador total libertad de eleccin de inicializacin, comprobacin y salto de paso (como en C), el For de Python recorre los elementos de una secuencia (una lista o cadena), en el orden en que aparecen en la secuencia. Si no conoces C o Pascal y por lo tanto no entendiste muy bien lo que acabo de mencionar, no te preocupes que con los ejemplos que mostrar aprenders a usar construcciones For en Python sin ningn problema, pero creo que fue necesario mencionar eso para aquellos que si conocen esos lenguajes y vean una diferencia inmediata. Veamos un primer ejemplo para tener las cosas ms claras: Observacin: En esta ocasin trabajaremos en la ventana principal del IDLE (donde se ve el prompt), por lo tanto escribe una a una las instrucciones siguientes presionando Enter despus de cada instruccin.
>>> x = [2, 4, 9, 7, 15] >>> x [2, 4, 9, 7, 15] >>> type(x) type 'list' >>> for i in x: print i 2 4 9

7 15

en este ejemplo primero hemos creado una lista de nmeros x = [2, 5, 9, 7, 15], ten cuenta que las listas se crean entre corchetes. Como observas en el ejemplo, al escribir x y luego presionar Enter vemos esa lista de nmeros almacenados en x. quieres confirmar que x es una lista porque no me crees? esta bin... escribe type(x) como en el ejemplo y Python te confirmar que x es un lista: type 'list'. Ahora veamos lo que nos interesa "La construccin For" en este caso aplicado a una lista numrica. Te explico... todo empieza con la variable i. Primero nota que esta variable i no fue declarada previamente, pues es la primera vez que aparece por qu? como te mencine en un post anterior, en Python se puede usar las variables que queramos sin decir el tipo de ellas (no es necesario declarar las variables como string, integer, float, etc... para nada. Es lo bueno de Python !!!). Aclarado esto (a lo mejor ni lo notaste pero ahora ya sabes) Cmo crees que funcione la construccin For?alguna idea? bueno... debes saber que For es un ciclo repetitivo donde las acciones dentro del For se repetirn tantas veces como la longitud de la variable x, en este caso 5 veces (pues x tiene 5 elementos).Como se inicia? La variable i toma como valor al primer elemento de la lista x ( es decir i = 2 ) y ejecuta todas las acciones dentro de la construccin (en nuestro caso slo imprime el valor de i en pantalla), luego regresa y esta ves i toma como valor al segundo elemento de x ( es decir i = 4 ) y otra vez se ejecuta las mismas acciones que para el caso anterior (imprime en pantalla en nuestro ejemplo) y asi sucesivamente hasta que i toma el ltimo valor de la lista x ( es decir i = 15 ) donde se ejecutan las acciones por ltima vez, luego de que i toma cada uno de los valores de la lista x, se termina el ciclo repetitivo For. Fcil verdad? Hemos visto un ejemplo con una lista numrica, pero esto tambien es posible con una lista de strings o cadenas de texto. Veamos el segundo ejemplo:
>>> y = ["hola","saludos","adios"] >>> y ['hola', 'saludos', 'adios'] >>> type(x) type 'list' >>> for j in y: print j hola saludos adios

La misma idea del ejemplo anterior, slo que ahora la variable de recorrido es j la misma que uno a uno se autoasigna los elementos de la lista y que es una lista de strings. Sencillo verdad ??

Control de Flujo Repetitivo: Construcciones While

Esta construccin ya la vimos en el post anterior Primer script en el lenguaje Python. En ese post, estudiamos el funcionamiento de este bucle con detalle. Recordemos algo, con el siguiente ejemplo: Abre una ventana nueva en men File / New Window y escribe el siguiente cdigo y guardalo. A continuacin paso a explicar las lneas:
# -*- coding: utf-8 -*# construccin while x = 4 while x > 0: print x x = x-1 if x == 0: print 'el bucle se acab' from time import sleep sleep(5)

ejecuta el script ya sea en modo consola o usando el IDLE con F5. Vers que se ejecuta muy rpido, no toma ni un segundo en mostrar este resultado:
>>> ================================ RESTART ================================ >>> 4 3 2 1 el bucle se acab >>>

Expliquemos el funcionamiento. Bueno, creamos una variable x = 4... luego viene el bucle While Cmo funciona? pues asi: 1. Evalua la condicin x > 0 2. Si al evaluar la condicin esta resulta verdadera entonces se ejecutan las acciones del bucle que en nuestro problema son: (a) imprimir en pantalla el nmero, (b) restarle al nmero una unidad y luego (3) verificar si x en ese instante es cero o no. Luego que todas las acciones se han ejecutado, se regresa al punto 1. y nuevamente se evalua la misma condicin (recuerda que x ya cambi de valor) y asi sucesivamente. 3. Termina la estructura cuando el resultado de la condicin es falso. En nuestro ejemplo, en cada instante del bucle se trata de verificar si x > 0. Al confirmarse ello, el valor de x diminuye en una unidad segn la lnea x = x-1 y se autoasigna a si mimo el nuevo valor disminuido, es decir los valores que toma la variable x son {4, 3, 2, 1, 0} una vez por cada ciclo pero el 0 no se muestra? Cierto... pero el ltimo valor de x es cero momento en el cual se ejecuta la condicion del if mostrando el mensaje "el bucle se acab" (pues 0 > 0 es falso) y all termina el bucle.

Nuestro ejemplo es un bucle que termina o finito, pero hay bucles infinitos? Si... mira el siguiente ejemplo y ejectalo:
# -*- coding: utf-8 -*# construccin while: bucle infinito x = 1 while x > 0: print x x = x+1 from time import sleep sleep(5)

ejectalo con F5 o en modo consola... y sorpresa !!!! el script corre y corre y no se detiene mostrndonos nmeros en una columna uno debajo del otro... dejalo por horas si quieres pero nunca se cerrar la ventana por si sola. Ok.. no te asustes...cierra la ventana como lo habitual y listo se acab el programa. por qu sucedi esto? Es fcil darse cuenta donde esta el problema: la condicion y la lnea x = x+1. Con esta ltima lnea x tomar los valores {1,2,3,4,5,6,7,8,9,10,11,...} y si ves la condicin, x siempre es mayor que cero... por eso el bucle es infinito. Te preguntars Para qu me puede servir un bucle infinito si parece un error del programador? Bueno... en nuestro ejemplo es obviamente un error, pero eso no significa que todo bucle infinito lo sea... Ms adelante, cuando empecemos a programar juegos con Python y Pygame vers la utilidad de los bucles infinitos y es ms, ellos son la parte principal del juego. Si... leiste bien. Aprenderemos a hacer nuestros propios juegos en Python usando Pygame... as que espera que eso ya viene pronto. Por el momento hay que ir entendiendo conceptos bsicos pero slidos sobre lo que usaremos en programas mas complejos.

Leccin 5: Operaciones aritmticas en Python


Unknown julio 27, 2011

Variables Numricas Enteras y Reales Python tiene dos tipos de variables numricas: Enteras, aquellas sin decimales y de tipo int (integer); y las Reales, con decimales y de tipo float. Por ejemplo:
>>> m = 5 >>> n = 2.13 >>> p = 5.0

en nuestro ejemplo m es de tipo entero o int, n y p son de tipo real o float. Me gustara recalcar lo que sucede con la variable p = 5.0, el valor de p es 5 pero de tipo real o float y no de tipo entero o int. Las variables m = 5 y p = 5.0 numricamente son iguales pero no son del mismo tipo pues m es entero mientras que p es real. Python entiende que nuestra intencin en p es escribir un nmero real aunque almacenemos un nmero entero.

Lo explicado anteriormente tendr algn efecto al hacer operaciones aritmticas? Si. Cuando usamos variables definidas enteras, Python tambin muestra los resultados de los clculos como enteros. Por otro lado, si las variables son definidas reales entonces los resultados tambin sern reales. Un ejemplo para aclarar esto:
>>> dato1 = 40 >>> dato2 = 3 >>> dato1 / dato2 13 >>> dato1 = 40.0 >>> dato2 = 3.0 >>> dato1 / dato2 13.333333333333334 >>> dato1 = 40.0 >>> dato2 = 3 >>> dato1 / dato2 13.333333333333334

En el primer resultado puedes ver que no hay decimales y slo se muestra el cociente entero de la divisin, esto es porque las variables dato1 y dato2 son ambas de tipo entero; en la segunda operacin el resultado es un nmero real (con decimales) pues ambos dato1 y dato2 son reales (con decimales). En realidad si queremos obtener un resultado real basta con que una de las variables sea definida real como en el tercer caso del ejemplo.

Operaciones Bsicas

Bueno... es muy bien conocida las cuatro operaciones aritmticas bsicas como la suma (+), resta (-), multiplicacin (*) y divisin (/). Aqu un ejemplo:
>>>15 18 >>>15 12 >>>15 45 >>>15 5 + 3 - 3 * 3 / 3

Otras Operaciones Aritmticas 1. Clculo del Cociente de una divisin: Para calcular el cociente de una divisin entre dos nmeros usamos el operador //. Ten en cuenta que el resultado real o entero (con o sin decimales) depender del tipo numrico de las variables usadas en el clculo como ya se explic enteriormente. Ejemplos:
>>> 12 // 3

4 >>> 15 // 4 3 >>> 15.0 // 4 3.0 >>> 15 // 4.0 3.0

2. Clculo del Residuo o Resto de una divisin: El clculo del resto de una divisin entre dos nmeros es directo con el operador %. Ejemplo:
>>> 15 % 4 3

3. Operaciones con Potencias y Races: El operador usado para expresar potencias es **. Este operador nos permitir calcular tanto potencias como races (por matemticas bsicas, una raz se puede expresar como potencia). Ten en cuenta que a**b = ab. Ejemplos:
>>> 2**3 8 >>> 2**-1 0.5 >>> 4**0.5 2.0

el primer ejemplo 2**3 es una potencia al cubo; el segundo 2**-1 es la inversa de 2, es decir 1/2 ( recuerda que a-b = 1/ab ); el tercer ejemplo 4**0.5 es la raiz cuadrada de cuatro pues 40.5 = 41/2 = 4 = 2 4. Operaciones Adicionales: Es muy probable que al programar tengamos que modificar el valor de una variable apartir de su propio valor, es decir una variable cuyo valor cambia constantemente una y otra vez. Esto lo veremos sobre todo en estructuras repetitivas como While o For. En python se usan las siguientes notaciones:

a += b a -= b a *= b a /= b a **= b a //= b a %= b

es igual a: a = a + b es igual a: a = a - b es igual a: a = a * b es igual a: a = a / b es igual a: a = a ** b es igual a: a = a // b es igual a: a = a % b

Bueno... eso sera todo en este post. Ahora ya sabemos de operaciones aritmticas basicas que iremos usando en Python. Nos vemos en la siguiente entrada.

Si te gustan los artculos de Conocimiento Adictivo te sugerimos suscribirte para que ests al tanto de las publicaciones del blog. Recibe nuestros artculos en tu lector RSS o en tu email.

Comparte este artculo Entradas que podran interesarte:


Joomla Curso integral [Espaol] - El gestor de contenidos ms popular en Internet con el cual podrs montar un portal desde cero Video2brain: Novedades After Effects CC (Espaol-2013) Video2Brain: Novedades Photoshop CC (2013)[Espaol] Messenger Reviver 2.1.0 Solucin Messenger No conecta y me pide descargar una actualizacin Skype !!!! Curso Completo AutoCad - 2D y 3D (2012-2013)[Espaol]

3 comentarios para Unknown : 1. Estefana 1 octubre 18, 2012 5:09 p.m.

Hola, Te felicito que buen post y que excelente blog. me cae de perlas jejeje muchas gracias
Responder este hilo 1. Annimo 2 mayo 14, 2013 5:37 p.m.

He buscado, ledo y no puedo lograr lo que quiero. Resulta que quiero crear un programa que me calcule la siguiente formula: %cenizas=((m1-m2)/m3)*100 y que el resultado, %cenizas siempre me lo entrege con 1 decimal despues de la coma. Que una vez que tenga el resultado de % de cenizas, posteriormente pueda seguir ingresando datos y que en el input nunca se puedan ingresar numeros menores que 0, ni letras.

>>> m1=raw_input("ingrese masa ceniza con crisol:") ingrese masa ceniza con crisol:29,329 >>> m2=raw_input("ingrese masa crisol:") ingrese masa crisol:28,585 >>> m2=raw_input("ingrese masa muestra:") ingrese masa muestra:5,000 >>> (de aqui en adelante, no se me ocurre, si alguien sabe, que me diga) Desde ya muchas gracias. Atentamente: Benjamin

Annimo 2.1 mayo 18, 2013 2:52 p.m.

>>> m1=raw_input("Ingrese masa ceniza con crisol:") Ingrese masa ceniza con crisol:29.329 >>> m2=raw_input("ingrese masa crisol:") ingrese masa crisol:28.585 >>> m3=raw_input("ingrese masa muestra:") ingrese masa muestra:5.000 >>> M1=float(m1) >>> M2=float(m2) >>> M3=float(m3) >>> Porcentaje=((M1-M2)/M3)*100 >>> print type(M1), type(M2), type(M3) >>> print Porcentaje 14.88 ---------------Soy la misma persona que escribio arriba, con paciencia, pude generar mi programa, me falta pulirlo un poco ms, para posteriormente compilarlo en formato exe, de momento no tengo idea como compilar, estoy agradecido tambien por los conocimientos de python publicados en este blog. Voy a investigar si puedo poner un bucle para englobar todos los input se podr?

Leccin 6: Manipulacin de Listas en Python


Unknown septiembre 05, 2011

Hola de nuevo, ya pas algo de tiempo desde que escrib un tutorial de programacin en Python, estuve publicando otros posts sobre otros temas, pero bueno... empecemos a hablar de programacin otra vez. En esta ocasin, aprenderemos a manipular Listas en el lenguaje de programacin Python. Manos a la obra !!!

Listas
Las listas son conjuntos ordenados de elementos del mismo o diferente tipo, digo esto porque una lista puede tener como elementos a nmeros, cadenas, listas o combinaciones de ellos. Las listas estn representadas escribiendo los elementos entre corchetes y separados por comas. Adems, ten en cuenta que una lista completa puede ser almacenada en una variable. Veamos unos ejemplos:
>>> lista1 = ['hola', -45, 3] >>> lista1 ['hola', -45, 3] >>> lista2 = ['python', 'tutorial', 30] >>> lista2 ['python', 'tutorial', 30] >>> lista3 = [12, -8, lista1, lista2, 'prueba'] >>> lista3 [12, -8, ['hola', -45, 3], ['python', 'tutorial', 30], 'prueba'] >>> listavacia = [] >>> listavacia [] >>>

Como mencion anteriormente, una lista puede contener elementos de diferentes tipos, nmeros, cadenas, variables e incluso otras listas. Se llama lista vacia a una lista que no tiene elementos. Concatenar listas Las listas se pueden concatenar (unir) con el smbolo de la suma (+), mira el ejemplo:
>>> lista1 ['hola', -45, 3] >>> lista2 ['python', 'tutorial', 30] >>> lista4 = lista1 + lista2 >>> lista4 ['hola', -45, 3, 'python', 'tutorial', 30]

Como puedes ver, el resultado de concatenar listas es una nueva lista que tiene como elementos a los elementos de las listas individuales.

Observacin: En el ltimo ejemplo, pon atencin en el orden en que ubican los elementos de la lista4. Sus primeros elementos son los elementos de la lista1 y luego los elementos de la lista2 ya que la concatenacin de las listas fue en ese orden, primero la lista1 y luego la lista2. Miremos el mismo ejemplo pero de otra forma:
>>> lista1 ['hola', -45, 3] >>> lista2 ['python', 'tutorial', 30] >>> lista4 = lista2 + lista1 >>> lista4 ['python', 'tutorial', 30, 'hola', -45, 3]

Aqu vemos que son los mismos elementos pero el orden ha variado, ahora los primeros elementos son los elementos de la lista2 y luego los elementos de la lista1. Tambin podemos concatenar listas sin almacenarlas previamente en alguna variable
>>> lista5 = ['Conocimiento'] >>> lista5 ['Conocimiento'] >>> lista6 = lista5 + ['Adictivo'] >>> lista6 ['Conocimiento', 'Adictivo']

Manipulacin de los elementos individuales de una lista Puedes acceder a cualquier elemento individual de la lista con slo indicar el nombre de la lista y entre corchetes el nmero que representa su posicin dentro de la lista. Importante: Para acceder a los elementos de una lista se utiliza un ndice entero empezando por "0", no por "1". Aclaremos esto con un ejemplo, supongamos que tenemos la siguiente lista:

H O L 0 1 2

A 3

aqu el primer elemento 'H' tiene posicin "0", el segundo elemento 'O' tiene posicin o ndice "1", el tercer elemento 'L' tiene ndice "2", y el cuarto elemento 'A' tiene posicin "3" Veamos unos ejemplos de acceso a elementos individuales dentro de una lista
>>> lista = ['python', 'tutorial', 30] >>> lista ['python', 'tutorial', 30] >>> lista[0] 'python' >>> lista[1]

'tutorial' >>> lista[2] 30 >>> lista[3] Traceback (most recent call last): File "pyshell#30", line 1, in module lista[3] IndexError: list index out of range

Con lista[0], lista[1], lista[2] todo va correcto y nos devuelve el valor correspondiente a la posicin indicada, pero cuando escribimos lista[3] nos sale un error. Eso es porque no se puede hacer referencia a elementos fuera de la lista: "list index out of range." Manipulacin de Sublistas Apartir de una lista nosotros podemos extraer sublistas que contengan slo unos elementos de la lista original. Para ello usaremos la siguiente notacin: nombre_de_la_lista[ninicio : nfinal] donde la sublista extrada tendr una cantidad de elementos igual a la diferencia nfinal ninicio, y que empieza con el elemento de la posicin ninicio. Medio enredado con esto? Veamos unos ejemplos: a. Ejemplo (1)
>>> lista ['Enero', 'Febrero', 'Marzo', 'Abril', 'Mayo'] >>> lista[1:4] ['Febrero', 'Marzo', 'Abril']

en este ejemplo, para saber cuntos elementos tendr la sublista slo miramos [1 : 4] y restamos 4 - 1 con lo cual tendremos 3 elementos. Ahora para saber cual ser el primer elemento de la sublista miramos nuevamente [1 : 4] con lo cual el primer elemento ser el que se encuentra en la posicin "1", es decir "Febrero". Luego la sublista tendr 3 elementos empezando con "Febrero", dando como resultado ['Febrero', 'Marzo', 'Abril']. b. Ejemplo(2)
>>> lista ['Enero', 'Febrero', 'Marzo', 'Abril', 'Mayo'] >>> lista[2:5] ['Marzo', 'Abril', 'Mayo']

en este ejemplo, igualmente tendremos 3 elementos (5 - 2 = 3) y la sublista empieza con el elemento de la posicin "2", es decir "Marzo". c. Ejemplo(3)
>>> lista ['Enero', 'Febrero', 'Marzo', 'Abril', 'Mayo'] >>> lista[:3]

['Enero', 'Febrero', 'Marzo']

Se extrae una sublista hasta el valor de posicin 3 (no incluido el elemento de la posicin 3) d. Ejemplo(4)
>>> lista ['Enero', 'Febrero', 'Marzo', 'Abril', 'Mayo'] >>> lista[3:] ['Abril', 'Mayo']

Se extrae una sublista desde el valor de posicin 3 (incluido el elemento de la posicin 3) Eliminando elementos de una lista Para esto usaremos la instruccin del que es una palabra reservada que nos permite eliminar uno o varios elementos a la vez de una lista, o tambin la lista completa. a. Ejemplo(1)
>>> lista ['Enero', 'Febrero', 'Marzo', 'Abril', 'Mayo', 'Junio', 'Julio'] >>> lista[0] # eliminaremos este elemento 'Enero' >>> del lista[0] >>> lista ['Febrero', 'Marzo', 'Abril', 'Mayo', 'Junio', 'Julio']

como puedes notar hemos eliminado el elemento de posicin "0", es decir "Enero". b. Ejemplo(2)
>>> lista ['Enero', 'Febrero', 'Marzo', 'Abril', 'Mayo', 'Junio', 'Julio'] >>> lista[2:5] # eliminaremos esta sublista ['Marzo', 'Abril', 'Mayo'] >>> del lista[2:5] >>> lista ['Enero', 'Febrero', 'Junio', 'Julio']

en este ejemplo vemos algo similar a la manipulacin de sublistas, se eliminan 3 elementos (5 2 = 3) empezando en el de la posicin "2" es decir "Marzo". Longitud de una lista o cadena de una cadena de carcteres No importa si trabajamos con listas o con cadena de carcteres, podemos saber la longitud de ellas, es decir el nmero de elementos que tienen. La funcin len() devuelve la longitud de una lista o de una cadena de carcteres.
>>> lista ['Enero', 'Febrero', 'Marzo', 'Abril', 'Mayo'] >>> len(lista) 5 >>> cadena = 'Conocimiento Adictivo'

>>> len(cadena) 21

notar que los espacios en blanco tambin son contados.

La funcin range()
Imagnate que deseas crear una lista con los 400 primeros nmeros naturales las escribiras manualmente? pues no... Muchas veces nos ser de mucha utilidad crear listas de nmeros enteros en sucesin aritmtica de una manera automatizada y es all donde usamos la funcin range(). Veamos los distintos casos de uso de esta funcin. a. Caso 1: La funcin range con un nico argumento se escribe range(n) y crea una lista creciente de n trminos enteros que empieza en 0 donde los trminos aumentan de uno en uno. Es decir: range(n) = [0, 1, 2, 3, ..., (n-1)]
>>> [0, >>> [0, range(8) 1, 2, 3, 4, 5, 6, 7] range(11) 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

b. Caso 2: La funcin range con dos argumentos se escribe range(m, n) y crea una lista creciente de (n - m) trminos enteros que empieza en m donde los trminos aumentan de uno en uno. Es decir: range(m, n) = [m, m+1, m+2, ..., (n-1)]
>>> [2, >>> [5, >>> [5, range(2, 3, 4, 5, range(5, 6, 7] range(5, 6, 7, 8, 8) # 8 - 2 = 6 elementos 6, 7] 8) # 8 - 5 = 3 elementos 12) # 12 - 5 = 7 elementos 9, 10, 11]

c. Caso 3: La funcin range con tres argumentos se escribe range(m, n, p) y crea una lista que empieza en m y termina antes de llegar a n, avanzando de p en p. El valor de p no puede ser nunca cero. Si p es positivo la lista ser creciente, pero n tiene que ser mayor que m para que la lista no sea vaca. Si p es negativo la lista ser decreciente, pero n tiene que ser menor que m para que la lista no sea vaca.
# sucesiones creciente >>> range(8, 25, 4) # empieza en 8, avanza de 4 en 4 [8, 12, 16, 20, 24] >>> range(4, 16, 3) # empieza en 4, avanza de 3 en 3 [4, 7, 10, 13] # sucesin decreciente >>> range(16, 5, -3) # empieza en 16, disminuye de 3 en 3

[16, 13, 10, 7] # error porque la razn es "p = 0" >>> range (9, 18, 0) Traceback (most recent call last): File "pyshell#68", line 1, in module range (9, 18, 0) ValueError: range() step argument must not be zero

Bueno... esto sera todo por el momento. Ahora ya sabemos de Listas y el tipo de cosas que podemos hacer con ellas. Tambin hemos visto dos funciones importantes: range() y len(). En la prxima entrada colgar varios ejercicios para que practiquen todo lo que hemos aprendido hasta el momento pues ya es hora de llevar todo a la prctica.

Primera prctica de Scripts en Python: Repaso de las primeras 6 lecciones


Unknown septiembre 05, 2011 Saludos a los que nos siguen en el curso de Programacin en el Lenguaje Python. En esta ocasin nos toca practicar todo lo aprendido en estas primeras 6 lecciones, as que les presentar una serie de problemas y sus respectivas soluciones. Son problemas bsicos ya que este curso est orientado a iniciantes en la programacin. Te recomiendo que primero intentes hacer los scripts de cada problema por tu propia cuenta sin consultar la solucin. Ya al final, puedes revisar las soluciones que yo plante. Recuerda que es mucho mejor que intentes por ti mismo en primer lugar pues talvz tu solucin sea mejor que la mia y eso sera excelente !! Prctica 1 de Programacin en Python: Repasando las primeras 6 lecciones

1. Escriba un script que pida el ingreso de un nmero natural y calcule su factorial. Mostrar / Ocultar Solucin (1)
# -*- coding: utf-8 -*# Factorial de un nmero # ----------------------------------------------print 'Factorial de un Numero' print '-----------------------\n' numero = int(input('Ingrese un numero natural: ')) # Restringiendo la entrada a un numero positivo while numero < 0: print 'Lo siento, el numero es negativo, intente otra vez\n' numero = int(input('Ingrese un numero natural: '))

# Importando el modulo sleep from time import sleep if numero == 0: print 'El factorial es 1' sleep(7) elif numero > 0: k = 1 i = 1 # Calculando el factorial while k <= numero: i *= k k += 1 print 'El factorial es: ', i sleep(7)

2. Desarrolle un script que pida dos nmeros y escriba la suma de enteros desde el primer nmero hasta el segundo sin incluir ambos. Mostrar / Ocultar Solucin (2)
# # # # -*- coding: utf-8 -*Pida dos numeros y escriba la suma de enteros desde el primer numero hasta el segundo ---------------------------------------------------------------

print 'Suma de enteros entre dos numeros' print '--------------------------------------------------------\n' nmen = float(input('Ingrese el numero menor (limite inferior): ')) nmay = float(input('Ingrese el numero mayor (limite superior): ')) # Evitando que el limite superior sea menor que el limite inferior while nmay < nmen: print'\nValor no aceptado !!!, el limite inferior es ', nmen print'--------------------------------------------------------' nmay = float(input('Ingrese un numero mayor que el limite inferior: ')) # Calculando limites inferior y superior # Aplicando int() se hace truncado linf = int(nmen) if nmay == int(nmay): lsup = int(nmay) elif nmay > int(nmay): lsup = int(nmay) + 1 # Calculando la sumatoria suma = ((lsup*(lsup+1))/2) - (lsup+((linf*(linf+1))/2)) print'--------------------------------------------------------' print'La suma de enteros entre ',nmen,' y ',nmay,' es: ',suma from time import sleep sleep(20)

3. Elabore un programa que pregunte cuntos nmeros vas a introducir, pida esos nmeros y escriba cuntos negativos has ingresado.
4. # Sugerencia !!! Insertando elementos a una lista 5. # instruccin: 6. lista.insert(posicion, elemento) 7. 8. # Ejemplo: 9. >>> lista = [1, 2, 4] 10. >>> lista 11. [1, 2, 4] 12. 13. # insertamos el numero "15" en la posicion "1" 14. >>> lista.insert(1, 15) 15. >>> lista 16. [1, 15, 2, 4]

Mostrar / Ocultar Solucin (3)


# # # # -*- coding: utf-8 -*Pregunte cuantos numeros vas a introducir, pida esos numeros y escriba cuantos negativos has ingresado. ------------------------------------------------------------

total = int(input('Cuantos numeros desea ingresar? Escriba la cantidad: ')) # Restringiendo la entrada a un numero entero positivo while total <= 0: print '--------------------------------------------------------' print 'Advertencia!!!' print '--------------------------------------------------------' print 'La cantidad ingresada no es correcta, por favor...' total = int(input('Indique un valor mayor a CERO: ')) print '\nIngreso de datos' print '---------------------------------------------------------' t,k = [],[] ind = range(1, total+1) # Pedimos la entrada de numeros for x in ind: num = input('Numero ' + str(x) + ', ingrese un valor: ') # lista de elementos ingresados t.insert(x, num) if num < 0: # lista de elementos negativos k.insert(x, num) print '---------------------------------------------------------' print 'Los numeros ingresados fueron: ',t print '---------------------------------------------------------' # Dando el resultado print 'Existen ' + str(len(k)) + ' numeros negativos, y son: ',k from time import sleep

sleep(20)

17. Escriba un script que solicite la altura y anchura de un rectngulo y lo dibuje de la siguiente manera:

Anchura = 5 Altura = 3 Dibujo: ***** ***** *****

18. 19. Mostrar / Ocultar Solucin (4)


20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. # -*- coding: utf-8 -*# Este script dibuja un rectangulo usando el simbolo * # ---------------------------------------------------print 'Entrada de dimensiones' print '----------------------\n' ancho = int(input('Ingrese el ancho del rectangulo: ')) while ancho <= 0: print '\ndebe ser un numero entero mayor que cero' ancho = int(input('Ingrese denuevo el ancho del rectangulo: '))

31. 32. print '' 33. 34. altura = int(input('Ingrese la altura del rectangulo: ')) 35. while altura <= 0: 36. print '\ndebe ser un numero entero mayor que cero' 37. altura = int(input('Ingrese denuevo la altura del rectangulo: ')) 38. 39. al = range(1, altura+1) 40. 41. print '\nEl resultado es:\n ' 42. # x recorre los valores de 'al' 43. for x in al: 44. # Multiplicamos el simbolo * tantas veces como 'ancho' 45. print ancho*'*' 46. 47. from time import sleep 48. sleep(15)

49. Escriba un script que solicite la altura de un tringulo y lo dibuje de la siguiente manera:

Altura del tringulo = 4 Dibujo: * ** *** ****

50. 51. Mostrar / Ocultar Solucin (5)


52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. # -*- coding: utf-8 -*# Este programa dibuja un triangulo con solo saber la altura # ---------------------------------------------------------altura = int(input('Ingrese un numero natural mayor que UNO: ')) # Restringiendo el valor de la altura while altura < 2: print '\nHubo un error !!!, por favor...' altura = int(input('Ingrese un numero natural mayor que UNO: ')) print '\nEl resultado es:\n ' al = range(1, altura + 1) # x recorre los valores de 'al' for x in al: # Multiplicamos el simbolo '*' tantas veces como el valor x p = x * '*' print p from time import sleep sleep(20)

73. Escriba un script que solicite la altura de un tringulo y lo dibuje de la siguiente manera:

Altura del tringulo = 4 Dibujo: **** *** ** *

74. 75. Mostrar / Ocultar Solucin (6)


76. # -*- coding: utf-8 -*-

77. # Este programa dibuja un triangulo invertido con solo ingresar la altura 78. # ---------------------------------------------------------------------79. 80. altura = int(input('Ingrese un numero natural mayor que UNO: ')) 81. # Restringiendo el valor de la altura 82. while altura <= 1: 83. print '\nHubo un error!!! por favor...' 84. altura = int(input('Ingrese un numero natural mayor que UNO: ')) 85. 86. al = range(1, altura + 1) 87. 88. print '\nEl resultado es:\n ' 89. for x in al: 90. # multiplicamos una cantidad de veces el simbolo '*' 91. p = (altura + 1 - x)*'*' 92. print p 93. 94. from time import sleep 95. sleep(20)

96. Escriba un script que solicite la anchura de un tringulo y lo dibuje de la siguiente manera:

Anchura del tringulo = 4 Dibujo: * ** *** **** *** ** *

97. 98. Mostrar / Ocultar Solucin (7)


99. # -*- coding: utf-8 -*100. # Este programa dibuja un triangulo solicitando el ancho del triangulo 101. # al usuario 102. # ------------------------------------------------------------------103. 104. ancho = int(input('Ingrese un numero natural mayor que UNO: ')) 105. # Restringiendo el valor 106. while ancho <= 1: 107. print '\nEl numero ingresado no es correcto, por favor...' 108. ancho = int(input('Ingrese un numero natural mayor que UNO: '))

109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124.

print '\nEl resultado es:\n ' an1 = range(1, ancho + 1) # an1=1,2,3,...,ancho an2 = range(1, ancho) # an2=1,2,3,...,(ancho-1) for x in an1: p = x * '*' print p for k in an2: t = (ancho - k) * '*' print t from time import sleep sleep(20)

125.

Escriba un script que solicite un nmero y devuelva sus divisores

Dime un numero = 30 Los divisores de 30 son: 1 2 3 5 6 10 15 30

126.
127. 128. 129. 130. 131. 132. 133. 134. 135. 136. 137. 138. # Dato de ayuda: # m % n es el residuo de la division m / n # Ejemplos: >>> 16 % 0 # cuando >>> 16 % 1 >>> 12 % 2 4 el residuo es cero, entonces hay un divisor 3 5

139.

Mostrar / Ocultar Solucin (8)

140. # -*- coding: utf-8 -*141. # Este script devuelve los divisores de un numero 142. # ----------------------------------------------143. 144. print 'Ingreso de datos: ' 145. print '------------------------------------------------------------\n' 146. num = int(input('Ingrese un numero: ')) 147. while num < 0: 148. print '\nError !! Por favor, ingrese un numero mayor que CERO' 149. num = int(input('Ingrese un numero valido: ')) 150. 151. 152. k = num / 2 153. k = int(k) 154. cad = ''

155. 156. 157. 158. 159. 160. 161. 162. 163. 164. 165. 166. 167.

# El recorrido es hasta k = num / 2, pues no hay divisores mayores # a la mitad del numero excepto el mismo numero. for x in range(1, k + 1): # num % x es el residuo de la division num / x if num % x == 0: # Si el residuo es cero, entonces es un divisor cad = cad + str(x) + ' ' print '\nLos divisores de ' + str(num) + ' son:\n' print cad + str(num) from time import sleep sleep(20)

Bueno, creo que con estos 8 ejercicios tendrn un entretenimiento de 1 a 1 hora y media. Como mencion al inicio, hemos planteado problemas bsicos matemticos donde usamos toda la teora mencionada en las primeras 6 lecciones del curso... con un poco de prctica podrn crear scripts mas elaborados que los planteados en esta lista de ejercicios.

Potrebbero piacerti anche