CodeGym /Corsi /Python SELF IT /Lavoro avanzato con la funzione print()

Lavoro avanzato con la funzione print()

Python SELF IT
Livello 4 , Lezione 4
Disponibile

10.1 format()

Ci capita spesso di dover stampare molti dati sulla console (sullo schermo). Non siamo i primi a imbatterci in questo, quindi in Python è stata introdotta da tempo la funzione format(), che permette di unire stringhe e di stampare i dati sullo schermo in modo più semplice e comprensibile.

La funzione format() viene utilizzata per inserire valori nella stringa in posizioni specifiche. La sintassi della funzione è la seguente:


"Modello di stringa da {} a {}".format(valore1, valore2,…)

Fatto 1. La funzione format() è una funzione figlia della stringa, quindi viene chiamata sulla stringa. Invece di passare la stringa come argomento alla funzione, scriviamo la stringa, poi un punto, e successivamente chiamiamo la funzione format() e le passiamo i parametri.

Fatto 2. La funzione format() riempie il modello di stringa con i valori passati. Essa trasforma i valori passati in stringhe (se erano numeri, per esempio) e li inserisce nei punti indicati dai simboli {}. Questo punto per l'inserimento dei valori viene chiamato placeholder.

Uso basico:


welcome_message = "Ciao, {}, benvenuto in {}!"
print(welcome_message.format("Anna", "il nostro negozio"))               
        

Risultato: "Ciao, Anna, benvenuto in il nostro negozio!"

Formattazione dei numeri:


output = "Dati: {0:.2f} e {1:.2f}".format(3.1415926, 2.71828)
print(output)              
        

Risultato: "Dati: 3.14 e 2.72" — dimostrazione di come limitare l'output a due cifre decimali.

Uso delle parole chiave:


output = "{name} lavora per {company}"
print(output.format(name="Sergey", company="Google"))
        

Risultato: "Sergey lavora per Google"

L'uso di format() migliora la leggibilità e la manutenzione del codice, permettendo di modificare facilmente il formato senza dover modificare l'intera stringa.

10.2 f-notazione

A partire dalla versione 3.6 in Python è stato introdotto un nuovo tipo di stringhe — f-stringhe, che significa letteralmente "formatted string". Queste stringhe migliorano la leggibilità del codice e funzionano più velocemente rispetto ad altri metodi di formattazione.

Per utilizzare le f-stringhe, prima della stringa si pone la lettera "f" o "F". Le espressioni da inserire sono racchiuse in parentesi graffe {}:

Esempio:


force = "Lato Oscuro"
message = f"Che la forza sia con te {force}!"
print(message)  # Stampa: Che la forza sia con te Lato Oscuro! 
        

Importante! Nelle parentesi graffe è possibile indicare variabili disponibili nello scope corrente (ne parleremo più avanti) e Python le trasforma automaticamente in stringhe e le inserisce nel punto giusto.

Esempio:


age = 28
message = f"Ho {age} anni"
print(message)  # Stampa: Ho 28 anni               
        

Inoltre, nelle parentesi graffe è possibile utilizzare espressioni con una serie di variabili.

Esempio:


birth_year = 1985
current_year = 2024
message = f"Ho {current_year - birth_year} anni"
print(message)  # Stampa: Ho 39 anni
        

Sotto il cofano tutto ciò viene convertito in una chiamata alla funzione format(), ma il nuovo approccio è davvero più comodo.

Usale quanto vuoi.

10.3 Parametri sep e end

In Python la funzione print() offre due parametri utili — sep e end, che permettono di controllare l'output dei dati. Questi parametri rendono la funzione print() più flessibile e possono essere utilizzati per formattare l'output senza dover usare funzioni aggiuntive o operazioni stringenti complesse.

Il parametro sep definisce il simbolo o la stringa che verrà utilizzata per separare i diversi valori passati a print(). Di default, sep è impostato come spazio. Questo significa che se passate più argomenti a print(), saranno separati da uno spazio.

Ma se volete che i dati siano separati da qualcosa di diverso dallo spazio, ad esempio una virgola, bisogna aggiungere alla fine il parametro sep assegnandogli una nuova stringa separatrice.

Esempio:


            print("Hello", "world")  # Output: Hello world 
            print("Hello", "world", sep=", ")  # Output: Hello, world
        

Oppure si può, ad esempio, fare in modo che ogni valore venga stampato su una nuova riga. In questo caso, al parametro sep va assegnato il simbolo speciale di cambio riga — rappresentato da una coppia di simboli “\n”.

Esempio Spiegazione

print(1, 2, 3, 4, 5, sep=",\n")  

Il ciclo stamperà sullo schermo i numeri
1,
2,
3,
4,
5
            

Il parametro end definisce cosa verrà stampato dopo tutti i valori passati. Il valore di default di end è il simbolo di nuova riga (\n), che significa andare a capo dopo l'esecuzione di print().

Modificando end, puoi controllare come vengono stampati i dati, ad esempio, per continuare la stampa sulla stessa riga:

Esempio:


            print("Hello", end=" ")
            print("world")  # Output: Hello world               
        

Utilizzare sep e end può essere estremamente utile in scenari in cui è richiesto un formato di output speciale, ad esempio nella creazione di tabelle, rapporti o quando si vogliono stampare dati su una riga senza trasferimento automatico su una nuova riga.

Oltre a semplificare il codice e a eliminare la necessità di aggiungere manualmente separatori o gestire i cambi di riga, l'uso di sep e end migliora la leggibilità e la manutenzione del codice.

Commenti
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION