Questo sito contribuisce alla audience di Il Messaggero
Scopri le migliori offerte sul canale Telegram ufficiale. Guarda su Telegram

Come andare a capo su Python

di

Hai da poco iniziato il tuo personale viaggio nel mondo della programmazione in Python e da bravo studente del linguaggio ti sei subito preoccupato di procurarti tutto l'occorrente per imparare in fretta.

Sperimentando un po' qua e là ti sei però accorto che nonostante l'inizio sia andato alla grande, hai ancora qualche difficoltà con alcuni concetti di base, per esempio su come andare a capo su Python. La questione ti interessa non solo per capire come far andare a capo il testo di un messaggio, ma anche per imparare come scrivere ordinatamente le tue righe di codice.

Beh, se le cose stanno così, non hai proprio nulla per cui scoraggiarti. Quando si inizia con la programmazione è normale avere difficoltà e qualche frustrazione indesiderata, ma fortunatamente basta affidarsi ai giusti consigli e praticarli con costanza. Condividi, vero? Allora lascia che sia io a darti i giusti consigli su come andare a capo su Python e vedrai che in poco tempo avrai tutto ciò che ti serve per riuscire nell'operazione e scrivere righe e righe di codice con qualche dubbio in meno. Pronto per iniziare? Bene, allora ti auguro buona lettura!

Indice

Informazioni preliminari

Qualche informazione preliminare su Python

Giusto qualche riga introduttiva prima di entrare nel vivo del tutorial. Prima di tutto, chiaramente, per usare Python devi installarlo sul computer, sia l'ambiente di sviluppo che l'esecuzione de codice sorgente. Se per qualunque ragione non lo avessi ancora fatto, in questa guida ti spiego nel dettaglio come fare.

Python è un linguaggio di programmazione orientato agli oggetti, di tipo interpretato, ovvero è l'interprete stesso, Python, a occuparsi della pre-compilazione e dell'esecuzione del comando, per cui alla CPU viene “data in pasto” l'istruzione per essere eseguita direttamente.

Questo rende Python particolarmente indicato per programmare con variabili non tipizzate, avvantaggiandosi del fatto che la memoria viene allocata in maniera dinamica. I valori inoltre non vanno definiti per forza a priori e i dati possono essere di tipo differente: numeri interi, in virgola mobile, complessi, oppure stringhe di testo, valori boleani e numeri grandi. Vi sono poi diversi tipi di oggetto come le liste, i dizionari e gli insiemi.

Python supporta inoltre una serie di funzioni, alcune di base, come quello print per scrivere messaggi, altre più avanzate da importare. Vi è inoltre la possibilità di definire nuove personali funzioni (immagino avrai sentito già parlare o letto del comando def).

Altra caratteristica, e qui immagino diventa di particolare importanza imparare bene come andare a capo, è la possibilità di racchiudere il codice in blocchi di condizione e loop (come la sintassi if e while). Di questo e molto altro ho avuto modo di parlarti nella mia guida come programmare in Python, per cui se intendi rispolverare questi concetti ti consiglio di dargli una lettura prima di proseguire.

Conoscere le regole della sintassi è fondamentale per far funzionare il codice che si scrive, ma risulta altrettanto essenziale per rendere quanto si scrive il più chiaro possibile. Perché questo è importante? Semplice, perché così sarà più facile da consultare agli altri o a te stesso, specialmente quando andrai a ri-consultare il tuo codice a distanza di tempo (insomma, scrivendo in modo ordinato e pulito avrai molti meno grattacapi in futuro!).

Come avrai già avuto modo di capire usando Python, basta sbagliare un'indentatura (mandare a capo e spaziare una riga di codice) per ottenere un traceback durante l'esecuzione dello script. È quindi fondamentale imparare la corretta indentazione. Bisogna porre particolare attenzione a questo aspetto anche quando scrivi il codice direttamente dal compilatore (in quanto una volta inviata l'istruzione questa verrà direttamente eseguita per com'è scritta).

Buona pratica è anche quella di scrivere il codice con un editor di testo orientato alla programmazione, come Emerald Editor o TotalEdit Pro. Questi programmi hanno numerose funzioni integrate, nonché una grafica orientata a ridurre typo e sviste in fase di scrittura del codice sorgente. Se non lo avessi ancora, procuratene uno presso questa pagina.

