You are on page 1of 3

Este ejemplo, como es usual, demuestra algunas caracter�sticas m�s de Python:

� La sentencia return devuelve un valor en una funci�n. return sin una expresi�n
como argumento retorna None. Si
se alcanza el final de una funci�n, tambi�n se retorna None.
� La sentencia result.append(a) llama a un m�todo del objeto lista result. Un
m�todo es una funci�n que
'pertenece' a un objeto y se nombra obj.methodname, d�nde obj es alg�n objeto
(puede ser una expresi�n), y
methodname es el nombre del m�todo que est� definido por el tipo del objeto.
Distintos tipos definen distintos
m�todos. M�todos de diferentes tipos pueden tener el mismo nombre sin causar
ambig�edad. (Es posible definir tipos
de objetos propios, y m�todos, usando clases, mir� Clases). El m�todo append()
mostrado en el ejemplo est�
definido para objetos lista; a�ade un nuevo elemento al final de la lista. En este
ejemplo es equivalente a
result = result + [a], pero m�s eficiente.

En una llamada a una funci�n, los argumentos nombrados deben seguir a los
argumentos posicionales. Cada uno de los
argumentos nombrados pasados deben coincidir con un argumento aceptado por la
funci�n (por ejemplo, actor no es un
argumento v�lido para la funci�n loro), y el orden de los mismos no es importante.
Esto tambi�n se aplica a los argumentos
obligatorios (por ejemplo, loro(tension=1000) tambi�n es v�lido). Ning�n argumento
puede recibir m�s de un valor al
mismo tiempo. Aqu� hay un ejemplo que falla debido a esta restricci�n:

Cuando un par�metro formal de la forma **nombre est� presente al final, recibe un


diccionario (ver Tipos integrados)
conteniendo todos los argumentos nombrados excepto aquellos correspondientes a un
par�metro formal. Esto puede ser
combinado con un par�metro formal de la forma *nombre (descripto en la siguiente
secci�n) que recibe una tupla
conteniendo los argumentos posicionales adem�s de la lista de par�metros formales.
(*nombre debe ocurrir antes de
**nombre). Por ejemplo, si definimos una funci�n as�:

Se debe notar que el orden en el cual los argumentos nombrados son impresos est�
garantizado para coincidir con el orden
en el cual fueron provistos en la llamada a la funci�n.
Listas de argumentos arbitrarios
Finalmente, la opci�n menos frecuentemente usada es especificar que una funci�n
puede ser llamada con un n�mero
arbitrario de argumentos. Estos argumentos ser�n organizados en una tupla (mir�
Tuplas y secuencias). Antes del n�mero
variable de argumentos, cero o m�s argumentos normales pueden estar presentes.:

Not� que al usar from package import item el �tem puede ser tanto un subm�dulo (o
subpaquete) del paquete, o alg�n
otro nombre definido en el paquete, como una funci�n, clase, o variable. La
declaraci�n import primero verifica si el �tem
est� definido en el paquete; si no, asume que es un m�dulo y trata de cargarlo. Si
no lo puede encontrar, se genera una
excepci�n ImportError.
Por otro lado, cuando se usa la sintaxis como import item.subitem.subsubitem, cada
�tem excepto el �ltimo debe ser
un paquete; el mismo puede ser un m�dulo o un paquete pero no puede ser una clase,
funci�n o variable definida en el �tem
previo.

Un programa de ordenador es una secuencia de instrucciones que el ordenador debe


seguir para realizar una tarea. Habitualmente, aunque no obligatoriamente, estas
instrucciones se aplican sobre un conjunto de datos que sirven como entrada para el
programa, y produce como resultado otra serie de datos que se derivan de los
primeros
al aplicar sobre los datos de entrada las instrucciones.
Debido a las capacidades de los actuales microprocesadores digitales,
absolutamente todos los datos se representan de forma num�rica y digital. Aunque
esto
pueda parecer inicialmente una limitaci�n es en realidad la causa de la enorme
flexibilidad y poder de las modernas computadoras.

