Italian subtitles

← cs262 unità 1 06 import re

Lezione

Get Embed Code
5 Languages

Showing Revision 1 created 04/28/2012 by lorenz.mh.

  1. I programmi professionali sono spesso talmente complessi che non entrano in un'unica pagina,
  2. così vengono divisi in frammenti, come un libro in capitoli
  3. o il corpo della conoscenza umana è diviso in molti libri.
  4. In informatica, un modulo è un contenitore (repository) o una libreria --
  5. metodi e dati che fanno cose utili.
  6. In Python il metodo "import" carica un modulo.
  7. Scopriamo che ci sono già molti metodi già pronti
  8. che riguardano le espressioni regolari. Non dovremo reinventare la ruota.
  9. Possiamo semplicemente importare la libreria nel nostro programma e beneficiarne senza fatica.
  10. Il modulo per le espressioni regolari in Python è chiamato, non senza immaginazione, "re" -- regular expressions.
  11. All'inizio del programma, basta scrivere "import" spazio "re"
  12. per avere accesso a tutte i metodi relativi alle espressioni regolari.
  13. Ve le mostrerò tra un minuto.
  14. Se dobbiamo scrivere espressioni regolari in Python, dobbiamo sapere come si presentano.
  15. Le espressioni regolari in Python sono stringhe.
  16. Comincia per apice singolo o doppio apice, ed hanno dei contenuti,
  17. soltanto che, per distinguerle dalle normali stringhe,
  18. le espressioni regolari cominciano con una "r" minuscola appena prima degli apici della stringa.
  19. Qui abbiamo 1, 2, 3, 4, 5 --- una stringa da cinque caratteri da 0 a 9.
  20. Questa invece comincia con "r" ed è una espressione regolare
  21. che corrisponde dieci differenti stringhe formate da un carattere.
  22. Scrivere espressioni regolari è un processo creativo.
  23. Tu, programmatore devi fare questo sforzo creativo.
  24. Sto usando qui l'aggettivo "creativo" come spesso si usa il termine "elegante" per descrivere espressioni matematiche.
  25. Proprio come ci sono molte equazioni che danno come risultato il numero 4 ---
  26. 2 più 2, 1 più 3, 8 diviso 2, o valore assoluto di radice di sedici --
  27. praticamente un'infinità -- ci sono spesso infinite espressioni regolari
  28. che possono ottenere il risultato sperato.
  29. Scegliere quella giusta, la più breve, la più semplice, quella concisa, quella elegante
  30. richiede creatività. E' una capacità che imparerete nel corso delle lezioni.
  31. Diciamo che avete scritto una espressione regolare infine --- come questa.
  32. Ora dobbiamo utilizzarla.
  33. Uno dei metodi più usati per le espressioni regolari è findall()
  34. Accetta come parametri una espressione regolare ed una stringa, e ritorna una lista di tutte le sottostringhe
  35. che corrispondono con l'espressione regolare.
  36. Adesso, se cerchiamo una stringa di un carattere che è una cifra tra 0 e 9,
  37. '1' corrisponde, il '+' non corrisponde, '2' corrisponde, '=' non corrisponde,
  38. '=' non corrisponde, invece il '3' sì.
  39. re.findall() ritornerà una lista
  40. --- [1, 2, 3] --- di tutte le sottostringhe che corrispondono con l'espressione regolare.
  41. La lista potrebbe essere vuota se non si trovano corrispondenze.
  42. Questo "re" è la libreria Python dedicata alle espressioni regolari.
  43. Abbiamo proprio necessità del comando "import" all'inizio del nostro programma.
  44. Nell'esempio seguente userò la stessa stringa di partenza: '1 + 2 == 3' ---
  45. ma userò una differente espressione regolare.
  46. Questa in particolare corrisponde solo due stringhe contenenti un carattere.
  47. Vedremo come '1' e '2' corrispondono. Il '3' no! Poiché non è compreso tra 1 e 2.
  48. Non corrisponde a questa specifica espressione.
  49. L'ultimo esempio è un po' più insidioso.
  50. Cerchiamo le lettere tra "a" e "c",
  51. ma se guardate attentamente, queste sono le minuscole tra "a" e "c".
  52. Quindi questa "B" ci tenta --- la lettera maiuscola in 'Barbara',
  53. ma non è tra "a" e "c" minuscole.
  54. Troveranno corrispondenza 'a', 'b', 'a', 'a' e niente altro qui in 'Liskov'.
  55. Barbara Liskov è uno scienziato informatico molto conosciuto, famosa per il suo lavoro
  56. con la programmazioni ad oggetti e la programmazione di sistemi.
  57. Tra l'altro ha inventato il linguaggio "Clu",
  58. che vi mostro qui attraverso la lente d'ingrandimento.
  59. Ricevette il Turing Award -- la più alta onorificenza in campo informatico.