Come andare a capo su Python

Scrivere codice Python sapendo come andare a capo

Ti spiego ora come andare a capo su Python in fase di scrittura del codice sorgente. Come ti ho anticipato, andare a capo e indentare (o rientrare) correttamente, è una pratica utilizzata per dare struttura al codice e renderlo chiaro e comprensibile. Proprio per questo se si parla di andare a capo è bene fare la distinzione tra andare a capo nel compilatore e farlo nella stesura del codice in un programma di scrittura.

Nel primo caso la questione è alquanto chiara: si manda a capo il codice semplicemente premendo il tasto Invio della tastiera. Detto questo ci sono alcuni accorgimenti da considerare. Perché sia quando programmi direttamente da Python, che quando utilizzi un programma di editing di testo, per mandare a capo un codice funzionante, chiaro e comprensibile è sempre meglio conoscere dei concetti basilari.

Il primo è che a differenza di altri, come linguaggio C, oppure il linguaggio Java, ogni linea di codice NON deve finire con il carattere punto e virgola per dire al compilatore che l'istruzione è finita.

Indentare il codice e andare a capo durante la scrittura

In Python, premere il tasto Invio è già sinonimo di fine d'istruzione. In ogni caso la libreria di base del software limita ogni linea a un massimo di 79 caratteri. Come fare quindi in caso di righe lunghe? Ebbene una soluzione è quella di andare a capo dopo la virgola, come nel caso degli elenchi di contenuto di, per esempio, una lista. La sintassi dovrebbe essere simile alla seguente.

mesi = ['gennaio', 'febbraio', 'marzo',

'aprile', 'maggio', 'giugno',

'luglio', 'agosto', 'settembre',

'ottobre', 'novembre', 'dicembre']

Mandando a capo il codice dopo la virgola, il compilatore intenderà l'istruzione come unica. Il compilatore capirebbe anche qualora la virgola venisse messa a inizio della nuova linea, intendendo così l'istruzione come unica. Questa soluzione potrebbe tuttavia risultare confusionaria e poco chiara.

Rispettando la sintassi del compilatore puoi mandare a capo anche altri costrutti come quello condizionale di if. Ti dò un esempio a seguire.

if (mesi and giorni and

totale or parziale):

Come vedi, il codice va capo dopo l'operatore (and, or in questo esempio) se racchiudi la condizione tra parentesi. Fondamentale è usare il simbolo [:] per istruire il compilatore sul fine della condizione. Puoi evitare l'uso di parentesi esplicitando il ritorno a capo del codice scrivendo il carattere [] a fine riga.

Per finire, con gli operatori binari è buona prassi riportare il segno dopo che si è mandato a capo il codice. Per esempio così.

totale_tempo = (giorni

+ mesi

+ anni

- parziale)

Non fraintendermi, scrivendo l'operatore dopo invece che a inizio della nuova riga, il codice rimarrebbe sostanzialmente corretto e funzionante. Questa convenzione è semplicemente una pratica comunemente concordata come linea guida generale per la scrittura di un codice quanto più “pulito” possibile.

Come andare a capo print Python

Usare la funzione print di Python andando a capo

Se hai iniziato a programmare con Python, hai sicuramente già incontrato la funzione print. È praticamente impossibile non familiarizzare con questa funzione sin dall'inizio per la sua stessa natura di stdout, abbreviazione di standard out, ovvero il processo di scrittura all'esterno del risultato di elaborazione (output). Per dirla diversamente: è l'esternalizzazione dell'output che l'utilizzatore dello script/programma visualizzerà.

Per capire meglio come andare a capo print Python lascia che ti spieghi in sintesi come funziona. Per iniziare, hai mai constatato cosa restituisce la funzione print senza alcun parametro? Prova a scrivere print() e vedrai che il risultato è una riga vuota, un a capo. Questo avviene perché la funzione inserisce sempre un carattere nuova linea (new line).

Andare a capo con il carattere nuova linea

