P. 1
Python

Python

|Views: 1.569|Likes:
Publicado porkeilajhonny

More info:

Published by: keilajhonny on Apr 21, 2010
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less

07/06/2013

pdf

text

original

Curso de Python Realizado por Joger Quintero jogerq@gmail.

com Las razones del por qué estas aquí son desconocidas para mi, sin embargo, de algo estoy seguro: Tienes la inquietud de aprender python. La idea de este documento es introducir a los lectores en el mundo de python. La metodología que utilizaré está basada en lo que considero la mejor forma de aprender: Trabajar de forma simultanea la teoría y la practica. Es por eso que he decidido recopilar de diferentes tutoriales, libros, manuales y foros, todos aquellos ejercicios que permiten ilustrar los conceptos que iré desarrollando a lo largo del curso. QUÉ ES PYTHON: La primera pregunta que nos hacemos ¿Qué es python? Python no es más que un lenguaje de programación interpretado, que sirve para desarrollar aplicaciones en forma estructural u orientada a objetos. Para mayor información ver: http://es.wikipedia.org/wiki/Python ¿POR QUÉ UTILIZAR PYTHON? Existen diversas razones por las cuales justificar el uso de python en el desarrollo de un proyecto. Voy a citar las que considero más importantes: 1) Los programas en python suelen ser más cortos que los programas realizados en C/C++: Ver para creer: Programa que imprime el famoso “Hola Mundo” desarrollado en C #include <stdio.h> int main() { printf(“Hola mundo \n”); return 0; } El mismo programa en python: print “Hola mundo”

2) Python exige al programar trabajar con indentación, lo cual obliga que siempre el código sea legible por otro desarrollador. Un ejemplo de esto es: var1 = 1 if var1 == 1: print “Es verdad” else: print “Es falso” 3) Puede ser utilizado de forma procedimental, por ejemplo, para crear scripts que permitan admnistrar nuestro sistema operativo. También puede ser utilizado para desarrollar orientado a objetos, esto sirve para aplicaciones de mayor envergadura. 4) Gran cantidad de librerías existentes y bajo licencia gpl. En python encontramos numerosas librerías que nos facilitan el quehacer de la programación. 5) Existencia de FrameWorks que nos permiten el desarrollo rápido de aplicaciones, por ejemplo para el desarrollo web nos encontramos con django. También podemos utilizar aplicaciones para el desarrollo de escritorios, ejemplo glade. 6) Python cubre diversas necesidades: Desarrollo web, desarrollo de aplicaciones web, desarrollo de scripts para administrar nuestro sistema linux, desarrollo de juegos, utilizando la librería pygame. Podemos trabajar con subprocesos y utilizar librerías que nos permitan interactuar con aplicaciones de consola, como por ejemplo pexpect. 7) Python es multiplataforma, lo podemos instalar en diferentes sistemas operativos tales como: Windows, Macintons y linux. Como podrán ver aprender python, así sea por jovi, es una muy buena inversión, ya que con el mismo lenguaje de programación podemos desarrollar diversidad de aplicaciones.

Notas de personas de por qué usar python (Estas notas fueron tomadas de la guía: Introducción a la programación en python): Python ha sido parte importante de Google desde el principio, y lo sigue siendo a medida que el sistema crece y evoluciona. Hoy día, docenas de ingenieros de Google usan Python y seguimos buscando gente diestra en este lenguaje. Peter Norvig, director de calidad de b ́squedas de Google Inc. Python juega un papel clave en nuestra cadena de producción. Sin él, un proyecto de la envergadura de ((Star Wars: Episodio II)) hubiera sido muy difícil de sacar adelante. Visualización de multitudes,

proceso de lotes, composición de escenas. Python es lo que lo une todo. Tommy Brunette, director técnico senior de Industrial Light & Magic. Python está en todas partes de Industrial Light & Magic. Se usa para extender la capacidad de nuestras aplicaciones y para proporcionar la cola que las une. Cada imagen generada por computador que creamos incluye a Python en algún punto del proceso. Philip Peterson, ingeniero principal de I+D de Industrial Light & Magic.

