Programació

La guia definitiva per a principiants de Python

30 d'octubre de 2021

Taula de continguts

  • Configuració de l'entorn
    • Configuració de l'entorn local
    • Com obtenir Python
    • Com instal·lar Python
    • Instal·lació de Windows
    • Instal·lació Unix/Linux
    • Instal·lació MAC
    • Configuració de Path per a Python
    • Configuració del camí per a Unix/Linux
    • Configuració del camí per a Windows
  • Variables d'entorn de Python
    • Córrer Python
  • Sintaxi bàsica
    • Identificadors Python
    • Declaració de Python
    • Sagnies en Python
    • Comentaris en Python
    • Obtenció d'entrada
    • Mostra la sortida
  • Tipus de variables
    • Assignació de valors a les variables
    • Tipus de dades de Python
    • Cordes
    • Tuples
    • Llistes
    • Nombres
  • Operadors bàsics
    • Operador d'assignació
    • Operador bit a bit
    • Operador lògic
    • Operador aritmètic
    • Operador de comparació
    • Operador d'identitat
    • Operador de membres
  • Presa de decisions
    • Si declaració
    • si una altra cosa
    • Niu si
    • Si-elif-una altra escala
    • Declaració taquigràfica si
    • Declaració taquigràfica if-else
  • Bucles
    • Bucle While
    • For Loop
    • Bucles imbricats
    • Declaracions de control de bucle
    • Continuar declaració
    • Declaració de trencament
    • Passa la declaració
  • Nombres
    • Conversió de tipus de nombre
    • Funcions de nombre aleatori
    • Funcions trigonomètriques
    • Funcions matemàtiques
  • Cordes
    • Creació d'una cadena
    • Operadors especials de cadena
    • Operadors de format de cadena
    • Personatges d'escapament
    • Mètodes de cordes integrats
  • Tuples
    • Accés als valors en tuples
    • Actualització de tuples
    • Operadors bàsics de tuple
    • Funcions de tupla integrades
    • Indexació i tall
    • Esborrant una tupla
  • Llistes
    • Accés als valors de les llistes
    • Actualització de les llistes
    • Operadors de llista bàsics
    • Funcions i mètodes de llista integrats
    • Indexació i tall
    • Suprimeix l'element Llistes
  • Diccionari
    • Creació d'un diccionari
    • Afegir elements en un diccionari
    • Eliminació d'elements del diccionari
    • Mètodes de diccionari Python
  • Data i hora
    • Temps Tuple
    • Mòdul de temps
    • Mòdul Calendari
  • Funcions
    • Com definir una funció
    • Crida a una funció
    • Passar per referència
    • Passar per valor
    • Arguments de funció
    • Arguments de longitud variable
    • Arguments necessaris
    • Arguments per defecte
    • Arguments de paraules clau
    • Funcions anònimes
  • Mòduls
    • Declaració d'importació
    • La declaració d'importació
    • La declaració d'import *
    • Localització de mòduls
    • Les funcions locals() i globals().
    • Espais de noms i abast
    • La funció dir( ).
    • La funció reload().
  • Fitxers I/O
    • Obrint un fitxer
    • Atributs de l'objecte del fitxer
    • Tancant un fitxer
    • Amb Declaració
    • El mètode Write
    • El mètode de lectura
    • El mètode rename().
    • El mètode remove().
    • Posició del fitxer
  • Excepcions
    • Què és una excepció?
    • Gestionar una excepció
    • Plantejant una excepció
    • Llista d'excepcions estàndard
    • Excepcions definides per l'usuari
    • Afirmacions en Python
  • Classes i Objectes
  • Programació CGI
    • Navegació web
    • Capçalera HTTP
    • Variables d'entorn CGI
    • Mètode GET
    • Mètode POST
    • Ús de galetes en CGI
    • Com funciona?
  • Accés a la base de dades MySQL
    • Creació de la taula de bases de dades
    • Operació INSERT
    • Operació LLEGIR
    • Operació d'actualització
    • Operació DELETE
    • Realització de Transaccions
    • Operació COMMIT
    • Operació ROLLBACK
    • Desconnexió de la base de dades
    • Maneig d'errors
  • Xarxes
    • Què són els endolls?
    • El mòdul de presa
    • Mòduls d'Internet Python
  • Enviament de correu electrònic
    • Enviament d'un correu electrònic HTML amb Python
    • Enviament de fitxers adjunts com a correu electrònic
  • Programació multifils
    • Començant un fil nou
    • El mòdul Threading
    • Sincronització de fils
    • Cua de prioritats multifils
  • Processament XML
    • Què és XML?
    • Arquitectures d'analitzador XML i API
    • Anàlisi XML amb API SAX
      • El mètode make_parser
      • El mètode parse
      • El mètode parseString
  • Programació GUI
    • Ginys de Tkinter
  • Gestió de la Geometria
  • Articles recomanats

