Vai al contenuto
Leo

07 Sezione 7 di 15

Libreria: testo, numeri, date, file e formati

Leo ha centinaia di funzioni pronte, sempre disponibili senza importare nulla. Qui trovi le più utili per lavorare con testi, numeri, date, file e cartelle, e per leggere e scrivere i formati di dati più comuni.

  • 7 minuti di lettura
  • Livello: intermedio
  • 14 esempi verificati

Come si usano#

Le funzioni della libreria si chiamano per nome, con gli argomenti tra parentesi: lunghezza("ciao"). I metodi si chiamano con il punto sul valore: "ciao".maiuscolo(). Molti argomenti sono facoltativi e si possono dare per nome: arrotonda(3.14159, cifre = 2). Tutti gli errori sono in italiano, con un suggerimento.

Testi#

MetodoChe cosa fa
t.maiuscolo(), t.minuscolo()tutto maiuscolo / minuscolo
t.pulisci()toglie gli spazi all'inizio e alla fine
t.dividi([separatore])lista dei pezzi (senza separatore divide sugli spazi)
sep.unisci(lista)unisce una lista di testi mettendo sep in mezzo
t.sostituisci(vecchio, nuovo)sostituisce tutte le volte
t.contiene(pezzo), t.inizia_con(p), t.finisce_con(p)controlli sul testo
Leoeseguito con Leo
variabile riga = "Rossi;Mario;Roma"variabile parti = riga.dividi(";")stampa(parti[1] + " " + parti[0])stampa(" - ".unisci(parti).maiuscolo())stampa(riga.contiene("Roma"), lunghezza(riga))per ogni lettera in "ciao" fai    stampa(lettera.maiuscolo())fine
Uscita
Mario Rossi
ROSSI - MARIO - ROMA
vero 16
C
I
A
O

Per controllare dati italiani ci sono funzioni pronte che restituiscono vero o falso: e_email, e_codice_fiscale (controlla anche il carattere finale), e_partita_iva, e_iban ed e_cap.

Leoeseguito con Leo
stampa(e_email("ada@esempio.it"))stampa(e_cap("00184"), e_cap("184"))stampa(e_iban("IT60X0542811101000000123456"))
Uscita
vero
vero falso
vero

Per cercare pezzi di testo con una certa forma (tutte le cifre, tutte le email…) ci sono i modelli di testo: li trovi in Programmazione avanzata.

Numeri e statistica#

FunzioneChe cosa fa
arrotonda(x, [cifre])arrotonda (le metà lontano da zero)
arrotonda_per_difetto, arrotonda_per_eccessoverso il basso / verso l'alto
assoluto(x), radice(x)valore assoluto, radice quadrata
minimo(...), massimo(...), somma(lista)il più piccolo, il più grande, la somma
media, mediana, moda, deviazionestatistica di una lista
casuale(da, a), scegli_a_caso(lista), mescola(lista)numeri e scelte a caso
e_primo(n), mcd(a, b), mcm(a, b), fattorizza(n)aritmetica
in_romano(n), in_binario(n), in_esadecimale(n)altre scritture dei numeri
Leoeseguito con Leo
variabile voti = [6, 7, 7, 8, 9, 5]stampa("Media:", arrotonda(media(voti), 2))stampa("Mediana:", mediana(voti), "Moda:", moda(voti))stampa(e_primo(97), mcd(12, 18), fattorizza(360))stampa(in_romano(2026), in_binario(10))stampa(media(1..1000000))
Uscita
Media: 7.0
Mediana: 7 Moda: 7
vero 6 [2, 2, 2, 3, 3, 5]
MMXXVI 1010
500000.5

Soldi, precisi al centesimo#

Con i numeri decimali del computer 0.1 + 0.2 non fa esattamente 0.3. Per i conti con gli euro usa soldi: è preciso al centesimo, arrotonda come i commercianti e si scrive all'italiana.

Leoeseguito con Leo
stampa(soldi("19,99").per(3))stampa(soldi(100).ripartisci(3))stampa(soldi(100).con_iva())stampa(soldi(122).scorpora_iva())stampa(frazione(1, 2).piu(frazione(1, 3)))
Uscita
59,97 €
[33,34 €, 33,33 €, 33,33 €]
122,00 €
100,00 €
5/6