¿CÓMO INSTALAR PYTHON EN LINUX? La mayoría de la distribuciones que he visto ya vienen con python instalado. Solo es cuestión de abrir una consola y tipiar ella: python. Si nos aparece algo como esto significa que tenemos instalado el interprete: $ python Python 2.6.4 (r254:67916, Apr 4 2009, 17:55:16) [GCC 4.3.3] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> Fijense como después de la palagra Python nos es mostrado la versión de python instalada, en este caso tenemos la 2.6.4. En el caso de que no tenerlo instalado podemos acceder a: http://www.python.org/download/ y seguir las instrucciones que ellos nos dan para instalar python. En Ubuntu Jaunty viene instalada la versión 2.6, sin embargo uno podría querer utilizar otra versión. Para proceder a instalar otra versión en distribuciones basadas en debian hacemos lo sigueinte: #aptitude search python Esto nos mostará un listado de las versiones disponibles en paquetes para ser instaladas en nuestra distribución, claro, también apareceran muchos más paquetes que empiesan por la palabra python, pero el interprete, que es el que nos interesa aparecerá de esta forma: p python2.5 i python2.6 - Un lenguaje interactivo de alto nivel orientado a objetos (version) - An interactive high-level object-oriented

Como ya saben la p significa que el paquete no está instalado y la i significa que el paquete ya se encuentra instalado. En el caso de que desea utilizar la versión 2.5 de python lo puede hacer instalando dicha versión de la siguiente manera: #aptitude install python2.5 Luego de instalarla debe cambiar el enlace simbólico que apunta al python 2.6 para que apunte al python 2.5. Esto lo realizo de la siguiente manera:

# cd /usr/bin/ # ls -l python* lrwxrwxrwx 1 root root 18 2010-03-15 09:25 python -> /usr/bin/python2.6 -rwxr-xr-x 1 root root 1177204 2009-04-04 14:43 python2.5 -rwxr-xr-x 1 root root 2268568 2009-04-18 22:23 python2.6 Como podran observar en /usr/bin existe un enlace simbólico que se llama python y que apunta a /usr/bin/python2.6. Eliminar ese enlace simbólico y crear una nuevo que apunte a python2.5. # rm /usr/bin/python # ln -s /usr/bin/python /usr/bin/python2.5 Con esa ya hemos cambiado el uso de la version 2.6 a la 2.5. En una consola ejecutamos de nuevo el comando python $ python Python 2.5.4 (r254:67916, Apr 4 2009, 17:55:16) [GCC 4.3.3] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> ¿QUE ES EL MODO INTERACTIVO DE PYTHON? Algo que para mi es una de las cosas más atractivas de python es la existencia del modo interactivo de python. Cuando nosotros ejecutamos el comando python en una consola, a demás de mostrarnos la versión, nos introduce al modo interactivo, es decir, nos abre un prompt que queda a la espera del ingreso de comandos que nos permitan interactuar con el lenguaje de programación python. Hagamos ejemplos para entender mejor. En una consola escribamos el comando python y presionemos enter $ python Python 2.5.4 (r254:67916, Apr 4 2009, 17:55:16) [GCC 4.3.3] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> Observen de los símbolos “>>>”. Estos símbolos nos muestran que el modo interactivo de python está a la espera del ingreso de instrucciones para que sean interpretadas y luego ejecutadas por el interprete. Comencemos con una simple suma: Python 2.5.4 (r254:67916, Apr 4 2009, 17:55:16) [GCC 4.3.3] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>>3 + 4 #Presionamos la tecla enter

7 >>> Observen como python realiza la suma y nos arroja el resultado, luego del resultado nos vuelve a mostra los símbolo “>>>” indicando que el prompt está nuevamente a la espera del ingreso de instrucciones. NOTA: En lo sucesivo solo colocaré los símbolos “>>>” para indicar que estoy en el modo interactivo de python. El símbolo # significa que estoy en una consola ejecutando comandos como root y el símbolo $ significa que estoy en una consola ejecutando comandos como usuario normal. La pregunta es: ¿Para que quiere uno trabajar en modo interactivo si lo que necesito es hacer programas completos en python? Bueno, una razón es para aprender, con el modo interectivo de python alguién que no conoce la sintaxis de python puede comenzar su aprendizaje. Otra razón podrá ser para realizar pruebas aisladas de los complejos programas que estamos desarrollando, es decir, estoy en medio de una aplicacion GTK y necesito saber si el uso de determinada función me devolverá X o Y valor, en vez de comentar dentro de la aplicación GTK todo el código que no me sirve para realizar mi pureba, luego mandar a imprimir el desultado de la variable, y bla bla bla ... lo que hago es utilizar el modo interactivo de python y proceder a realizar mi pequeña prueba. Nosotros aprenderemos la sintaxis del lenguaje utilizando el modo interactivo, es decir, antes de comenzar a realizar grande proyectos nos enfocaremos en familiarizarnos con python utilizando el su modo interactivo. OPERADORES ARITMETICOS EN PYTHON Son: Suma: + Resta: Multiplicación: * División: / Potencia: ** Resto: % Podemos realizar pruebas para ver que tal funcionan: >>> 3+5 8 >>>5-6 -1 >>>6*5 30 >>>3**2 9 >>>4%2 0 >>>4/2 2

