domingo, 23 de septiembre de 2012

Tutorial de Introduccion a Python



300px-Python_logo.svg.png

Python es un lenguaje de programación de alto nivel cuya filosofía hace hincapié en una sintaxis muy limpia y que favorezca un código legible.

Se trata de un lenguaje de programación multiparadigma ya que soporta orientación a objetos, programación imperativa y, en menor medida, programación funcional. Es un lenguaje interpretado, usa tipado dinámico, es fuertemente tipado y multiplataforma.

Bueno Empecemos, y lo vamos a hacer de la forma tipica, enseñando el primer programa en Python :)

El clasico Hola Mundo ;)

Abran algun editor de texto y copien el siguiente codigo:

#!/usr/bin/python
print “Hola Mundo”
raw_input()

La primer linea es utilizada en UNIX, y sirve para especificarle al sistema operativo cual va a ser el interprete, especificado despues de #!.
La segunda linea lo que hace es imprimir lo que esta entre comillas en pantalla.
Y la seguira mostrando hasta que se presione una tecla, Debido a raw_input(), que espera una tecla por teclado.

Guardamos con extension .py.
Abrimos una terminal y ponemos: python Nombre_Programa.py

Y nos saldra algo asi:

35QQk.png

Invocando al interprete de Python

Para descargar e instalar puedes ingresar a http://www.python.org/download/

Si trabajamos con una maquina con alguna distribucion de Linux, abrimos una termina e ingresamos el comando:

Python

Luego de unos segundo nos va a aparecer un mensaje de bienvenida reportando su numero de version y una nota de copyright. Seguido del prompt primario (>>>), que nos indica que el interprete esta esperando codigo del usuario.

psWHD.png

Para salir podemos escribir exit() o apretar Control + D.

Modo Interactivo

Existen dos formas de ejecutar código Python. Podemos escribir líneas de código en el intérprete y obtener una respuesta del intérprete para cada línea (sesión interactiva) o bien podemos escribir el código de un programa en un archivo de texto y ejecutarlo.

Codificacion del codigo fuente

Es posible utilizar una codificacion distinta a ASCII en el codigo fuente de Pyrhon, la mejor forma de hacerlo es poner un comentario especial enseguida despues de la linea con #! para definir la codificacion:

# -*- coding: enconding -*-

Con esa declaracion, todos los caracteres en el archivo serasn traducidos utilizando la codificacion encoding.

Comentarios

Los comentarios comienzan con el caracter numeral, #, y se extiende hasta el final fisico de la linea.
Ejemplos:

# Comentario numero uno
SPAM = 1                        # Comentario numero dos
                     # Comentario numero tres

Algunas notas finales

La agrupacion de instrucciones se hace por sangria en vez de llaves de apretura y cierre.

#! /usr/bin/env python
# -*- coding: utf-8 -*-

n = int(raw_input("¿Valor tope da serie? "))
print " Serie de Fibonacci "

a, b = 0, 1

while b <= n:
    print b
    a, b = b, a + b

Aqui tenemos un simple programa en donde se implementa la Serie de Fibonacci, donde podemos ver la agrupacion por sangria.

No es necesario declarar variables ni argumentos.

Variables

Como ya dijimos en la segunda parte, las variables no son necesario que se declaren pero lo que si hay que hacer es asignarle un valor inicial, sino dara error.

Para asignarle un valor se utiliza el signo =
La operacion se puede hacer individualmente, hacerla en conjunto a un mismo valor o hacer varias asignaciones al mismo tiempo pero a diferentes valores.
Veamos unos ejemplos:

#Asignacion individual de un numero
i = 10

#Asignacion individual de una cadena de caracteres
nombre = "Expermicid"

#Asignacion conjunta a un mismo valor
a = b = c = 200

#Asignacion conjunta a diferentes valores
x, z = 25, 30

Existe varios tipos de variables, entre ellas estan:

  • Numeros
  • Cadenas de Caracteres
  • Booleanos
  • Listas

Para averiguar el tipo de una variable se puede usar el comando:

type(nombre_variable)

Ahora vamos a ver cada tipo por separado.

[+] Variable numerica

Las variables numericas soportan Enteros, Reales y Complejos.
Los Enteros son aquellos numeros que no poseen decimales. En Python se pueden representar mediante el tipo Int y mediante el tipo Long. La unica diferencia es que uno de ellos (Long) puede almacenar numeros mas grande.