Date e orari#

Il tipo data si scrive all'italiana, 25/09/2026. Si crea con data(anno, mese, giorno), da un testo con data("25/09/2026 14:30"), e adesso() dà il momento attuale.

Leoeseguito con Leo
variabile esame = data(2026, 6, 18)variabile inizio_corso = data("15/09/2025")stampa(esame, esame.nome_giorno)stampa("Giorni tra le due date:", giorni_tra(inizio_corso, esame))stampa(esame.aggiungi_giorni(10))stampa(formatta_data(esame))stampa(esame.formato("GG/MM/AAAA"))
Uscita
18/06/2026 giovedì
Giorni tra le due date: 276
28/06/2026
giovedì 18 giugno 2026
18/06/2026

Ci sono anche le festività italiane (compresa Pasqua, calcolata), i giorni lavorativi e l'età:

Leoeseguito con Leo
stampa(pasqua(2026))stampa(nome_festivita(data(2026, 12, 25)))stampa(e_giorno_lavorativo(data(2026, 6, 2)))stampa(giorni_lavorativi(data(2026, 12, 1), data(2026, 12, 31)))stampa(calcola_eta(data(2000, 3, 15), alla_data = data(2026, 9, 27)))stampa(durata_in_parole(3725))
Uscita
05/04/2026
Natale
falso
21
26
1 ora, 2 minuti e 5 secondi

Per l'ora come testo ci sono ora() ("HH:MM:SS") e oggi() ("GG/MM/AAAA"); attendi(secondi) aspetta; cronometro() misura il tempo.

Leggere e scrivere file#

FunzioneChe cosa fa
leggi_file(percorso)tutto il testo di un file
scrivi_file(percorso, testo)scrive il testo, sostituendo il contenuto
aggiungi_a_file(percorso, testo)aggiunge in fondo (crea il file se manca)
leggi_righe(percorso), scrivi_righe(percorso, righe)una lista di righe
esiste(percorso), e_file(p), e_cartella(p)controlli
spesa.leoeseguito con Leo
scrivi_righe("spesa.txt", ["pane", "latte", "uova"])aggiungi_a_file("spesa.txt", "caffè")per ogni cosa in leggi_righe("spesa.txt") fai    stampa("- " + cosa)finestampa(esiste("spesa.txt"), dimensione_leggibile(dimensione_file("spesa.txt")))
Uscita
- pane
- latte
- uova
- caffè
vero 23 byte
  • I percorsi relativi ("dati/voti.csv") partono dalla cartella corrente. Le cartelle si separano con /, anche su Windows.
  • I file si scrivono in UTF-8; in lettura Leo riconosce da solo anche i file del Blocco note in «Unicode» e i vecchi file di Excel.
  • cartella_programma() è la cartella del programma che stai eseguendo: comoda per i file che stanno accanto al programma.

Cartelle, percorsi e cestino#

backup.leoeseguito con Leo
se non esiste("backup") allora    crea_cartella("backup")finecopia_file("voti.csv", "backup")                # backup/voti.csvrinomina_file("backup/voti.csv", "voti_2026.csv")stampa(elenca_file("backup"))stampa(nome_file("foto/estate/mare.jpg"), estensione_file("mare.JPG"))stampa(unisci_percorso("dati", "2026", "voti.csv"))
Uscita
["voti_2026.csv"]
mare.jpg jpg
dati/2026/voti.csv
FunzioneChe cosa fa
crea_cartella(p)crea la cartella (e quelle intermedie)
elenca_file(cartella, filtro), elenca_cartelle(cartella)nomi dei file / delle sottocartelle; filtri come "*.jpg;*.png"
cerca_file(cartella, filtro)cerca anche nelle sottocartelle
copia_file, sposta_file, rinomina_file, copia_cartellacopiare, spostare, rinominare
elimina_file, elimina_cartella, svuota_cartellaeliminare, nel cestino
cartella_documenti(), cartella_desktop(), cartella_download()le cartelle speciali dell'utente
file_temporaneo(), cartella_temporanea()file e cartelle che si eliminano da soli alla fine
guardia.leoeseguito con Leo
prova    elimina_cartella(cartella_casa())cattura ErroreFile come e    stampa("Leo si è rifiutato:", e.messaggio)fine
Uscita
Leo si è rifiutato: Non posso eliminare `/root`: è la tua cartella personale.