>>>4/3 1 >>>4/3.0 #Para que el resultado sean un dato real es necesario que por lo menos un datos sea real 1.3333333333333333 >>> En python, como en los demás lenguajes de programación existe la jerarquía de operadores, es decir, en el caso de querer realizar una operación aritmética utilizando los diferentes símbolos es necesario comprender el orden en que ellos serán ejecutados. Las instrucciones aritméticas serán ejecutadas de izquierda a derecha, los símbolos % y ** tienen la prioridad de ejecución, seguidos de los signos / y *, seguidos de + y -. Si los símbolos son de la misma jerarquía entonces se ejecutan de izquierda a derecha, primero que se ve, primero que se ejecuta. Vemos ejemplos para que comprendamos: >>> 3+5*2 #Primero se realiza la multiplicación y luego la suma. Esto debido a la jerarquía de símbolos 13 >>>5*2+3 #Aquí ocurre lo mismo que el caso de arriba 13 >>>5+3-4+6 # Misma jerarquía se ejecuta de izquierda a derecha 10 >>> 5+3*4/2+5**2 #Priemero se ejecuta **, luego el * seguido del /y finalmente se realiza la suma 36 >>> Existe un operador de mayor jerarquía que permite agrupar operaciones, el parentesis “()”. Con este operador nosotros podremos asegurarnos de que las operaciones sean como las deseamos. Supongamos que en el ejemplo de arriba nosotros queríamos era sumar 5 + 3, luego multiplicarlo por 4 y a ese resultado dividirlo entre 2. Finalmente elevar 5 al cuadrado para sumarlo con el resultado obtenido en la operación del principio. En python quedaría de la siguiente forma: >>>((5+3)*4)/2+5**2 #Lo que está en parentesis se resolverá primero que cualquier otra cosa 41 >>> Si existen parentesis dentro de parentesis se resolveran primero los parentesis internos, lo que significa que: ((5+3)*4)/2, realizará primero la suma y luego la multiplicación para finalmente dividirlo entre 2 EJERCICIOS(Extraidos de introducción a la programación en python): ¿Qué resultados se obtendrán al evaluar las siguientes expresiones Python? Calculelo sin ingresar las expresiones python, y luego compruebe si el resultado que calculó es igual al resultado que arroja python, si se equivocó, analice por qué a) 2 + 3 + 1 + 2 b) 2 + 3 * 1 + 2 c) (2 + 3) * 1 + 2 d) (2 + 3) * (1 + 2) e) +---6

f) -+-+6 Traduce las siguientes expresiones matemáticas a Python y evalúalas. Trata de utilizar el menor número de paréntesis posible. a) 2 + (3 · (6/2)) b) 2+6/2+3 c) (4/2)5 d) (4/2)5+1 e) (−3^2) f) −(3^2) (Nota: El resultado de evaluar cada expresión es: a) 11; b) 1; c) 10; d) 11; e) 9; f) −9.)

OPERADORES LÓGICOS (O BOOLEANOS) Los operadores lógicos son la esencia de todo lenguaje de programación. Ellos nos permiten a nosotros tomar decisiones en la medica que un script se va ejecutando. En python los operadores lógicos son and or not El operador and nos permite verificar que dos condiciones sean verdaderas, si las dos son verdaderas el resultado que devuelve es verdadero. En el caso de que una sea falsa el resultado que devuelve en falso. Vemos un ejemplo: (Para este ejemplo vamos a a utilizar las constantes True y False predefinidas en python. True significa verdadero y False significa falso) >>>True and False False >>>False and True False >>>False and False False >>>True and True True >>> El operador or exige que por lo menos una de las condiciones sea verdadera. Vamos al ejemplo: >>>True or False True >>>False or True True >>> >>>False or False False

