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 [02/09/2021 07:17] – [funciones] 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 236: | Línia 237: | ||
* '' | * '' | ||
* '' | * '' | ||
+ | * <code python> | ||
+ | #encoding: utf-8 | ||
+ | s = "Hola Mundo" | ||
+ | |||
+ | print len(s) | ||
+ | |||
+ | print s.count(' | ||
+ | print s.count(' | ||
+ | print s.count(' | ||
+ | |||
+ | print s.upper() | ||
+ | print s.lower() | ||
+ | |||
+ | print s.replace(' | ||
+ | print s.replace(' | ||
+ | |||
+ | print s.split(' | ||
+ | print s.split() | ||
+ | print s.split(' | ||
+ | print s.split(' | ||
+ | |||
+ | print s.find(' | ||
+ | print s.rfind(' | ||
+ | |||
+ | t = (" | ||
+ | t2 = ";" | ||
+ | t3 = "" | ||
+ | print t2.join(t) | ||
+ | print t3.join(t) | ||
+ | </ | ||
+ | |||
+ | == listas y métodos | ||
+ | * ''< | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * <code python> | ||
+ | lista = [1," | ||
+ | |||
+ | buscar = 1 | ||
+ | print buscar in lista # True | ||
+ | |||
+ | print lista.index(buscar) # 0 | ||
+ | if buscar in lista: | ||
+ | print lista.index(buscar) | ||
+ | else: | ||
+ | print "No existe el elemento" | ||
+ | |||
+ | lista.append(' | ||
+ | |||
+ | print lista.count(" | ||
+ | |||
+ | lista.insert(3," | ||
+ | print lista | ||
+ | print lista.count(" | ||
+ | |||
+ | tupla = (1,2,3,4) | ||
+ | lista.extend(tupla) | ||
+ | print lista | ||
+ | |||
+ | lista.pop(1) | ||
+ | print lista | ||
+ | |||
+ | lista.remove(" | ||
+ | print lista | ||
+ | |||
+ | lista.reverse() | ||
+ | print lista | ||
+ | </ | ||
+ | == diccionarios y métodos | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | |||
+ | == funciones de orden superior | ||
+ | * enviar funciones como variables y ejecutarla al usar **()** | ||
+ | * <code python> | ||
+ | def prueba(f): | ||
+ | return f() | ||
+ | |||
+ | def porEnviar(): | ||
+ | return (2+2) | ||
+ | |||
+ | print prueba(porEnviar) # sin parentesis en porEnviar | ||
+ | |||
+ | |||
+ | def seleccion(operacion): | ||
+ | def suma(n,m): | ||
+ | return n+m | ||
+ | def multi(n,m): | ||
+ | return n*m | ||
+ | |||
+ | if operacion == " | ||
+ | return suma | ||
+ | elif operacion == " | ||
+ | return multi | ||
+ | |||
+ | fGuardada = seleccion(" | ||
+ | print fGuardada(3, | ||
+ | fGuardada = seleccion(" | ||
+ | print fGuardada(3, | ||
+ | </ | ||
+ | |||
+ | == función MAP | ||
+ | * iteraciones de orden superior | ||
+ | * <code python> | ||
+ | def operador(n, | ||
+ | if n==None or m==None: | ||
+ | return None | ||
+ | |||
+ | return n+m | ||
+ | |||
+ | l1 = [1,2,3,4] | ||
+ | t1 = (9,8,7,6) | ||
+ | t2 = (5,4,3) | ||
+ | s1 = " | ||
+ | s2 = " | ||
+ | |||
+ | lr = map(operador, | ||
+ | |||
+ | print lr | ||
+ | |||
+ | print map(operador, | ||
+ | |||
+ | print map(operador, | ||
+ | </ | ||
+ | |||
+ | == función FILTER | ||
+ | * evalua a través de una función todos los elementos de una lista y retorna aquellos que son True | ||
+ | * <code python> | ||
+ | def filtro(elem): | ||
+ | return (elem > 0) | ||
+ | |||
+ | l = [1, | ||
+ | |||
+ | print filter(filtro, | ||
+ | </ | ||
+ | |||
+ | == función REDUCE | ||
+ | * reducir una secuencia a un elemento | ||
+ | * coge pares de elementos, el resultado de la anterior iteracción y el siguiente elemento. | ||
+ | * Para **(' | ||
+ | * <code python> | ||
+ | s = (' | ||
+ | |||
+ | def concatenar(a, | ||
+ | return a+b | ||
+ | |||
+ | print reduce(concatenar, | ||
+ | </ | ||
+ | |||
+ | == funciones Lambda | ||
+ | * función anónima | ||
+ | * siempre retorna algo | ||
+ | * sólo 1 línea | ||
+ | * uso en map, filter, reduce | ||
+ | * reduce el número de ciclos de computación usados. | ||
+ | * <code python> | ||
+ | li = [1,-2,1,-4] | ||
+ | lo = [5,3,6,7] | ||
+ | s = "Hola Mundo" | ||
+ | lf = lambda n,m: n+m | ||
+ | |||
+ | print map(lambda n,m: n+m, li,lo) | ||
+ | print filter(lambda n: n==' | ||
+ | print reduce (lambda n,m: n+m, lo) | ||
+ | |||
+ | print reduce (lf,lo) | ||
+ | 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 | ||
+ | </ |