Classes i Objectes

Python és un llenguatge orientat a objectes des que va existir i per això s'ha fet més fàcil utilitzar i crear classes i objectes. Aquest capítol us ajudarà a convertir-vos en un expert en l'ús del suport de programació orientada a objectes de Python.

Si no teniu prou coneixements sobre programació orientada a objectes, aquí teniu una petita cosa per començar.

    Classe− És un prototip definit per l'usuari per a un objecte que defineix un conjunt d'atributs que caracteritzen qualsevol objecte de la classe. Les variables de classe i les variables d'instància i els mètodes, als quals s'accedeix mitjançant la notació de punts.Objecte− És una instància d'una estructura de dades que es defineix per la seva classe. Un objecte comprèn tant variables de classe com variables d'instància.Variable de classe− És la variable que comparteixen totes les instàncies d'una classe. La variable de classe es defineix dins d'una classe però fora de qualsevol dels mètodes de classe. Les variables de classe no s'utilitzen com a variables d'instància freqüents.Membre de dades− és una variable d'instància que manté les dades associades a una classe i els seus objectes.Variable d'instància− És una variable que normalment es defineix dins d'un mètode i que pertany a la instància actual de la classe.Sobrecàrrega de funcions− L'assignació d'un o més comportaments a una funció determinada. L'operació realitzada difereix pels tipus d'objectes o arguments implicats.Sobrecàrrega de l'operador− L'assignació d'una o més funcions a un operador determinat.Herència− És la transferència de les característiques d'una classe a altres classes que se'n deriven.Mètode− És un tipus especial de funció que es defineix en una definició de classe.

Creació de classes

La classe crea una nova definició de classe. El nom d'una classe va seguit de la paraula clau class seguida de dos punts.

SINTAXI

|_+_|
  • La classe consta d'una cadena de documentació, a la qual s'accedeix mitjançant ClassName.__doc__.
  • El class_suite consta de les declaracions dels components que defineixen els membres de la classe, els atributs de dades i les funcions.
img 617dd27284418

Objectes de classe

L'objecte és una instància d'una classe. Una classe és com un plànol mentre que és una còpia de la classe amb valors reals.

img 617dd272d3ac5

SORTIDA

img 617dd273361bc

Atributs d'accés

Podeu accedir als atributs de l'objecte mitjançant l'operador de punt amb l'objecte.

  • getattr(obj, name[, default]) − S'utilitza per accedir a l'atribut d'un objecte.
  • hasattr(obj,name) − S'utilitza per comprovar si un atribut existeix o no.
  • setattr(obj,name,value) − S'utilitza per establir un atribut. Si un atribut no existeix, es crearà.
  • delattr(obj, nom) −S'utilitza per eliminar un atribut.

Atributs de classe incorporats

Cada classe de Python segueix els atributs integrats, i s'hi accedeix mitjançant l'operador de punt com qualsevol altre atribut -

    __dicte__− És el diccionari que conté l'espai de noms de la classe.__doc__− És la cadena de documentació de classe o cap, si no està definida.__nom__− Nom de la classe.__mòdul__− És un nom de mòdul en el qual es defineix la classe. Aquest atribut és __main__ en mode interactiu.__bases__− Una tupla buida que conté la classe base, per ordre d'aparició a la llista de classes base.

Recollida d'escombraries

Python elimina objectes automàticament per alliberar l'espai de memòria. El procés pel qual Python recupera periòdicament blocs de memòria que ja no s'utilitzen s'anomena Garbage Collection.