>>>True or True True El operador NOT nos permite negar un resultado boleano, es decir, si el valor devuelto es True un not True sería False. >>>not False True >>>not True False >>>not (True and True) False >>> Los operadores lógicois son muy utilizados con los operadores de comparación: == Igual que != Diferente que < Menor que <= Menor igual que > Mayor que >= Mayor igual que Veamos un ejemplo de su uso. Imaginen que quieren comprobar si un número es mayor que otro >>>3>2 True >>>3>5 False >>> Ahora imaginemos que queremos comparar dos grupos de números: >>>10>5 and 4>2 True >>> También lo podemos hacer con otro operador lógico >>>10>5 or 1>2 True >>> Un ejemplo más complejo utilizando el operador de agrupación >>>(True or (2 == 1+2) ) == True True >>> Las personas sin conocimiento de programación se estarán preguntando: ¿Y para que sirve todo esto?

Más adelante verán la importancia de tener claro la utilización de los operadores lógico y de comparación DECLARACIÓN DE VARIABLES: En todos los lenguajes de programación existen las famosas variables. Las variables no son mas que pequeños espacios de memoria que reservamos para almacenar datos mientras ejecutamos un programa. Cada lenguaje de programación tiene su propia sintaxis para definir la variables. En python una variable se define asignando a un nombre cualquiera un valor determinado, ejemplo: >>>nombreVar = 1 #Asignamos el valor 1 a la variable de nombre nombreVar >>> Aqui hemos asignado el valor 1 a la variable de nombre nombreVar. El operador = es un operador de asignación, existen otros que veremos más adelante. Los nombres de las variables tienen restricciones, es decir, tenemos la libertad de colocar cualquier nombre siempre y cuando cumpla con las siguientes características: 1.Estar formado por letras mayúsculas y/o minúsculas, dígitos y/o el carácter de subrayado(_). 2.No puede comenzar por dígito 3.El nombre no puede ser una palabra reservada del lenguaje. Ejemplo de palabras reservadas son: and, or, not, while, for, import , from, entre otras Python distingue entre minúsculas y mayúsculas. Var1 no es lo mismo que VAR1. Python manejará esas variables de forma separada. Los nombres de las variables no pueden contener espacios en blancos ya que esto se considerará como un nombre no válido. TIPOS DE VARIABLES: Los tipos existentes en python son: .- Entero .- Flotantes, También conocidos como reales .- Complejos .- Cadenas de texto .- Valores booleanos (True o False) El tipo de una variable va a depender del valor que se le está asignando, por ejemplo: Si a una variable le asignamos un número entero entonces esta será del tipo entero. Si por el contrario le asignamos un número real entonces esta será del tipo real. Veamos ejemplos para comprender mejor: >>> var1 = 1 #Esta variable es del tipo entero >>> type(var1) #La funcion predefinida type nos permite observar el tipo de una variable <type 'int'> >>> var2 = 1.5 #Esta variable es del tipo real <type 'float'> >>> var3 = “Variable string” # Esta variable es del tipo string <type 'str'>

>>> var4 = “1” #Variable de tipo string ya que se encuentra entre comillas <type 'str'> >>> var5 = True #Variable con valor Booleano <type 'bool'> A pesar de que podemos llamar a una variable como queramos, es recomendable que se les den nombres que tengan sentido con el código que se está desarrollando. Si por ejemplo queremos sumar la nota 1 de una materia con la nota 2 de la misma materia, podrías hacer algo como esto: >>> nota1 = 14 #Hace referencia a la nota 1 >>> nota2 = 16 #Hace referencia a la nota 2 >>> resultado = nota1 + nota2 # Hace referencia al resultado de la nota >>> print resultado 30 >>> Los operadores de asignación juegan un papel importantisimo en el uso de variables. Ya vimos el operador =, el cual permite asignar un valor a una variable, sin embargo, no es el único que existe. A continuación una lista de todos los operadores de asignación existentes en python: = , += , -=, *=, /=, **=, %= Nada mejor que ejemplos para entender su funcionamiento: >>> numero = 2 #Permite asignar un valor >>> numero += 3 #Permite sumarle 3 valores la variable numero >>> print numero 5 >>> numero = 2 #Permite asignar un valor >>> print numero 2 >>> numero += 3 #Permite sumarle 3 valores la variable numero >>> print numero 5 >>> numero -= 3 #Permite restar 3 valores la variable numero >>> print numero 2 >>> numero *= 3 #Permite multiplicar por 3 la variable numero >>> print numero 6 >>> numero /= 3 #Permite dividir entre 3 la variable numero >>> print numero 2 >>> numero **= 3 #Permite elevar al cubo la variable numero >>> print numero 8 >>> numero %= 3 #Permite obtener el resto de la division de numero entre 3