#Asignacion de un tipo 'Int'
Entero = 20

#Asignacion de un tipo 'Long'
Entero = 53L

Como veran para asignar un tipo Long, hay que agregarle una L al final del numero. Veamoslo en una imagen:

aqXOS.jpg

Tambien es posible representar los valores en Octal, poniendole un cero adelante.

#Asignacion de un numero en Octal
o = 040

... y en Hexa de la siguiente forma:

#Asignacion de un numero en Hexadecimal
h = 0x10

Los numeros Reales son los que tienen decimales. En Python se representan mediante el tipo Float
La forma de hacerlo es la siguiente:

#Asignaciones de numeros de tipo Float

a = 0.24

b = 75.58

Tambien es posible utilizar notacion cientifica, añadiendole una e (de exponencial) mas un numero correspondiente al exponente.

#Asignacion de numeros con notacion cientifica

a = 2e10

b = 3e-2

Y por ultimo, los numeros Complejos son aquellos que poseen una parte real y otra imaginaria.

En Python se representa asi:

#Asignacion de un numero complejo
c = 2 + 3j

Operaciones aritmeticas entre las variables numericas

Veamos ejemplos de las operaciones aritmeticas:

#Suma
a = 5 + 20

#Resta
b = 30 - 10

#Multiplicacion
c = 20 * 2

#Division
d = 9 / 3

#Division Entera
de = 8 // 3

#Exponente
e = 2 ** 2

#Modulo
m = 7 % 2

Notar que esas operaciones se pueden realizar entre todos los tipos antes mencionados.
Y tambien se pueden hacer operaciones entre varables mismas.

6zaBh.png

[+] Cadenas de Caracteres

