Gracias al blog de Anderson Medeiros encuentro un interesante tutorial de python escrito en Portugués pero muy facilito de seguir.
Es un tutorial de introducción, rápido de leer y que me ha ayudado a recordar algunos de esos conceptos que por estar más habituado a otros lenguajes tipo Java no empleas a menudo.
Algunas cosillas que he recordado, aprendido o me han gustado.
Listas, tupas y strings
Explica bien que son listas, tuplas, diccionarios y strings. A listas y tuplas se las llama en ocasiones secuencias puesto que sus propiedades son muy parecidas. Una tupla es en realidad una lista inmutable.
Conviene tener en la cabeza lo fácil que es hacer slices (subconjuntos de secuencias) y substrings en python, incluso empleando índices negativos para empezar a contar por el final. LLega con escribir:
>>> lista = ['a', 'b', 'c', 'd', 'e', 'f', 'g']
>>> lista[2:5]
['c', 'd', 'e']
>>> lista[2:]
['c', 'd', 'e', 'f', 'g']
>>> lista[:5]
['a', 'b', 'c', 'd', 'e']
>>> lista[:-2]
['a', 'b', 'c', 'd', 'e']
>>> lista[-2:]
['f', 'g']
Los operadores * y + se pueden usar sobre listas, tuplas y strings. * replica n veces el elemento y + concatena.
Ejemplo para strings:
>>> a = "exato"
>>> print a * 2
exatoexato
>>> print "quase " + a
quase exato
Ejemplo para listas:
>>> a = [-1, 0]
>>> b = [1, 2, 3]
>>> print b * 3
[1, 2, 3, 1, 2, 3, 1, 2, 3]
>>> print a + b
[-1, 0, 1, 2, 3]
Para chequear si un elemento está contenido en una secuencia o diccionario se usa el operador in
>>> "x" in "cha"
False
>>> 1 in [1,2,3]
True
Combinar de forma implícita operaciones lógicas
Además de los operadores lógicos not, or, and python permite combinar ciertas operaciones lógicas de forma implícita:
Por ejemplo podemos comprobar un número está en un determinado rango de esta forma:
a = 5
if 3 < a < 9:
print "Entre 3 y 9"
a = 3; b = 3; c = 2;
if a == b <= c:
print "a igual a b y b menor o igual que c"
Clausula else en bloques for y while
En los for y los while se puede emplear una claúsula else que se ejecutará cuando se salga del bloque de iteración por haber acabado la secuencia (en lugar de salir por un break)
valores = [2, 4, 5, 2, -1]
for i in valores:
if i < 0:
print "Negativo encontrado: %d" %i
break
else:
print "Nenhum negativo encontrado"
Valores booleanos
No está de más recordar que en python se considera falso a:
- el booleano False
- el valor 0 (zero)
- una lista, diccionario, tupla o string vacios (de tamaño cero)
- el valor especial None
Así por ejemplo para comprobar si una lista no está vacía mejor que emplear
lista = ['a']
if (len(lista)) != 0:
print "forma poco apropiada de comprobar si una lista no está vacia"
usaremos directamente
if lista:
print "Lista no vacia"
Argumentos de funciones
Existen dos formas de pasar un número variable de argumentos a una función:
def desculpa(alvo, *motivos):
d = "Desculpas %s, mas estou doente" % alvo
for motivo in motivos:
d = d + " e %s" % motivo
return d + "."
>>> desculpa("senhor", "meu gato fugiu",
... "minha tia veio visitar")
o bien
def equipe(diretor, produtor, **atores):
for personagem in atores.keys():
print "%s: %s" % (personagem, atores[personagem])
print "-" * 20
print "Diretor: %s" % diretor
print "Produtor: %s" % produtor
>>> equipe(diretor="Paul Anderson",
... produtor="Paul Anderson",
... Frank="Tom Cruise", Edmund="Pat Healy",
... Linda="Julianne Moore")
Frank: Tom Cruise
Edmund: Pat Healy
Linda: Julianne Moore
--------------------
Diretor: Paul Anderson
Produtor: Paul Anderson
Si tienes algún tutoirial de python que te haya gustado o algún truquillo que quieres compartir deja un comentario.