Tabelle CSV (anche per Excel)#

Un file CSV è una tabella scritta come testo, una riga per riga: lo aprono Excel e LibreOffice. Con leggi_tabella ogni riga diventa un dizionario, con i nomi delle colonne come chiavi; il separatore (,, ; o tabulazione) si indovina da solo e i numeri diventano numeri.

classe.leoeseguito con Leo
variabile classe = [{"nome": "Ada", "voto": 9.5}, {"nome": "Bruno", "voto": 7}]scrivi_tabella("voti.csv", classe, excel = vero)aggiungi_a_tabella("voti.csv", {"nome": "Carla", "voto": 8})per ogni r in leggi_tabella("voti.csv") fai    stampa(r["nome"], r["voto"])finestampa(leggi_file("voti.csv"))
Uscita
Ada 9.5
Bruno 7
Carla 8
nome;voto
Ada;9,5
Bruno;7
Carla;8

Con excel = vero il file è pronto per l'Excel italiano: separatore ;, decimali con la virgola e lettere accentate che si vedono giuste.

JSON, INI e TOML#

JSON è il formato più usato per salvare dati strutturati e scambiarli con i siti web. Liste e dizionari di Leo si salvano e si rileggono così come sono:

punti.leoeseguito con Leo
variabile punti = leggi_json("punti.json", predefinito = {})punti["Ada"] = 120punti["Bruno"] = 95scrivi_json("punti.json", punti)stampa(leggi_json("punti.json"))stampa(a_json({"ok": vero, "valori": [1, 2]}))
Uscita
{"Ada": 120, "Bruno": 95}
{"ok": true, "valori": [1, 2]}

I file di impostazioni si leggono e scrivono con leggi_ini / scrivi_ini (sezioni e chiavi) e leggi_toml / scrivi_toml. Leo li scrive in modo sicuro: un'interruzione non lascia mai un file a metà.

impostazioni.leoeseguito con Leo
scrivi_ini("gioco.ini", {"grafica": {"larghezza": 800, "schermo_intero": falso}})variabile config = leggi_ini("gioco.ini")stampa(config["grafica"]["larghezza"] + 100)
Uscita
900

Archivi ZIP#

archivio.leoeseguito con Leo
scrivi_file("nota.txt", "da conservare")crea_cartella("foto")scrivi_file("foto/leggimi.txt", "qui vanno le foto")comprimi_zip(["nota.txt", "foto"], "backup.zip")stampa(elenca_zip("backup.zip"))variabile estratti = estrai_zip("backup.zip", "ripristino")stampa(lunghezza(estratti), "file ripristinati")
Uscita
["nota.txt", "foto/leggimi.txt"]
2 file ripristinati

estrai_zip controlla tutto prima di scrivere: non sovrascrive file esistenti (serve sovrascrivi = vero) e rifiuta gli archivi pericolosi, con percorsi che uscirebbero dalla cartella o che occuperebbero una quantità esagerata di spazio.

Lavorare su intere liste#

Queste funzioni ricevono una lista e spesso una funzione da applicare a ogni elemento: una tua, una della libreria o una scritta al volo.

Leoeseguito con Leo
variabile parole = ["leone", "ape", "gatto", "orso"]stampa(mappa(parole, lunghezza))stampa(filtra(parole, funzione (p) restituisci lunghezza(p) > 3 fine))stampa(ordina_per(parole, lunghezza))stampa(conta_se([4, 7, 9, 5], funzione (v) restituisci v >= 6 fine))stampa(enumera(["a", "b"], 1))
Uscita
[5, 3, 5, 4]
["leone", "gatto", "orso"]
["ape", "orso", "leone", "gatto"]
2
[[1, "a"], [2, "b"]]

Altre: riduci, raggruppa_per, tutti, almeno_uno, accoppia. Nessuna di queste funzioni cambia la lista che riceve: ne restituiscono sempre una nuova.