Python Basico
Python Basico
1.
Introduccin Python es un lenguaje de fcil aprendizaje (lenguaje en pseudocdigo) . Como todo
lenguaje tiene eficientes estructuras y es orientado a objetos (todo es un objeto)
Python es un lenguaje interpretado y hace parte de los lenguajes de script, ideales para el desarrollo rpido de
aplicaciones en la mayora de plataformas
El intrprete de Python posee un extenso conjunto de libreras disponibles (http://www.python.org/) , as
como tambin posee mdulos desarrollados por terceros como el mdulo PLY para darle robustez y amplitud
de escenarios a las diferentes aplicaciones.
Para empezar En python las variables no tienen tipo (son objetos), se declaran, se usan y desaparecen, el
operador de asignacin es =
Ejemplo:
x,y,z = 1,2,3
saludo = hola
primero, segundo = segundo, primero
a = b = 123
Para definir bloques de cdigo, se utiliza solamente el tabulado (sangrado) . stas son algunas estructuras de
control:
if x < 5 or (x > 10 and x < 20):
print "El valor es correcto."
if x < 5 or 10 < x < 20:
print "El valor es correcto."
x = 10
while x >= 0:
print "x todava no es negativo."
x = x-1
La variable de ndice en el ciclo for recorre los elementos de una lista (escrita como en el ejemplo). Para
realizar un ciclo for "normal" (es decir, como contador), se utilice la funcin range().
# Mostrar los valores de 0 a 99 inclusive.
for valor in range(100):
print valor
# mile/kilometer conversion
for miles in range(10, 70, 10):
km = miles * 1.609
print "%d miles --> %3.2f kilometers" % (miles, km)
(La lnea que comienza por "# " es un comentario y el intrprete le hace caso omiso)
Algunos comando para la interaccin con el usuario:
Para obtener entrada del usuario, de un indicador de texto, utiliza la funcin de serie input.
x = input("Introduzca un nmero:")
print "El cuadrado de ese nmero es:", x*x
La funcin input muestra la solicitud dada (que podra estar vaca) y permite que el usuario introduzca
cualquier valor Python vlido. En este caso se espera un nmero, si se introduce algo diferente (una cadena,
por ejemplo), el programa falla. Para evitarlo se necesita cdigo adicional para la comprobacin de errores,
tambin existe la funcin raw_input. Si desea convertir la cadena de entrada s a un entero, podra utilizar
int(s).
user_input = raw_input("Enter an integer: ")
try:
number = int(user_input)
print "You entered", number
except ValueError:
print "Integers, please!"
Nota: Si desea introducir una cadena con input , el usuario debe escribir las comillas explcitamente. En
Python, las cadena pueden encerrarse entre comillas simples o dobles.
Python ofrece a los programadores potentes estructuras para almacenar informacin de cualquier tipo. Las
ms importantes son las listas, diccionarios y tuplas . Las listas se escriben entre corchetes, y se pueden
anidar:
nombre = ["Cleese", "John"]
x = [[1,2,3],[y,z],[[[]]]]
Una de las ventajas de las listas es que se puede acceder a sus elementos por separado o en grupos, mediante
indexado y corte . El indexado se realiza (como en muchos otros lenguajes) aadiendo el ndice entre
corchetes a la lista (observar que el primer elemento es el 0).
print nombre[1], nombre[0]
Muestra "John Cleese"
nombre[0] = "Palin"
print "This function creates a list."
def makelist():
a = []
for i in range(1, 20):
a.append(i)
print "appending", i, ":", a
return a
makelist()
Tambin se puede acceder a los elementos de una lista por rangos o segmentos: se indican los ndices de inicio
y fin del resultado, con dos puntos (":") de separacin:
x = ["elem0","elem1","elem2","elem3","elem4","huevos","and","elem7"]
print x[5:7]
Muestra la lista ["huevos","and"]
Observe que el elemento del ndice final no se incluye en el resultado. Si se omite uno de los ndices se
supone que se quiere obtener todo en la direccin correspondiente. Esto es, lista[:3] quiere decir "cada
elemento desde el principio de lista hasta el elemento 3, no incluido".
print x[:4]
significara, por otra parte "cada elemento de lista , empezando por el 3 (inclusive), hasta el
ltimo inclusive". Se pueden utilizar nmeros negativos para obtener resultados muy interesantes: lista[-3]
es el tercer elemento desde el final de la lista...
lista[3:]
print x[4:]
Al igual que las listas, los diccionarios pueden contener otros diccionarios u otras listas. Naturalmente,
tambin las listas pueden contener diccionarios. De este modo, se pueden conseguir estructuras de datos muy
robustas.
2. Funciones Abstraccin. Para definir una funcin, se utiliza la palabra reservada def as:
def cuadrado(x):
return x*x
print cuadrado(2)
4
Todos los parmetros en Python se pasan por valor de referencia a objetos ?? (similar a java)
Por valor:
def cuadrado(y):
y=y*y
return y
y=5
print 'antes de enviar como parametro: ', y
cuad=cuadrado(y)
Por Referencia:
def f(x, y):
x = x + 3
y.append(23)
print x, y
x = 22
y = [22]
f(x, y)
print x, y
Python tiene todo tipo de lujos, como argumentos con nombre y argumentos por omisin y puede manejar un
nmero variable de argumentos para una funcin. Para obtener ms informacin, consultar la seccin 4.7 del
tutorial de Python.
La palabra clave return detiene la ejecucin de la funcin y devuelve el resultado indicado.
Algo que podra resultar interesante conocer, sin embargo, es que las funciones son valores en Python. As
que, si tiene una funcin como cuadrado, podra hacer cosas como:
cosa = cuadrado
cosa(2)
Muestra 4
Para llamar a una funcin sin argumentos se debe recordar escribir funcion() y no funcion. La segunda
forma slo devuelve la funcin en s, como valor (esto vale tambin para los mtodos de los objetos).
3. Objetos. Python es un lenguaje orientado a objetos. La palabra class, define una clase, de este modo:
class Cesta:
# Recuerde siempre el argumento self
def __init__(self,contenido=None): #
self.contenido = contenido
def anadir(self,elemento):
self.contenido.append(elemento)
def mostrar(self):
resultado = ""
for elemento in self.contenido:
resultado = resultado + " " + `elemento`
print "Contiene:"+resultado
Notas:
1. Todos los mtodos (funciones de un objeto) reciben un argumento adicional al principio de la lista de
argumentos, que contiene el propio objeto. Este argumento, por convencin, se suele llamar self (que
significa 'uno mismo'), como en el ejemplo.
2. A los mtodos se los llama de este modo: objeto.metodo(arg1,arg2).
3. Alguno nombres de mtodo, como __init__ estn predefinidos, y significan cosas especiales.
__init__ es el nombre del constructor de la clase, es decir, es la funcin a la que se llama cuando se
crea una instancia.
4. Algunos argumentos son opcionales y reciben un valor dado (segn lo mencionado antes, en la seccin
de funciones). Esto se realiza escribiendo la definicin as:
def funcion(edad=32): ...
Aqu, se puede llamar a funcion
Esto es lo que hacemos en el mtodo Cesta.__init__ . El argumento contenido tiene el valor por defecto
None (que es, entre otras cosas, falso). Por lo tanto, para comprobar si tena valor, podramos escribir:
if contenido:
self.contenido = contenido
else:
self.contenido = []
Para utilizar una clase se hace una insatncia (objeto de la clase) de Cesta:
b = Cesta(['manzana','naranja'])
b.anadir("limon")
b.mostrar()
Hay ms mtodos adems de __init__. Uno de ellos es __str__, que define el aspecto que quiere tener el
objeto si se le trata como una cadena, se utiliza en lugar del mtodo mostrar() :
def __str__(self):
resultado = ""
for elemento in self.contenido:
resultado = resultado + " " + `elemento`
return "Contiene:"+resultado
Python permite la herencia mltiple, as que puede indicar varias super-clases entre los parntesis, separadas
por comas. Las clases se instancian as: x = Cesta(). Los constructores se definen, implementando la
funcin miembro especial __init__.
Si CestaVerduras tuviera un constructor __init__(self,tipo). Podra realizar una cesta de Verduras as:
y = CestaVerduras("zanahoria") .
Para obtener ms informacin sobre la programacin orientada a objetos en Python, mirar la seccin 9 del
tutorial.
4. Algo ms Python utiliza espacios de nombres dinmicos (no lxicos). Esto quiere decir que si se tiene una
funcin como sta:
def doble():
return x*2
donde una variable (en este caso x) no est ligada a un argumento, y no se le asigna un valor desde dentro de
la funcin, Python utilizar el valor que tenga cuando se llama a la funcin. En este caso:
x = 3
print doble()
6
x=1
print doble()
2
Normalmente, ste es el comportamiento deseado (aunque el ejemplo es un poco rebuscado), sin embargo, es
un tratamiento poco comn para el uso de variables.
Donde componer es la funcin que se quiere realizar y x tiene el valor -0.836021861538, que es lo mismo
que sin(cos(3)).
Observe que se utiliza funciones como argumentos y eso ya es un truco.
Obviamente, componer toma dos funciones como parmetros y devuelve una funcin que a su vez toma un
parmetro. Un esqueleto de la solucin podra ser:
def componer(fun1, fun2):
def interior(x):
# ...
return interior
Sin embargo, es necesario localizar las funciones (y variables). fun1=fun1, fun2=fun2 garantizan el uso
de fun1 y fun 2 en un mbito local.
def componer(fun1, fun2):
def interior(x, fun1=fun1, fun2=fun2):
return fun1(fun2(x))
return interior
Python ofrece las funciones annimas, son funciones que no tienen nombre y pueden retornar valores, una
funcin annima se declara utilizando la palabra clave lambda:
def componer(f1, f2):
return lambda x, f1=f1, f2=f2: f1(f2(x))
5. Para finalizar. Las funciones y clases ms tiles se ponen en mdulos, que son en realidad ficheros de
texto legible en cdigo Python. Se puede importarlos y utilizarlos en sus propios programas. Por ejemplo, para
utilizar el mtodo split (dividir) del mdulo estndar string (cadena), puede hacer estas cosas:
import string
x = string.split(y)
o tambin
from string import split
x = split(y)
Sirve para decir que si el mdulo se ejecuta como un script ejecutable (es decir, que no est siendo importado
por otro script o mdulo), se debe ejecutar la funcin ejecutar.
Y, si desea hacer un script ejecutable en UNIX, escriba esto como primera lnea para hacer que el script se
ejecute sin llamar a python explcitamente:
#!/usr/bin/env python
Finalmente, las excepciones sobre algunas operaciones como dividir por cero o leer de un archivo inexistente,
causan una condicin de error o excepcin, incluso, se pueden implementar excepciones del programa o
propias y lanzarlas en los momentos adecuados.
Si no se hace nada con la excepcin, el programa termina y muestra un mensaje de error. Esto se puede evitar
con una construccin try/except. Por ejemplo:
def dividirSeguro(a,b):
try:
return a/b
except ZeroDivisionError:
return None
es una excepcin estndar. En este caso, se podra haber mirado si b era cero, pero hay
muchos casos en los que no es posible. Adems, si no tuviramos la clusula try in dividirSeguro,
hacindola de este modo una funcin arriesgada, podramos hacer algo como:
ZeroDivisionError
try:
dividirInseguro(a,b)
except ZeroDivisionError:
print "Se ha intentado dividir por cero en dividirInseguro"
En casos en los que normalmente no debera haber problemas concretos, pero podran ocurrir, la utilizacin
de excepciones permite evitar tediosas comprobaciones.
Tomado de:
-
Lfg101.