Nov 10 2008

Python: Funciones que devuelven más de un valor {

Tag: Python

Muchas veces nos encontramos con situaciones en las que nos vendría muy bien poder devolver más de un valor en una función… generalmente podemos recurrir a arrays, colecciones, diccionarios, hastables, etc. Pero en Python podemos devolver múltiples valores en una misma función y lo mejor de todo es que esos valores de retorno pueden ser de diferente tipo.

Dejo un par de ejemplos, escribo la función y luego la ejecuto para probar.

def masUnoMasDos(x):
     return x+1, x+2
 
print ""
print "masUnoMasDos()"
 
a,b = masUnoMasDos(7)
print "x+1 = "+str(a)
print "x+2 = "+str(b)
 
print "---------"
 
def rojo():
     return 255, 0, 0
 
print ""
print "rojo()"
 
print rojo()
 
print "---------"
 
def rojoHexa():
     return "ff", "00", "00"
 
print ""
print "rojoHexa()"
 
print rojoHexa()

Obtendremos la siguiente salida:

masUnoMasDos()
x+1 = 8
x+2 = 9
---------

rojo()
(255, 0, 0)
---------

rojoHexa()
('ff', '00', '00')

Para probar este código rápidamente, en caso de no tener Python instalado pueden utilizar http://codepad.org que es una excelente herramienta online, la misma permite compilar y ejecutar código en varios lenguajes, incluyendo: C/C++, D, Haskel, PHP, Pearl, Python y Ruby, entre otros.

}


Ago 09 2008

Método de ordenación de la burbuja (bubble sort) en Python {

Tag: Algoritmos, Python

El método de la burbuja o método de intercambio directo es el algoritmo de ordenación más simple. El mismo compara los elementos a ordenar de a pares, cada uno con su siguiente y si están en el orden equivocado los intercambia y el proceso debe realizarse varias veces hasta que la lista esté totalmente ordenada, pero al ser un algoritmo tan simple, a pesar de ser efectivo, el mismo no es muy eficiente, su orden es n2

Por ejemplo en la lista [3,1,2,0] se harán los siguientes movimientos: (en negrita los elementos comparados)

# de comparación Estado inicial Estado final
1 3,1,2,0 1,3,2,0
2 1,3,2,0 1,2,3,0
3 1,2,3,0 1,2,0,3
4 1,2,0,3 1,2,0,3
5 1,2,0,3 1,0,2,3
6 1,0,2,3 1,0,2,3
7 1,0,2,3 0,1,2,3

Ahora vamos a ver la función en Python para implementar el método de la burbuja:

def ordenar(items):
    i = 0 # Inicializar las variables
    j = 0
    for i in range(len(items)): # recorrer toda la lista
        for j in range(len(items) -1): # recorrer toda la lista haciendo las comparaciones
            if items[j] > items[j+1]: # comparar
                aux = items[j]
                items[j] = items[j+1]
                items[j+1] = aux

}


Página 1 de 11