>>> print numero 2 >>> Es importante que para poder utilizar un variable con un operador de asignación, a excepción de =, es necesario haber inicializado la variable, si no nos arrojará la excepción NameError. Si trato de hacer algo como esto: >>> k+=2 Traceback (most recent call last): File "<stdin>", line 1, in <module> NameError: name 'k' is not defined >>> Esta excepción nos indica que la variable no fue definida. VARAIBLE DE TIPO STRING O CADENA Estas variables en python se asignan con los caracteres de comillas simples o comillas dobles. En python es indiferente el tipo de comilla que se utilice para la declaración de un string, sin embargo, se debe cerrar la cadena con la misma comilla que se abrió: >>> cadena1 = ''Estoy con comillas doble'' >>> cadena2 = 'Esta cadena esta con comillas simples' Podemos realizar operaciones con las cadenas, si tenemos la necesidad de unir dos cadenas en una sola procederíamos a realizar una operación de concatenación: >>> cadena1 = "Hola " >>> cadena2 = "Joger" >>> cadena3 = cadena1 + cadena2 >>> cadena3 'Hola Joger' >>> Tambien podemos multiplicar una cadena, es decir, hacer que el contenido de ella se repita tantas veces como lo necesitemos. >>> cadena3 * 3 'Hola JogerHola JogerHola Joger' >>> Aunque parezca extraño una cadena podría ser un número. Si asignamos a una variable un número entre comillas este sería una cadena y no un número. Veamos esto en un ejemplo: >>> numeroCadena = 3 #Aqui estamos asignando un número >>> numeroCadena 3 #Observen como no lo imprime entre comillas >>> numeroCadena = "3" #Aqui a pesar de que es un número el interprete lo manejará como cadena

>>> numeroCadena '3' #Observen como lo imprime entre comillas >>> NOTA: En python existen otros tipos de datos, por ejemplo estan los números complejos, también existe el los enteros largos. Estos últimos son utilizados cuando cuando el rango de número resulta insificiente. Los enteros largos siempre terminan con la letra L >>> 2 ** 30 1073741824 #Entero normal >>> 2 ** 31 2147483648L #Entero largo >>> Las cadenas soportan los operadores de comparación. Uno podría desear saber si una cadena es igual, diferente, mayor o menor a otra cadena. Cuando pensamos en igualdad es fácil para nosotros entender de que se habla, por ejemplo: >>> 'a' == 'a' True >>> >>> 'b' == 'a' False >>> Pero cuando se habla de mayor o menor, la cosa cambia. Aquí es necesario saber como trabaja internamente python. >>> 'a' > 'b' False >>> ¿Por qué a es menor que b? Cada caracter está representado por un número en la tabla ascii (http://www.ascii.cl/es/). Para poder ver cual es el número de un carácter en la tabla ascii pordemo hacer uso de la función predefinida ord(). Veamos cual es el equivlente en la tabla ascci de la letra a: >>> ord('a') 97 >>> Ahora veamos cual es el equivalente en la letra b: >>> ord('b') 98 >>> Visto de este angulo es más fácil comprender por qué la expresion 'a' > 'b' es False. Aqui lo que ocurre

es que se sustituye el valor de 'a' por 97 y el valor de 'b' por 98, y 97 no es mayor a 98. ¿Pero qué pasa si tenemos un string con más de un carácter? >>> 'Jorge' > 'Joger' True >>> ¿Cómo se está evaluando esto? El interprete va a verificar carácter por carácter hasta encontrar que uno de ellos sea mayor o menor al otro. En otras palabra, la J, y la o son iguales y por tanto no producen una respuesta de verdadero o falso, cuando el interprete llega a la r se da cuenta que en la otra cadena existe la g y que esta es menor que la r devolviendo el valor True. Esto sirve para ordenar cadenas por orden alfabético. La función predeterminada chr() permite encontra el caracter de un valor ascci: >>> chr(97) 'a' >>>

