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 [02/06/2019 12:25] – [13] 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 55: | Línia 64: | ||
| == Tuplas | == Tuplas | ||
| * secuencia de valores, separados por coma, inmutables | * secuencia de valores, separados por coma, inmutables | ||
| - | * '' | + | * '' |
| * '' | * '' | ||
| * '' | * '' | ||
| Línia 87: | Línia 96: | ||
| == ficheros | == 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 | ||
| * '' | * '' | ||