El c�digo de un programa suele escribirse en uno o varios ficheros de texto. Este


c�digo
que es interpretable por un humano (o al menos debiera serlo) no puede ser
ejecutado
directamente por el computador.
En los lenguajes interpretados, existe un programa llamado int�rprete que lee las
l�neas de c�digo y las ejecuta inmediatamente. Muchos int�rpretes admiten dos modos
de empleo: interactivo y de script. En el primer caso, el int�rprete muestra un
s�mbolo y
se queda esperando a que el usuario introduzca las l�neas a ejecutar una a una,
ejecut�ndolas inmediatamente. En el segundo, el usuario proporciona uno o m�s
ficheros al int�rprete que ejecutar� todas las l�neas una tras otra. Matlab es un
lenguaje
interpretado que admite estas dos formas de ejecuci�n, la primera se realiza
escribiendo
el c�digo a ejecutar en la ventana de comandos, mientras que la segunda forma es la
que
se lleva a cabo al emplear ficheros .m. En cambio Visual Basic, que tambi�n es un
lenguaje interpretado, s�lo admite la segunda forma.
Aunque los lenguajes interpretados suelen ser relativamente sencillos de emplear
y son muy flexibles, no suelen ser muy eficientes, ya que se mezcla la tarea de
interpretaci�n y proceso del c�digo con la ejecuci�n de este c�digo. Para evitar
este
problema y que los programas puedan aprovechar completamente los recursos de un
ordenador, el c�digo de un programa puede ser convertido de forma completa en
c�digo
binario que el procesador pueda ejecutar directamente. Este proceso se denomina
compilaci�n y se emplea en lenguajes que requieran un gran rendimiento como C++.
Adem�s se han desarrollado algunos lenguajes, en particular Java y C#, que en
lugar de compilar el c�digo a la forma binaria que emplea el procesador concreto de
una
determinada arquitectura, se compila en un c�digo intermedio no ejecutable
directamente. Posteriormente, este c�digo intermedio se traduce a instrucciones que
el
procesador puede ejecutar directamente antes de ser ejecutado. Este sistema permite
ejecutar programas en cualquier procesador aunque tenga distintas instrucciones1
siempre que exista el programa que sea capaz de traducir las instrucciones
intermedias.
En cualquier caso esta flexibilidad tiene un precio, ya que el rendimiento de un
programa escrito en uno de estos lenguajes siempre es menor que el de un programa
compilado. No obstante, lenguajes con la versatilidad de interpretaci�n como la que
presenta Java, resultan particularmente interesantes para aplicaciones en Internet,
donde
van a interactuar distintos procesadores a trav�s de la red.
Estos errores suelen ser los m�s complejos de localizar, ya que el entorno de
desarrollo
no suele ser capaz de detectarlos hasta que el programa est� en funcionamiento. En
este
caso el error no se produce a causa de que el programa no siga la sintaxis sino por
un
fallo en la l�gica del programa que hace que su funcionamiento no sea el que desea
el
programador. Este tipo de fallos son semejantes a la frase ?El queso come un rat�n?
aunque es sint�cticamente correcta la l�gica del sentido com�n nos dice que es
imposible.
Ning�n compilador o int�rprete es capaz de localizar los errores l�gicos. El error
l�gico se hace presente durante el tiempo de ejecuci�n del programa. Los errores en
tiempo de ejecuci�n se detectan observando el programa, ya que �ste no hace lo que
el
programador desea, y pueden dividirse en dos tipos:
Errores l�gicos con aviso: Puede suceder que el error sea tal envergadura que
haga saltar el mecanismo de protecci�n del sistema operativo (en caso de programas
compilados) o que el int�rprete (en caso de programas interpretados) nos avise del
error.
Al darse un error de este tipo en el caso de un programa compilado para trabajar
bajo Windows, puede salir un aviso diciendo: "This program has performed an illegal
operation and will be shut down" o mensajes como este:

You might also like