EJERCICIOS (Extraidos de introducción a la programación en python): 1) ¿Son válidos los siguientes identificadores? a) Identificador b) Indice\dos e)area-rect h) 12 k) uno.dos l) ’var’ q) hora12 t) x_x g) desviación c) año f)Dos palabras i) \t) x_______ 1 m) ________ 1 o) x r) import_from u) Área m) UnaVariable d) a(b) g) from j) var ! n) 12horas p) _x_ s) π

2) ¿Qué resultados arrojan las siguientes operaciones? Debe realizar los cálculos sin utilizar el interprete de python y luego compruebe si el resultado obtenido es igual a los arrojados por python >>> z = 16 >>> z+= 34 >>>z-=34+2 >>>z**=4 >>>z/=3 >>>z%2

3) Evalúa estas expresiones y sentencias en el orden indicado (Debe realizar los cálculos sin utilizar el interprete de python y luego compruebe si el resultado obtenido es igual a los arrojados por python) : a) a = 'b' b) a + 'b' c) a + 'a' d) a * 2 + 'b' * 3 e) 2 * (a + 'b') 4) ¿Qué resultados se obtendrán al evaluar las siguientes expresiones y asignaciones Python? Calcula primero a mano el valor resultante de cada expresión y comprueba, con la ayuda del ordenador, si tu resultado es correcto. a) 'a' * 3 + '/*' * 5 + 2 * 'abc' + '+' b) palindromo = 'abcba' (4 * '<' + palindromo + '>' * 4) * 2

5) Identifica regularidades en las siguientes cadenas, y escribe expresiones que, partiendo de subcadenas más cortas y utilizando los operadores de concatenación y repetición, produzcan las cadenas que se muestran. Introduce variables para formar las expresiones cuando lo consideres oportuno. a) '%%%%%./././<-><->' b) '(@)(@)(@)======(@)(@)(@)======' c) 'asdfasdfasdf=-=-=-=-=-=-=-??????asdfasdf' d) '........*****---*****---........*****---*****---' 6) ¿Qué resultados se muestran al evaluar estas expresiones? >>> 'abalorio' < 'abecedario' >>> 'abecedario' < 'abecedario' >>> 'abecedario' <= ’abecedario' >>> 'Abecedario' < ’abecedario' >>> 'Abecedario' == ’abecedario' >>> 124 < 13 >>> '124' < '13' >>> 'a' < 'a' NOTA: 1)Existe una manera de imprimir una cadena de caracteres respetando los saltos de lineas. Esto lo logramos encerrando el contenido entre tres comillas dobles: print """Hola Esto es una prueba! """ 2)Los string en python son objetos que tienen métodos asociados a ellos. Ejempo:

>>> cadena = 'hola' >>> cadena.upper() #Este método permite poner en mayúscula todas las letras 'HOLA' FUNCIONES PREDEFINIDAS EN PYHON Existe un gran número de funciones predefinidas en python. Para utilizarlas solo debemos llamarlas por su nombre y pasar los parámetros que la misma nos pida. Cuando trabajamos con cadenas utilizamos dos funciones predefinidas, estas fueron: ord() y chr(). Otra función predefinida podrías ser round(15.234,2) que redondea a dos decimales el número dado, str() que transforma un número en string, abs() que obtiene el valor absoluto, entre otras. >>> str(1) '1' >>> abs(-1) 1 >>> round(15.236,2) 15.24 >>> ESTRUCTURAS DE CONTROL Sentencias Condicionales: Imaginemos que necesitamos hacer un programa que calcule si un número es mayor a otro número. Si lo es entonces que nos imprima algo como esto: El número x es mayor al numero y. Esto lo podemos hacer gracias a la existencia de la sentencia condicional IF. Veamos un ejemplo: >>> num1 = 7 >>> num2 = 5 >>> if num1 > num2: print 'El número %s es mayor al número %s' % (num1,num2) El número 7 es mayor al número 5 >>> Podrías querer que se imprima algo en el caso contrario de que el num1 no sea mayor a num2. En ese caso utilizaríamos la instrucción else >>> num1 = 4 >>> num2 = 5 >>> if num1 > num2: print 'El número %s es mayor al número %s' % (num1,num2) else: print 'El número %s es menor al número %s' % (num1,num2)

