Diferències
Ací es mostren les diferències entre la revisió seleccionada i la versió actual de la pàgina.
Ambdós costats versió prèvia Revisió prèvia Següent revisió | Revisió prèvia | ||
info:cursos:python:codigofacilito [07/09/2021 06:40] – [función REDUCE] mate | info:cursos:python:codigofacilito [10/06/2022 02:28] (actual) – [curso python (código facilito)] mate | ||
---|---|---|---|
Línia 1: | Línia 1: | ||
= curso python (código facilito) | = curso python (código facilito) | ||
- | [[https:// | + | {{tag> |
+ | [[https:// | ||
== que es python | == que es python | ||
* reminiscencias perl, pero más natual (pseudocódigo) | * reminiscencias perl, pero más natual (pseudocódigo) | ||
Línia 415: | Línia 416: | ||
print reduce (lf,lo) | print reduce (lf,lo) | ||
print lf(3,4) | print lf(3,4) | ||
+ | </ | ||
+ | |||
+ | == comprensión de listas | ||
+ | * reemplaza en python 3 a map, filter | ||
+ | * la operación a realizar se pone primero, las condiciones o recorridos detrás ¿?¿?¿? | ||
+ | * <code python> | ||
+ | l = [1,2,-3,4] | ||
+ | l2 = [" | ||
+ | |||
+ | print [num for num in l if num>0] | ||
+ | print [c * num for c in s | ||
+ | for num in l2] | ||
+ | print [c * num for c in s | ||
+ | for num in l2 | ||
+ | if num > 0] | ||
+ | </ | ||
+ | |||
+ | == Generadores | ||
+ | * equivalente a comprensión de listas | ||
+ | * recorre la lista, no devuelve una lista, si no los elementos | ||
+ | * <code python> | ||
+ | l = [1,2,-3,4] | ||
+ | l2 = [" | ||
+ | |||
+ | print [num for num in l if num>0] | ||
+ | print [c * num for c in s | ||
+ | for num in l2] | ||
+ | r1 = (c * num for c in s | ||
+ | for num in l2 | ||
+ | if num > 0) | ||
+ | print r1.next() | ||
+ | print r1.next() | ||
+ | |||
+ | for letra in r1: | ||
+ | print letra | ||
+ | | ||
+ | def factorial(n): | ||
+ | i = 1 | ||
+ | while n > 1: | ||
+ | i = n*i | ||
+ | yield i # ? objeto generador | ||
+ | n -= 1 | ||
+ | |||
+ | for e in factorial(5): | ||
+ | print e | ||
+ | </ | ||
+ | | ||
+ | == Decoradores | ||
+ | * función que recibe una función y devuelve una función decorada | ||
+ | * es decir, podemos añadir cosas antes (y supongo que después) de la ejecución de la función pasada por parámetro | ||
+ | * <code python> | ||
+ | def decorador(funcion): | ||
+ | def funcionDecorada(*args, | ||
+ | print " | ||
+ | funcion(*args, | ||
+ | | ||
+ | return funcionDecorada | ||
+ | |||
+ | def resta(n,m): | ||
+ | print n-m | ||
+ | | ||
+ | #decorando | ||
+ | print decorador(resta)(5, | ||
+ | decorada = decorador(resta) | ||
+ | decorada(6, | ||
+ | |||
+ | @decorador | ||
+ | def multi(n,m): | ||
+ | print n*m | ||
+ | |||
+ | multi(2,4) | ||
+ | </ | ||
+ | * se podrían anidar varios decoradores, | ||
+ | <code python> | ||
+ | loggeado = False | ||
+ | usuario = " | ||
+ | def admin(f): | ||
+ | def comprobar(*args, | ||
+ | if loggeado: | ||
+ | f(*args, | ||
+ | else: | ||
+ | print "no tiene permisos para ejecutar", | ||
+ | return comprobar | ||
+ | | ||
+ | @admin | ||
+ | def resta(n,m): | ||
+ | print n-m | ||
</ | </ |