Esiste un carattere che rappresenta una nuova linea ed è /n, per cui anche quando scrivi un testo e premi il tasto Invio stai in realtà scrivendo un carattere nuova linea. Quando scrivi un'istruzione per la funzione print non puoi semplicemente premere il tasto Invio per mandare l'output a capo, ma devi proprio scrivere il carattere /n. Eccoti un esempio.

print("I mesi sono ", mesi, "\n" "mentre gli anni sono ", anni)

Questa riga mostrerà il testo in due righe separate da un carattere “nuova linea”. Puoi anche provare a modificarlo inserendo altri \n per osservarne il comportamento. Un ulteriore modo di produrre su più righe un output è quello di considerare di dividere ciò che vuoi mostrare in due o più istruzioni print(). Quando eseguirai il tuo codice vedrai le righe andare a capo.

Altro modo per mandare a capo è utilizzando l'opzione sep specificando dopo il carattere nuova linea. Questo manderà a capo ogni elemento nella funzione print. Ecco come.

print("I mesi sono ", mesi, "mentre gli anni sono ", anni, sep = "\n")

Prova questo codice e nota pure la differenza rispetto al precedente. Nota anche l'assenza del carattere “\n” tra gli elementi nella funzione. Per concludere, ricorda che la funzione print restituisce tutto in forma di testo, sia stringhe che variabili o altro.

Come non andare a capo su Python

Come evitare di andare a capo su Python

Ti ho già spiegato come e quando andare a capo quando programmi in Python e anche come andare a capo con print Python, così da mostrare, per esempio, degli output del tuo codice su più righe, ma magari ti starai ancora chiedendo come non andare a capo su Python? Proprio come si può andare a capo è infatti possibile NON andarci, lascia quindi che ti spieghi come fare.

In termini di scrittura del codice puoi scrivere più istruzioni nel compilatore separandole con il carattere [;]. Eccoti un esempio.

if mesi == 12:

print("totale"); print("dei"); print("mesi è "); print(mesi)

Così facendo potrai scrivere tutto nella stessa riga, sebbene questa pratica potrebbe risultare confusionaria e “non ortodossa”. Puoi anche NON far andare a capo gli argomenti della funzione print. Una soluzione banale è quella di mantenere tutto nella stessa chiamata della funzione, separando gli argomenti da una virgola come al solito.

Questo metodo potrebbe però risultare in righe eccessivamente lunghe per cui ti propongo una differente soluzione: l'uso dell'opzione end della funzione print. Questa opzione è già implicitamente impostata con il carattere \n, proprio per questo anche un comando vuoto di print produce una riga vuota.

Esplicitando un carattere differente nell'opzione end potrai quindi evitare l'accapo. Ti fornisco subito un esempio.

print("I mesi sono ", mesi, end = ". "); print("I mesi sono ", mesi, "mentre gli anni sono ", anni, end = "\n")

Eseguendo queste righe vedrai che il risultato sarà terminare il primo print con i simboli “spazio” e “punto”, mentre il secondo metterà un carattere nuova linea. Da precisare che specificare l'opzione “end” nel secondo print non è necessario in quanto comunque sarebbe sottinteso. Inoltre, il carattere [;] per separare i due comandi serve solo se esegui il codice direttamente dal compilatore per visualizzare l'output nella stessa riga. Puoi quindi scrivere in due linee i comandi e vedere il messaggio in un'unica riga se esegui il codice esternamente.

Cosa te ne pare? Sembrava più difficile a pensarlo che a farlo. Python è davvero un linguaggio versatile e un'ottima prima scelta quando ci si imbarca per il viaggio nei mari della programmazione. Se sei però agli inizi, perché non ti fai un'idea anche sugli altri linguaggi? Se l'idea ti stuzzica la curiosità, su questa pagina puoi avere una completa panoramica su come muoversi agli inizi.

Salvatore Aranzulla

Autore

Salvatore Aranzulla

Salvatore Aranzulla è il blogger e divulgatore informatico più letto in Italia. Noto per aver scoperto delle vulnerabilità nei siti di Google e Microsoft. Collabora con riviste di informatica e cura la rubrica tecnologica del quotidiano Il Messaggero. È il fondatore di Aranzulla.it, uno dei trenta siti più visitati d'Italia, nel quale risponde con semplicità a migliaia di dubbi di tipo informatico. Ha pubblicato per Mondadori e Mondadori Informatica.