El número 4 es menor al número 5 >>> También podemos anidar estructuras de decisión: num1 = 2 >>>if num1 < 1: print 'Menor a uno' elif num1 <2: print 'Mayor a uno' else: print 'Entramos al caso de lo contrario' 'Entramos al caso de lo contrario' >>> Existen los IF anidados: if num1 == 3: if num1 != 4: print 'Soy igual a tres y diferente de 4 TRATAMIENTOS DE EXCEPCIONES PYTHON Estoy seguro que durante la ejecución de los pequeños scripts de python que hemos desarrollado habrán encontrado respuestas como estas por parte del interprete: Traceback (most recent call last): File "<stdin>", line 1, in <module> NameError: name 'sdf' is not defined Traceback (most recent call last): File "<stdin>", line 1, in <module> ZeroDivisionError: integer division or modulo by zero Imaginemos por un momento que no deseamos que cuando ocurra un error como estos le salga algo así al usuario. Para ello existen las excepciones en python. Como pueden observar estos errores tienen un nombre que los identifica como una exepción. En el primer caso el nombre de la excepción es: NameError, en el segundo caso es ZeroDivisionError. Vemos como podemos hacer para capturar estas excepciones y enviar un mensaje de error mas comprensible por parte del usuario: >>> try: #Esta instrucción lo que dice es que se intente realizar lo de abajo ... 3/0 # Aqui ejecutamos el código ... except ZeroDivisionError: #Si ocurre un error de division entonces lo capturamos e informamos ... print "El dividendo debe ser mayor a cero" ...

El dividendo debe ser mayor a cero >>> Básicamente la sintaxis consiste en: try: linea a ejecutar linea a ejecutar linea a ejecutar except: Hacer lo que se crea conveneinte al capturar el error En execpt podremos especificar la excepción que queremos capturar, si no la hacemos, el interprete reaccionará a cualquier excepción que ocurra. EJERCICIOS: 1) Diseñe un programa que determine si un número es negativo 2) Diseñe un programa que determine si un número se encuentra entre 5 y 6 3) Indique en el siguiente programa que valores de las siguientes entradas producen uno de los mensajes >>> letra = Indique el valor que debe ir aqui para que se imprima el mensaje >>> if letra <= 'p' print 'Es menor o igual' 4) Realice un programa utilizando las estructuras de decisión que permita resolver una ecuación de primer grado: ax + b = 0 (Trabaje con la excepciones para evitar errores inesperados en la división) 5) Diseñe un programa que, dados dos números enteros, muestre por pantalla uno de estos mensajes: ((El segundo es el cuadrado exacto del primero.)), ((El segundo es menor que el cuadrado del primero.)) o ((El segundo es mayor que el cuadrado del primero.)), de- pendiendo de la verificación de la condición correspondiente al significado de cada mensaje. 6) Realice un programa que resuelva una ecuación de segundo grado: ax2 + bx + c = 0 7) Ralice un programa que determine de tres números cual es el mayor 8) Ralice un programa que determine de tres números cual es el menor

SENTENCIAS DE REPETICIÓN: En python existen solo dos tipos de repetición, la sentencia repita mientras y la sentencia repita para. Repita mientras: >>>cont = 0 >>>while cont < 3: print 'El valor de contador es: %s' % cont cont+=0 El valor de contador es: 0 El valor de contador es: 1 El valor de contador es: 2 >>> Repita para: >>>for i in range(5): print i 0 1 2 3 4 >>> La función predefinida range devuelve una lista con valores del 0 al 4. Para comprobar esto podemos realizar los siguiente: >>> range(5) [0,1,2,3,4] Lo que significa que for en python está diseñado para iterar listas. La variable i lo que hace es ir tomando cada una de los elementos de la lista. Probemos con una lista que >>> l = ['Valor 1','Valor 2','Valor 3'] >>> for v in l: print v Valor1 Valor 2 Valor 3 >>>

Otra forma de recorrerlo sería: >>> l = ['Valor 1','Valor 2','Valor 3'] >>> for i in len(l): #La función len obtiene la longitud de la lista print l[i] Valor1 Valor 2 Valor 3 >>> La función range nos permite limitar la cantidad de números que deseamos en la lista. >>> range(2,5) [2,3,4] >>> El repita mientras en python lo podemos emular con una break Cosas interesantes que podemos hacer con las listas: >>> p = ['joger','maria','luisa','ana'] >>> l = [c.upper() for c in p] >>> l ['JOGER', 'MARIA', 'LUISA', 'ANA'] >>> Otra >>> p = ['joger','maria','luisa','ana'] >>> [c.upper() if c=='joger' else c for c in p] ['JOGER', 'maria', 'luisa', 'ana'] >>> Ejercicios 1) Realice un programa que determine si un numero es primo 2) Realice un programa utilizando estructura de repetición y de decisión que imprima los número pares del 0 al 100 3) Defina una función que permita calcular la raíz cubica de un número siempre y cuando este sea par y retorne el resultado

