Sie sind auf Seite 1von 3

Conceptos bsicos de Python

Vamos a hacer un pequeo repaso de los conceptos necesarios del lenguaje de programacin Python que te harn falta en este curso. Veris
que no son conceptos complicados, y con ejemplos son fciles de aprender. La versin utilizada durante el curso y que utiliza gvSIG 2 es la
versin de Python 2.

Probar Python
Para poder hacer nuestras primeras pruebas sobre Python y que los ms nuevos os podis iniciar en lo bsico, existe una web llamada
CodeSkulptor en la que podemos ejecutar nuestro cdigo sin necesidad de instalacin de ningn programa.
En el siguiente enlace podis acceder a la web: http://www.codeskulptor.org/#user38c73C9FMLd22.py
Es un entorno muy sencillo de utilizar, a la izquierda tenis el cdigo y a la derecha el resultado de ejecutarlo. Para ejecutarlo solo hay que
presionar el botn de Play arriba a la izquierda. Si hacis click en guardar si os fijis os genera un enlace nuevo en la pgina web, as que si
tenis alguna duda podis Guardar este enlace que almacenar vuestro cdigo por un tiempo, y enviarlo al Foro para que cualquier persona os
pueda ayudar.

Variables
Se utilizan para almacenar valores, estos pueden ser de muchos tipos: texto, numero, listas..

Texto y nmeros
Las variables de texto ( string ) se escriben siempre entre comillas "". Para los nmeros existen diferentes tipos, segn sean enteros ( integer ),
reales( long o float ), etc. python a = 5 #numero b = 2 #numero texto1 = "Hola" texto2 = " Mundo"
Existe un tipo de valor llamado booleano, corresponde a una variable que tan solo puede almacenar los valores True o False, correspondientes a
Verdadero o Falso.
Algunas de las operaciones bsicas: Si queremos realizar una suma, el resultado depender del tipo de dato que contengan estas variables:
```python

Sumamos dos numeros


c1 = a + b #sumamos print "Resultado c1 suma: ", c1 # resultado es 7
c2 = str(a) + str(b) #con str() los convertimos a texto print "Resultado c2 concatenacion: ", c2 # resultado es 52 ```
Si son de tipo texto, se realizar la concatenacin de ellas: python print texto1 + texto2 # resultado es: "Hola Mundo"

Listas
Las listas funcionan para almacenar listas de valores, el formato es siempre entre corchetes [], separando los miembros de la lista por comas:
python listaNombres = ["Eduardo", "Juan", "Jose"]

Pueden contener todo tipo de valores dentro, desde tipo texto como la anterior, nmeros, variables, etc:
python listaVariables = [ a, b, texto1, texto2]

Las listas pueden contener diferentes tipos de valores en la misma lista: python listaMixta = ["Valencia", 150000, 40, 3]
Podemos acceder a los valores de una lista indicando el ndice que se encuentran.
```python listaNombres = ["Eduardo", "Juan", "Jose"] print "Primer nombre: ", listaNombres[0] #indice cero es el primer valores

Mostraria "Eduardo"
print "Segundo nombre: ", listaNombres[1] "Mostraria "Juan" ```
Tambin podemos conocer la longitud de la lista, para saber cual es el ltimo valor del ndice que nos permitir poner sin que de error (no
podemos pedir el valor de una posicin que no exista): ```python print "Longitud de la lista: ", len(listaNombres)

como el indice empieza por cero, el indice maximo es


ultimoIndice = len(listaNombres)-1 print "Indice desde cero hasta: ", ultimoIndice print "Ultimo valor de la lista: ", listaNombres[ultimoIndice] ```
Para agregar algn elemento nuevo a la lista es tan sencillo como utilizar el comando append sobre la lista:
python print "Lista de nombres: ", listaNombres listaNombres.append("Alberto") print "Lista nueva de nombres: ", listaNombres

Diccionario
Otra forma de almacenar valores es mediante un diccionario. Los diccionarios nos permiten introducir una palabra clave con la que se identificar
ese valor.
python dictPersona = {"Nombre":"Eduardo", "Edad": 15, "Residencia":"Valencia"}

Ahora podramos acceder al valor que quedamos mediante:


python print "Nombre de la persona: ", dictPersona["Nombre"] print "Edad: ", dictPersona["Edad"]

Para modificar los valores de un diccionario, indicamos el valor de la clave que queremos cambiar y le asociamos un valor nuevo.
```python print "Residencia: ", dictPersona["Residencia"]

cambiar residencia por Barcelona


dictPersona["Residencia"] = "Barcelona" print "Nueva Residencia: ", dictPersona["Residencia"] ```

Estructuras
Condicionales
Podemos incorporar bloques de cdigo que solo se ejecuten si se cumple cierta condicin:
python edad = 15 if edad >= 18: print "Eres mayor de edad" else: print "No eres mayor de edad"