El col·lector d'escombraries de Python s'executa durant l'execució del programa i s'activa quan el recompte de referència d'un objecte arriba a zero.

El nombre de referències d'un objecte augmenta quan se li assigna un nom nou o es col·loca en un contenidor (llista, tupla o diccionari). El nombre de referències de l'objecte disminueix quan s'elimina amb del , la seva referència es reassigna o la seva referència surt de l'abast. Quan el recompte de referències d'un objecte arriba a zero, Python el recull automàticament.

img 617dd273789c9

SORTIDA

img 617dd273c29af

Herència de classe

També podeu crear una classe derivant-la d'una classe anterior esmentant la classe pare entre parèntesis després del nom de la nova classe.

Una classe secundaria pot heretar els atributs de la seva classe pare i podeu utilitzar les característiques com si estiguessin definides a la classe secundaria. Una classe secundària també pot substituir mètodes i membres de dades del pare.

SINTAXI

|_+_|

Mètodes de substitució

Podeu anul·lar els vostres mètodes de classe pare. El motiu per anul·lar els mètodes dels pares és perquè és possible que vulgueu una funcionalitat única o diferent a la vostra subclasse. Aquests són alguns dels mètodes de sobrecàrrega bàsics.

S.No Mètode Descripció
1__repr__(self)Representació de cadena avaluable
2__del__( self )Destructor, elimina un objecte
3__cmp__ ( jo, x )Comparació d'objectes
4__init__ (self [,args...] )Constructor (amb qualsevol argument opcional)
5__str__( jo mateix )Representació de cadena imprimible

Expressions regulars

Una expressió regular és una seqüència única de caràcters que us ajuda a trobar o fer coincidir conjunts de cadenes mitjançant una sintaxi especial que es manté en un patró. Les expressions regulars s'utilitzen àmpliament al món UNIX.

El mòdul Python proporciona suport complet per a expressions regulars semblants a Perl a Python. El mòdul planteja l'excepció.

Funció de coincidència

Intenta fer coincidir el patró RE amb la cadena amb senyaladors opcionals.

SINTAXI

|_+_|
S.No Paràmetre Descripció
1banderesEspecifica diferents senyals utilitzant OR (|).
2patróÉs una expressió regular que s'ha de fer coincidir.
3cordaÉs la cadena, que es cerca perquè coincideixi amb el patró al començament de la cadena.

Funció de cerca

Cerca la primera ocurrència del patró RE dins de la cadena amb senyaladors opcionals.

SINTAXI

|_+_|
S.No Paràmetre Descripció
1banderesEspecifica diferents senyals utilitzant OR (|).
2patróÉs una expressió regular que s'ha de fer coincidir.
3cordaÉs la cadena, que es cerca perquè coincideixi amb el patró al començament de la cadena.

Modificadors d'expressió regular

S.No Paràmetre Descripció
1re.MFa que $ coincideixi amb el final d'una línia i fa que ^ coincideixi amb l'inici de qualsevol línia.
2re.LInterpreta paraules segons la configuració regional actual. La interpretació afecta el grup alfabètic així com el comportament dels límits de la paraula.
3re.UInterpreta lletres segons el conjunt de caràcters Unicode. La bandera afecta el comportament de w, W, , B.
4re.XPermet una sintaxi d'expressió regular més bonica. Ignora els espais en blanc i tracta # sense escape com a marcador de comentari.
5re.SFa que un punt coincideixi amb qualsevol caràcter, inclosa una nova línia.
6re.IRealitza una concordança que no distingeix entre majúscules i minúscules.

Patrons d'expressió regular