Las cadenas de caracteres pueden estar encerradas entre comiilas dobles (") o comillas simples (').

#Asignacion de cadenas

a = "Primera"

b = 'Segunda'

Una cadena puede estar precedida por una por una u o por una r, que significan, respectivamente, que se trata de una cadena en codificacion Unicode o una cadena cruda.

unicode = u”äóè”
raw = r”\n”

Dentro de las Comillas pueden existir caracteres epeciales:

\n = Salto de linea
\t = tabulador
\\ = \
\" = "
\' = '

O podemos utilizar 3 comillas (simples o dobles) y podemos escribir el texto en varias lineas, respetandose los saltos de linea y demas.

reJ64.png

Algunas operaciones entre cadenas

#Concatenacion
a = "Primera"
b = "Segunda"
concat = a + b    #nos devolvera la concatenacion de a y b

#Contencion
a = "Palabra"
b = "ala"
contencion = b in a  #nos devolvera un valor booleano

#Longitud
a = "cantidad"
log = len(a)   #nos devolvera un valor numerico = a la longitud de a

#Repeticion de una cadena
a = "Hola"
b = a * 3    #nos devolvera la cadena a repetida 3 veces

#Subcadenas
a = "Cadena Grande"
b = a [1:3]    #nos devolvera subcadena en este caso ad

[+] Variable booleanas

Como todos sabran los booleanos son los valores True y False.

Y sus operadores mas usuales son:

and = conjuncion
or = disjuncion
not = negacion

[+] Listas

Las listas son listas donde se pueden almacenar valores de cualquier tipo. Se accede a un elemento de ella de la misma forma que en las cadenas.

lista[inicio : fin]

lista[posicion]

Una forma sencilla de constriur una lista de numeros es con range.

Que funciona de la siguiente forma:

a = range(1,10)    # a se formaria con la lista [1, 2, 3, 4, 5, 6, 7, 8, 9]

Control de Flujo

Sentencias condicionales

[+] If

La forma mas simple de un condicional es la sentencia if.

Veamos un ejemplo:

#Sintaxis de la sentencia IF
Numero = 10

if Numero > 0 :
      print "El numero es positivo"

if Numero < 0 :
      print "El numero es negativo"

Bueno, use dos if por separado.
La sintaxis de muy simple.

Se pone la palabra If, seguido de la condicion a evaluar y por ultimo dos puntos (:).
Y a partir de esa linea usando sangria van las lineas que se tienen que ejecutar si la condicion es valida.

Nunca se olviden de la sangria. Sino Python interpretara otra cosa.

[+] If ... Else

Esta opcion se usa para sintetizar un poco casos como el ejemplo anterior.
Que si se cumple la condicion hace algo y si no se cumple hace otra cosa.
Y traduciriamos esos dos if con uno solo, veamoslo:

#Sintaxis de la sentencia IF ... ELSE
Numero = 10

if Numero > 0 :
      print "El numero es positivo"
else :
      print "El numero es negativo"

[+] If ... elif ... elif ... else

Bien esta es otra variante.

#Sintaxis de la sentencia IF ... ELIF ... ELIF ... ELSE
Numero = 10

if Numero > 0 :
      print "El numero es positivo"
elif Numero < 0:
      print "El numero es negativo"
else :
      print "El numero es 0"

En este caso primero se evalua la condicion del if, si es cierta se ejecuta su codigo y sale; si no se cumpla se evalua la condicion del elif siguiente, y nuevamente si es cierto se ejecuta su codigo y sale; y si no sigue con lo siguientes elif. Cuando se hayan evaluado todos los elif y ninguno haya sido cierto se evalua la condicion del else.

[+] A if C else B

Esta es otra variante, y lo que hace es evaluar C, si se cumple devuelve A, en caso contrario devuelve B

# Sintaxis de la sentencia A if C else B
var = “par” if (num % 2 == 0) else “impar”

Bucles

Mientras que los condicionales nos permiten ejecutar distintos fragmentos de código dependiendo de ciertas condiciones, los bucles nos permiten ejecutar un mismo fragmento de código un cierto número de veces, mientras se cumpla una determinada condición.

[+] While

La sentencia While ejecuta su codigo mientras se cumpla la condicion.

#Sintaxis sentencia While
Cont = 0
while Cont < 10 :
        Print "Cont es igual a " + str(Cont)
        Cont = Cont + 1

Veamos el resultado de este ultimo en la consola:

yJ9kS.png

Como se ve en la imagen el ciclo se siguio ejecutando hasta que la variable Cont supero el numero 9, es decir cuando llego a 10 la condicion ya no fue cierto y por ende no se ejecuto mas.

[+] For ... In

En Python for se utiliza como una forma genérica de iterar sobre una secuencia.

Un ejemplo basico seria:

#Sintaxis sentencia for ... in
valores = ["uno", "dos", "tres", "cuatro", "cinco"]
for elemento in valores :
        print elemento

bqNJY.png

Como se aprecia en la imagen veran que la varible elemento fue 'iterando' sobre los valores de la lista valores y ejecuta el codigo correspondiente.

Funciones

Definicion:

Quote:

Una función es un fragmento de código con un nombre asociado que realiza una serie de tareas y devuelve un valor. A los fragmentos de código que tienen un nombre asociado y no devuelven valores se les suele llamar procedimientos. En Python no existen los procedimientos, ya que cuando el programador no especifica un valor de retorno la función devuelve el valor None (nada)

Dos ventajas de la utilizacion de funciones son:

1- Ayudan a programar y depurar el programa dividiendolo en partes.
2- Permite la reutilizacion de codigo.

Declaracion:

En python las funcion se declaran de la siguiente forma:

def NombreFuncion(param1, param2, ...., paramN)
        #Codigo a ejecutar

Es decir, se utiliza la palabra reservada def, seguido del nombre de la funcion y la lista de los parametros entre parentesis separados por comas.
Las sentencias que forman el cuerpo de la funcion empiezan en la linea siguiente, y deben estar con sangria.

La primer sentencia del cuerpo de la funcion puede ser opcionalmente na cadena de texto literal; esta es la cadena de texto de documentacion de la funcion, o docstring.

Veamos un simple ejemplo:

XcNMj.png

En la imagen podemos apreciar la definicion de una funcion que genera una lista con la lista de Fibonacci hasta un cierto valor pasado como parametro.
Las funciones para devolver el resultado se utiliza la palabra reservada return, seguido de el valor o la variable que contiene el valor a devolver.

El numero de valores que se pasan como parametros al llamar a la funcion tiene que coincidir con el numero de parametros que la funcion acepta segun la declaracion de la funcion. En caso contrario python dara error.

Y esto es todo.

Saludos

No hay comentarios:

Publicar un comentario