Tambin podemos incluir otra condicin intermedia, si la primera no se cumple, >= mayor o igual que 18, pasaremos a la siguiente que es una
condicin de igualdad == . Si ninguna se cumple, se ejecutar el cdigo que est contenido en el else :
python edad = 21 if edad >= 18: print "Eres mayor de edad" elif edad == 17: print "El proximo ao sera mayor de edad" else: print "No eres mayor de edad"

Y utilizando uno de los ejemplos anteriores, incorporando el diccionario que hemos creado.
python if dictPersona["Edad"] > 18: print dictPersona["Nombre"], " es mayor de edad" elif dictPersona["Edad"] == 17: print dictPersona["Nombre"], " sera mayor de edad el proximo ao" else: print "Es menor de edad"

Adems, existe la posibilidad de que se tengan que cumplir varias condiciones para que se ejecute una parte del cdigo, esto se realiza mediante
operadores lgicos como son and que implica que se tengan que cumplir dos condiciones, o que se tenga que cumplir una u otra condicin con el
operador or , por ejemplo:
python x = 15 if x>10 and x<20: print "Cumple las dos condiciones" if x==15 or x>20: print "Cumple una condicion"

Bucle for
Otra de las funciones principales que ejecutaremos normalmente sern los bucles. Son trozos de cdigo que se repiten un nmero determinado

de veces. Vamos recorriendo los valores del bloque de uno en uno.


python print "Numeros en el rango 5" for i in range(5): #recorremos los 5 primeros numeros print i

O podemos acceder a los valores de una lista de uno en uno:


python print "Lista de nombres:", listaNombres for nombre in listaNombres: print nombre

Tambin podemos utilizarlo con un diccionario. En este caso accedemos a las claves (keys) del diccionario, y luego las vamos recorriendo. Esto
puede ser til para modificar los valores del diccionario:
python print "Bucle diccionario:" print "Claves: ", dictPersona.keys() print "Valores: ", dictPersona.values() for key in dictPersona.keys(): print dictPersona[key]

Bucle while
Por ltimo, existe un tipo de bucles que no paran de ejecutarse hasta que se cumple una condicin. Estos bucles se llaman while y su estructura
es la siguiente
python x = 1 while x < 10: print "Vez: ", x x += 1

Hay que tener cuidado en especial con estos bucles porque podemos generar bucles infinitos en los que nunca se cumpla la condicin.
Otra forma de ejecutarlos es decirle que siga en el bucle hasta que se cumpla algo que esperamos, y nosotros con el comando break le hacemos
que pare. Un ejemplo similar al anterior:
python x = 1 while True: print "Vez: ", x x += 1 if x>=10: #si se cumple la condicion lo paramos con un break break

Archivos
Con Python podemos tener acceso a ficheros de texto, muy til en nuestro campo para importar o exportar datos. Podemos leer los ficheros
donde tengamos datos y luego irlos leyendo lnea a lnea, como si fueran una tabla.
python thisfile = open(datadirectory/file.txt) # carga el archivo fichero = thisfile.read() # lee todo el fichero como un texto entero fichero = thisfile.readlines() # lee todo el fichero y nos permite ir linea a linea for linea in thisfile: print linea

Funcin
Una funcin es un grupo de lneas de cdigo con un objetivo concreto y que son ejecutadas al llamarse desde otra parte del cdigo las veces que
sea necesaria. Los valores que pasamos en la funcin se denominan parmetros de la funcin. Vemos que con el comando return hacemos que
la funcin nos devuelve el valor deseado.
En el siguiente ejemplo creamos una funcin que nos identifique si un nmero es par o impar, de esta forma podremos llamar a esta funcin
siempre que la necesitemos. Vemos que nos devuelve una cadena de texto, pero podramos modificarla para que nos devuelve el valor que
queramos.
```python def es(x): y = x%2 if y == 1: return "Es impar" else: return "Es par"
print es(10) print es(5) ```