S.No Patró Descripció
1.Coincideix amb el caràcter únic excepte la nova línia.
2a| bCoincideix amb a o b.
3[…]Coincideix amb el caràcter únic entre parèntesis.
4[^…]Coincideix amb un sol caràcter no entre parèntesis
5$Coincideix amb el final de línia.
6^Coincideix amb l'inici de la línia.
7re*Coincideix amb 0 o més ocurrències de l'expressió anterior.
8re+Coincideix amb una o més ocurrències de l'expressió anterior.
9re?Coincideix amb 0 o 1 ocurrència de l'expressió anterior.
10re{n}Coincideix exactament amb n nombre d'ocurrències de l'expressió anterior.
11re{ n, m}Coincideix com a mínim n i m aparicions de l'expressió anterior.
12re{ n,}Coincideix amb n o més ocurrències de l'expressió anterior.
13(re)Agrupa expressions regulars i recorda el text coincident.
14(?imx)Activa temporalment les opcions i, m o x dins d'una expressió regular.
15(?imx: re)Activa temporalment les opcions i, m o x entre parèntesis.
16?: re)Agrupa expressions regulars sense recordar el text coincident.
17(?-imx)Desactiva temporalment les opcions i, m o x dins d'una expressió regular.
18(?-imx: re)Desactiva temporalment les opcions i, m o x dins dels parèntesis.
19(?#…)Comenta.
20(?= re)Especifica la posició mitjançant un patró. No té un rang.
21(?! re)Especifica la posició mitjançant la negació del patró. no té un rang.
22(?> re)Coincideix amb el patró independent sense fer marxa enrere.
23EnCoincideix amb caràcters de paraula.
24INCoincideix amb caràcters que no són de paraula.
25SNo coincideix amb espais en blanc.
26sCoincideix amb espais en blanc.
27DCoincideix amb no dígits.
28dCoincideix amb els dígits. Equivalent a [0-9].
2910Coincideix amb la subexpressió agrupada enèsima si ja coincideix. En cas contrari, es refereix a la representació octal d'un codi de caràcters.
30ACoincideix amb l'inici de la cadena.
31AMBCoincideix amb el final de la cadena. Si existeix alguna nova línia, coincideix just abans de la nova línia.
32ambCoincideix amb el final de la cadena.
33GCoincideix amb el punt on va acabar l'últim partit.
34 , , etc.Coincideix amb les noves línies, els retorns de carro, les pestanyes, etc.
35BCoincideix amb els límits sense paraules.
361…9Coincideix amb la enèsima subexpressió agrupada.
37Coincideix amb el retrocés (0x08) quan està entre claudàtors.

Classes de personatges

S.No Exemple Descripció
1[aeiou]Coincideix amb qualsevol vocal en minúscula
2[0-9]Coincideix amb qualsevol dígit; igual que [0123456789]
3[Pp] ythonCoincideix amb Python o Python
4[a-z]Coincideix amb qualsevol lletra ASCII minúscula
5fregar [tu]Coincideix amb robí o rubí
6[^aeiou]Coincideix amb qualsevol altra cosa que no sigui una vocal minúscula
7[^0-9]Coincideix amb qualsevol cosa que no sigui un dígit
8[a-zA-Z0-9]Coincideix amb qualsevol de les anteriors
9[A-Z]Coincideix amb qualsevol lletra ASCII majúscula
10.Coincideix amb el caràcter únic excepte la nova línia.
11EnCoincideix amb caràcters de paraula.
12INCoincideix amb caràcters que no són de paraula.
13SNo coincideix amb espais en blanc.
14sCoincideix amb espais en blanc.
15DCoincideix amb no dígits.
16dCoincideix amb els dígits. Equivalent a [0-9].

Casos de repetició

S.No Exemple Descripció
1robí+Coincideix amb fregar més 1 o més ys
2robí*Coincideix amb fregar més 0 o més sí
3robí?Coincideix amb rubí o rubí: la y és opcional
4d{3}Coincideix exactament amb 3 dígits
5d{3,}Coincideix amb 3 o més dígits
6d{3,5}Coincideix amb 3, 4 o 5 dígits

Àncores

S.No Exemple Descripció
1Python ZCoincideix amb Python al final d'una cadena.
2Python$Coincideix amb Python al final d'una cadena o línia.
3^PythonCoincideix amb Python a l'inici d'una cadena o línia interna.
4 APythonCoincideix amb Python a l'inici d'una cadena.
5Python(?=!)Coincideix amb Python si va seguit d'un signe d'exclamació.
6Python(?!!)Coincideix amb Python, si no va seguit d'un signe d'exclamació.
7PythonCoincideix amb Python en un límit de paraula.