Guia Python: funciones, estructuras y formatos (1a parte).

Publicado el 29 junio 2013 por Hugo Rep @HugoRep

Python es un lenguaje de script desarrollado por Guido van Rossum.

Podemos codificar empleando programación lineal, estructurada y orientada a objetos (tengamos en cuenta que esta última es la que se ha impuesto en la actualidad)

Se cuenta con intérpretes de Python en múltiples plataformas: Windows, Linux, Mac etc. Se pueden desarrollar aplicaciones de escritorio como aplicaciones web. Empresas como Google, Yahoo, Nasa etc. utilizan este lenguaje para sus desarrollos (actualmente el creador de Python Guido van Rossum trabaja para Google.)

Se puede ejecutar instrucciones de Python desde la línea de comando o creando archivos con extensión *.py. Cuando uno comienza a aprender este lenguaje la línea de comandos nos provee una retroalimentación del resultado en forma inmediata.

El objetivo de este tutorial es presentar en forma progresiva los conceptos fundamentales de este lenguaje y poder analizar los problemas resueltos y codificar los problemas propuestos en este mismo sitio, sin tener que instalar en un principio el Python en su equipo (o luego de instalado poder avanzar con el tutorial en cualquier máquina conectada a internet).

Funciones.

La estructura fundamental de programación de los lenguajes estructurados son las funciones. Una función es un conjunto de instrucciones que se la invoca mediante un nombre y que luego de ejecutado el algoritmo puede retornar un valor.

Un programa estructurado no es más que un conjunto de funciones que en conjunto resuelven un problema complejo.

Veamos la sintaxis en Python para definir y llamar a una función:

def presentacion():
   print 'Primer mensaje.<br>'
   print 'Segundo mensaje.<br>'

def fin():
   print 'Ultimo mensaje.'

presentacion()
fin()

Para definir una función utilizamos la palabra clave 'def' seguida por el nombre de la función, luego si no tiene parámetros como este caso debe ir paréntesis abiertos y cerrados y dos puntos. Seguidamente las instrucciones de la función se indentan a derecha.

def presentacion():
   print 'Primer mensaje.<br>'
   print 'Segundo mensaje.<br>'

Una función se ejecuta cuando se la llama por su nombre:

presentacion()

Es importante notar que primero debemos declarar la función y luego llamarla.

Una función puede tener parámetros de entrada, por ejemplo si queremos una función que reciba dos enteros y luego nos imprima el mayor, el algoritmo es el siguiente:

def imprimirmayor(valor1,valor2):
   if valor1>valor2:
   print valor1
   else:
   print valor2

imprimirmayor(4,5)
print '<br>'
x1=20
x2=30
imprimirmayor(x1,x2)

Los parámetros de la función se indican en la cabecera de la función separados por comas.
Cuando llamamos a la función estamos obligados a enviarle datos a los dos parámetros.

Podemos enviarle directamente los valores:

imprimirmayor(4,5)

O podemos enviarle variables previamente inicializadas:

x1=20
x2=30
imprimirmayor(x1,x2)

Como podemos notar con este ejemplo una función puede ser llamada más de una vez (en este caso la llamamos dos veces)

Funciones con retorno de dato.

Hay muchas situaciones donde queremos que la función luego de ejecutarse retorne un valor y se almacene en una variable desde donde la llamamos.
Por ejemplo si necesitamos una función que reciba tres enteros y nos retorne el mayor la sintaxis será la siguiente:

def retornarmayor(x1,x2,x3):
   if x1<x2 and x1<x3:
   return x1
   elif x2<x3:
   return x2
   else:
   return x3

may=retornarmayor(4,5,3)
print may

Como podemos observar la instrucción return indica el valor devuelto por la función.

El valor retornado se almacena en una variable:

may=retornarmayor(4,5,3)

Podemos inclusive mostrar directamente el valor retornado por la función:

print retornarmayor(40,5,3)

O utilizarlo en una condición:

if retornarmayor(40,5,3)<20:
   print 'El valor devuelto es mayor a 20'

Estructura de datos tipo tupla.

Hasta ahora hemos empleado variables que permiten almacenar un único valor. En Python existen varias estructuras de datos que permiten almacenar un conjunto de datos.

La primera que presentaremos es la tupla:
Una tupla es una colección de datos no necesariamente del mismo tipo que se los accede por medio de subíndices.

Definición de una tupla:

tupla1=('juan',18,1.92)

Hemos definido una tupla de tres elementos. El primer elemento es de tipo cadena de caracteres, el segundo un entero y finalmente un valor flotante.

Cada elemento de una tupla se los separa por una coma.

Para acceder a los elementos lo hacemos por medio del nombre de la tupla y un subíndice numérico:

print tupla1[0]

Los elementos de la tupla comienzan a numerarse a partir de cero y utilizamos los corchetes para hacer referencia al subíndice.

Si queremos en algún momento saber la cantidad de elementos de una tupla debemos llamar la función len:

print len(tupla1) #imprime un 3

con dicha función podemos disponer una estructura repetitiva para imprimir todas las componentes de la tupla con el siguiente algoritmo:

tupla1=('juan',18,1.92)
indice=0
while indice<len(tupla1):
   print tupla1[indice]
   indice=indice+1

Veremos en el próximo concepto que hay una estructura repetitiva que nos facilita recorrer los elementos de una tupla.

Una vez definida la tupla no se pueden modificar los valores almacenados.

La función print puede recibir como parámetro una tupla y se encarga de mostrarla en forma completa:

print tupla1

De todos modos cuando tenemos que acceder a algún elemento de la tupla debemos hacerlo mediante un subíndice entre corchetes.

La característica fundamental de una tupla es que una vez creada no podemos modificar sus elementos, ni tampoco agregar o eliminar.

Estructura repetitiva for in para recorrer una tupla.

Para recorrer una tupla es muy común utilizar la estructura repetitiva for.
Veamos con un ejemplo la sintaxis de esta estructura repetitiva:

tupla1=('juan',23,1.92)
for elemento in tupla1:
   print elemento
   print '<br>'

Como podemos ver la instrucción for requiere una variable (en este ejemplo llamada elemento), luego la palabra clave in y por último la tupla. El bloque del for se ejecuta tantas veces como elementos tenga la tupla, y en cada vuelta del for la variable elemento almacena un valor de la tupla1.

Esta estructura repetitiva se adapta mucho mejor que el while para recorrer este tipo de estructuras de datos.

Si te ha gustado el artículo inscribete al feed clicando en la imagen más abajo para tenerte siempre actualizado sobre los nuevos contenidos del blog: