Buongiorno,
mio figlio iscritto al primo anno di ingegneria informatica ha avuto problemi a superare l'esame di programmazione Python in particolare sulle espressioni regolari.
Ho provato ad aiutarlo con le mie conoscenze di vecchio ingegnere elettronico ma con scarsi risultati (ai miei tempi si usava fortran 77 e Pascal).
Volevo quindi chiedere gentilmente se c'è un libro da acquistare o qualche cosa in rete su cui si possono fare esercizi di allenamento.
I problemi che hanno dato all'esame sono tipo questo (solo per farvi capire il livello di difficoltà, siamo riusciti a farlo ma con difficoltà).
Grazie in anticipo.
ESERCIZIO
Scrivere una funzione che riceve in ingresso il nome di un file di testo file e calcola quante ore (corrette e scorrette) sono presenti nel file.
Le ore sono scritte in questo formato:
- 1 o 2 cifre
- Il carattere separatore “:” oppure “.”
- 1 o 2 cifre
- Lo stesso carattere separatore di cui sopra
- 1 o 2 cifre
- Il primo carattere separatore deve essere uguale al secondo carattere separatore, altrimenti non deve essere conteggiato
Un’ora è corretta se, oltre a rispettare il formato di sopra, corrisponde anche a un’ora corretta. Ad esempio, 1:1:01 è corretta, mentre 25:11:19 non è corretta (assumere che le ore possano andare da 0 a 24 inclusi, mentre minuti e secondi da 0 a 59). La funzione deve restituire due numeri interi, cioè il numero di ore che rispettano il formato di sopra ed il numero di ore che rispettano il formato di sopra ma non sono corrette.
Ad esempio, se il file contiene:
fin dalle 12:00:00 mi sono attivato, poi dalle 25.3.5 ho lavorato, fino alle 11:13:19.
Alle 12:12.01 ho deciso che dalle 1:1:11 ale 31:9:13 mi riposerò.
Allora la funzione deve restituire (3,2) poichè 12:00:00, 11:13:19 e 1:1:11 sono ore corrette, 25.3.5 e 31:9:13 sono ore scorrette, mentre 12:12.01 non è un’ora (usa 2 separatori diversi, non ammesso). Usare le espressioni regolari