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 | ||
development:python:thinkpython [20/05/2019 05:20] – [diccionarios] mate | development:python:thinkpython [10/06/2022 02:27] (actual) – [think python] mate | ||
---|---|---|---|
Línia 1: | Línia 1: | ||
= think python | = think python | ||
+ | {{tag> | ||
== cadenas | == cadenas | ||
+ | * inmutables | ||
+ | * ''< | ||
+ | * -1 : last | ||
+ | * -2 : pre-last | ||
+ | * ''< | ||
+ | * ''< | ||
* ''< | * ''< | ||
* ''< | * ''< | ||
Línia 8: | Línia 14: | ||
* se puede pasar por parámetro el delimitador | * se puede pasar por parámetro el delimitador | ||
* ''< | * ''< | ||
+ | * '' | ||
== list | == list | ||
Línia 18: | Línia 25: | ||
* '' | * '' | ||
* '' | * '' | ||
+ | * '' | ||
+ | * '' | ||
* concatenación: | * concatenación: | ||
* multiplicativo: | * multiplicativo: | ||
Línia 54: | Línia 63: | ||
== Tuplas | == Tuplas | ||
+ | * secuencia de valores, separados por coma, inmutables | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * acceso a elementos: | ||
+ | * '' | ||
+ | * '' | ||
+ | * no se puede reasignar un valor a través del índice, por su caracter inmutable, pero si: | ||
+ | * '' | ||
+ | * usando tuplas: | ||
+ | * para intercambiar valores: '' | ||
+ | * separar una cadena: '' | ||
+ | * en funciones: | ||
+ | * parámetros variables a una función (gathers): '' | ||
+ | * pasar parámtros a través de tuplas, cuando la función espera los valores por separado: '' | ||
+ | * zip: combina dos tuplas, generando una lista de tuplas con un elemento de cada (hasta la más corta) | ||
+ | * '' | ||
+ | * '' | ||
+ | * enumerate: '' | ||
+ | * diccionarios: | ||
+ | * uso de '' | ||
+ | * uso de '' | ||
+ | * en combinación: | ||
+ | * es de uso común usar tuplas como índices de diccionarios | ||
+ | * se pueden usar operadores lógicos de comparación con tuplas, se van comparando elemento a elemento hasta que satisface la operación | ||
+ | * '' | ||
+ | |||
+ | == 13 | ||
+ | |||
+ | == ficheros | ||
+ | === escritura fichero | ||
+ | * escritura: '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * format operator **%** -> '' | ||
+ | * si hay más de 1 variables, ha de ser una tupla:' | ||
+ | * más info: [[https:// | ||
+ | |||
+ | === nombres fichero y paths | ||
+ | * módulo **os** -> '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | |||
+ | === catch exceptions | ||
+ | <code python> | ||
+ | try: | ||
+ | fin = open(' | ||
+ | for line in fin: | ||
+ | print line | ||
+ | fin.close() | ||
+ | except: | ||
+ | print " | ||
+ | </ | ||
+ | |||
+ | === databases | ||
+ | * '' | ||
+ | * solo soporta strings -> uso de pickling | ||
+ | * '' | ||
+ | * ' | ||
+ | * uso como diccionario | ||
+ | * asignación | ||
+ | * recorridos: key,items | ||
+ | * '' | ||
+ | |||
+ | === pickling | ||
+ | * para superar la limtación de **anydbm** de trabajar solo con strings, usamos el módulo **pickle** | ||
+ | * convierte casi cualquier cosa a una representación en string y viceversa | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * módulo shelve ?? | ||
+ | |||
+ | === Pipes | ||
+ | * cualquier comando que se pueda lanzar desde la shell se puede lanzar como un **pipe** en python | ||
+ | * '' | ||
+ | * <code python> | ||
+ | filename = ' | ||
+ | cmd = ' | ||
+ | fp = os.popen(cmd) | ||
+ | res = fp.read() | ||
+ | stat = fp.close() // devuelve None si todo correcto | ||
+ | // res contiene el resultado del comando | ||
+ | </ | ||
+ | |||
+ | === Modulos | ||
+ | * cualquier fichero que contenga código python puede ser importado como un módulo | ||
+ | * normalmente solo se definen funciones, otro código sería ejecutado | ||
+ | * para evitar la ejecución de ese código cuando el programa se usa como módulo, se añade: <code python> | ||
+ | codigo</ | ||
+ | * '' | ||
+ | * un módulo que se importa una vez no puede ser reimportado, | ||
+ | * para eso, usar '' | ||
+ | |||
+ | == Clases y objetos | ||
+ | <code python> | ||
+ | class Point(object): | ||
+ | attributes: x,y | ||
+ | | ||
+ | class Rectangle(object): | ||
+ | attributes: width, | ||
+ | | ||
+ | box = Rectangle() | ||
+ | box.width = 100.0 | ||
+ | box.height = 200.0 | ||
+ | box.corner = Point() | ||
+ | box.corner.x = 0.0 | ||
+ | box.corner.y = 0.0 | ||
+ | </ | ||
+ | |||
+ | * '' | ||
+ | |||
+ | == Clases y funciones | ||
+ | * funciones puras: no modifican los objetos | ||
+ | * funciones modificadoras : lo contrario | ||
+ | |||
+ | == Clases y métodos (17) | ||
== otros | == otros |