Funciones en python: Ya habíamos hablado de funciones predefinidas en python, ahora vamos a hablar de funciones creadas por el usuario en python. Muchas veces cuando estamos desarrollando un sistema necesitamos reutilizar código, para de esta manera no tener que estar repitiendo constantemente las mismas sentencias. Imaginemos que tenemos que validar una variable de tipo entero que cumpla con ciertas características, por ejemplo, que se encuentre en un rango del 1 al 9. Esta validación la vamos a realizar varias veces en el mismo programa. Lo ideal aquí sería crear una función a la que le pasaríamos el la variable y la misma nos retornaría True o False. La sintaxis para definir una función es la siguiente: def nombreFuncion([param1,param2 ...]): tarea 1 tarea 2 Pero entender esto mejor vamos a crear la función que validará la variable de tipo entero: def validarInt(num): if 10 > num > 0: return True return False Haríamos el llamado de la función de la siguiente manera: resultado = validarInt(8) print resultado Python permite que pasemos valores asociados a los nombres de las variables que reciben dichos valores. Supongamos que vamos a realizar una función que sumo dos números, la difinición sería la sigueinte: def sumar(num1,num2): r = num1 + num2 return r Nosotros podemos hacer el llamado de la sigueinte forma: r = sumar(num2=2,num1=1) Esto es genial en el caso de tener valor asignados por defecto a las variables de la función. Ejemplo: def sumar(num1=0,num2=0): r = num1 + num2 return r

Los posibles llamados a esa función serían los sigueintes: r = sumar() print r # El resultado que arroja es 0 r = sumar(1,2) print r # El resultado que arroja es 3 r = sumar(6) print r # El resultado que arroja es 6 r = sumar(num2=4) print r #El resultado que arroja es 4 r = sumar(num1=4,num2=5) print r #El resultado que arroja es 9 Python permite que pasemos infinidad de parametros a una función, esto se puede realizar utilizando una lista o un diccionario. Si queremos hacerlo con una lista la sintaxis sería la siguiente: #función que sume varios números pero desconocemos la cantidad de números a sumar. def sumar(*numeros): r=0 for n in numeros: r += n return r r = sumar(3,6,7,8,10) print r # 34 Si queremos utilizar un diccionario procedemos la sintaxis sería la sigueinte: def sumar(**numeros): #Llevaría doble asterisco r=0 for n in numeros.items(): r += n[1] return r r = sumar(num1=1,num2=2,num3=3,num4=4) print r # 10 Una duda que surge en python en como hago para pasar variables por refencia o por valor a una función. Bueno, en python los pases por referencia o valor se realizan dependiendo de si la variable es mutable o es inmutable. Por ejemplo, una varaible de tipo entero es un objeto en python inmutable, lo que significa que no puede cambiar su valor. Si yo paso una variable de tipo entero a una funcion su paso será por valor, ya que los cambios que ocurran dentro de la función no se reflejarán en fuera de la

función. Sin embargo, si paso una lista (Tipo de dato mutable) este pase se haría por referencia, ya que al tener la lista la característica de mutable todo los cambios que ocurran dentro de la función se verían reflejados fuera de la función. Veamos unos ejemplos para comprender mejor def miFuncion(lista,entero): lista.append('Valor agregado') entero+=4 #Procedemos a crear variables l = ['Valor 1','Valor 2'] num= 4 #Hacemos el llamado a la función miFuncion(l,num) #Procedemos a imprimir los valores originales print l # ['Valor 1','Valor 2','Valor agregado'] print num 4 Si ejecutamos este código en python podremos observar como los cambios realizados dentro de la función afectaron afectaron a la varaible de la lista que se encontraba fuera de la función. Sin embargo, no afectó el valor de la variable de tipo entero. Este ejemplo muestra lo explicado arriba Ejercicios: Realice una función que imprima los números primos de acuerdo a un rango dado

You're Reading a Free Preview

Descarga
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->