Clases
Un pequeo ejemplo del uso de clases en programacin: ```python class Rectangulo: def init(self): self.ancho = 0 self.alto = 0
def getAncho(self):
return self.ancho
def getAlto(self):
return self.alto

def setAncho(self, val):


self.ancho = val
def setAlto(self, val):
self.alto= val
def getArea(self):
return self.alto * self.ancho

rectangulo = Rectangulo() print "\nrectangulo inicial" print "Alto: ", rectangulo.getAlto() print "Ancho: ", rectangulo.getAncho() print "Area: ",
rectangulo.getArea()
rectangulo.setAncho(10) rectangulo.setAlto(20)
print "\nrectangulo despues de modificar" print "Alto: ", rectangulo.getAlto() print "Ancho: ", rectangulo.getAncho() print "Area: ",
rectangulo.getArea()
otrorectangulo = Rectangulo() otrorectangulo.setAncho(100) otrorectangulo.setAlto(20) print "\nOtro rectangulo" print "Alto: ",
otrorectangulo.getAlto() print "Ancho: ", otrorectangulo.getAncho() print "Area: ", otrorectangulo.getArea()
rectangulo.setAncho(10) rectangulo.setAlto(20) def AreaDeRectangulo(x, y): #Devuelve el area de un rectangulo rectangulo = Rectangulo()
rectangulo.setAlto(x) rectangulo.setAncho(y) return rectangulo.getArea()
print "\nResultado de una funcion" print "Area: ", AreaDeRectangulo(20,20)
def crearCuadrado(lado): cuadrado = Rectangulo() cuadrado.setAlto(lado) cuadrado.setAncho(lado) return cuadrado
print "\nResultado del cuadrado" cuadrado = crearCuadrado(5) print "Alto: ", cuadrado.getAlto() print "Ancho: ", cuadrado.getAncho() print "Area:
", cuadrado.getArea() ```
Vamos a intentar hacer una pequea explicacin de los conceptos bsicos de la programacin orientada a objetos basndonos en un ejemplo
realizado sobre Python:
En este ejemplos vamos a explicar cmo creamos un objeto nuevo de la clase Rectangulo. Para empezar tenemos que crear una clase llamada
Rectangulo. Una clase es una plantilla que define un tipo de objeto y las operaciones que tendr disponibles, pero no existe realmente en
memoria hasta que no la usemos como base para crear un objecto.
Para crear un objeto de este tipo, invocamos la clase Rectangulo(). En este ejemplo almacenamos el objeto en la variable rectangulo, de
esta forma estamos creando un objeto nuevo basado en esta clase. Podemos tener varios objetos creados, estos objetos son instancias
de la misma clase. Vemos que tenemos dos objetos rectangulo y otrorectangulo, los cuales son diferentes pero comparten las mismas
caractersticas al ser de la clase Rectangulo.
Al crearse, esta clase inicia dos atributos que aparecen definidos en el init y hacen referencia al ancho y alto del rectangulo. Los atributos del
objeto existen solo dentro de este objeto. El mtodo init solo se utiliza cuando creamos un objeto basado en esa clase, y sirve para
inicializar todo lo necesario para la creacin de ese objeto, en este caso, dar valores de 0 al ancho y alto.
Para acceder a estos atributos dentro del objeto usaremos self.ancho y self.alto. Para acceder a ellos estando fuera del objeto, deberamos de
hacerlo escribiendo primero el nombre del objeto, y luego el nombre de la variable. Por ejemplo: rectangulo.ancho, rectangulo.alto.
Por ser un objeto de esta clase, tienen unas operaciones disponibles especficas del objeto llamadas mtodos, como pueden ser la de
establecer el ancho y el alto utilizando setAlto y setAncho, preguntar que ancho y alto tienen, o calcular su rea.
Vemos en este caso, que los mtodos set estn destinados a modificar los atributos del objeto. Los mtodos get estn destinados a devolver
informacin cuando son llamados usando el comando return, por ejemplo al preguntar por su alto y mostrarlo por consola: print "Alto:",
rectangulo.getAlto(). Adems tenemos el mtodo area, que es usado para realizar un clculo con atributos del objeto y devolver su resultado, en
este caso realizar una multiplicacin del ancho por el alto.
Tambin hemos definido una funcin que se ayuda de la clase Rectangulo para calcular el rea de las medidas que queremos. Estas medidas
que le pasamos sern los parmetros de la funcin. Los parmetros de una funcin son las variables que le pasamos a esa funcin para realizar
los clculos correspondientes. Por ejemplo: a la funcin AreaDeRectangulo le pasamos dos parmetros 20, 20 que corresponden a las variables
(x, y) que se encuentran dentro de la funcin.

De la misma forma, hemos creado una funcin que nos ayude a crear un caso especial de un rectngulo, que sera cuando es un
cuadrado donde el ancho y el alto son iguales. Vemos como la funcin coge solo un parametro que utiliza varias veces dentro de la funcin, y la
funcin nos devuelve el objeto nuevo creado, que capturamos en una variable cuadrado, y que utilizamos de la misma forma que los objetos
creados anteriormente.
Otro ejemplo algo ms elaborado: ```python class Coche: def init(self, name): self.name = name self.velocidad = 0
def acelerar(self, incremento):
self.velocidad += incremento
self.getVelocidad()
def frenar(self, decremento):
self.velocidad -= decremento
if self.velocidad < 0:
self.velocidad = 0
self.getVelocidad()
def getVelocidad(self):
vel = self.velocidad
n = self.name
print "Velocidad de", n, ": ", vel
def getStatus(self):
if self.velocidad > 0:
return "En marcha"
else:
return "Parado"

ford = Coche("Ford") seat = Coche("Seat") ford.getVelocidad() ford.acelerar(30) ford.acelerar(10) print ford.getStatus() ford.frenar(50) print
ford.getStatus() ```
El resultado de la ejecucin del cdigo anterior es el siguiente:
Velocidad de Ford : 0 Velocidad de Ford : 30 Velocidad de Ford : 40 En marcha Velocidad de Ford : 0 Parado

Ms informacin sobre uso de clases en: https://docs.python.org/2/tutorial/classes.html https://www.jeffknupp.com/blog/2014/06/18/improve-yourpython-python-classes-and-object-oriented-programming/

Das könnte Ihnen auch gefallen