Python: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
LRKalle (discussione | contributi)
Pulizia del linguaggio e aggiornamento di alcune parti
LRKalle (discussione | contributi)
Riga 107:
Python è stato progettato in modo da risultare facilmente leggibile. Visivamente si presenta in modo lineare e pulito, con pochi costrutti sintattici rispetto ad altri linguaggi strutturati come per esempio [[C (linguaggio)|C]], [[Perl]] o [[Pascal (linguaggio di programmazione)|Pascal]].
 
Per esempio, Python ha solo due forme di ciclo: <kbd><code>for</code></kbd> che itera sugli elementi di una lista o su di un iteratore (equivalente al <kbd>''foreach''</kbd> deldi Perl o PHP) e <kbd><code>while</code></kbd> che cicla fin tantofintanto che l'[[espressione booleana]] indicataspecificata risulterà vera. In sostanza manca dei cicli in stile C <kbd><code>for</code></kbd>, <kbd><code>do -</code></kbd> <kbd><code>while</code></kbd> e <kbd><code>untiuntil</code></kbd>, ma tutti questi possono essere espressi con dei semplici equivalenti. Allo stesso modo ha solamente il costrutto <kbd><code>if elif</code></kbd> <kbd><code>else</code></kbd> per le scelte condizionate, ma non possiede né <kbd><code>switch</code></kbd> né <kbd><code>got</code></kbd>.
 
=== Indentazione ===
Un aspetto inusuale del Python è il metodo che usa per delimitare i blocchi di programma, che lo rende unico fra i linguaggi più diffusi.
 
Nei linguaggi derivati dall'[[ALGOL]] come Pascal, C e Perl, i blocchi di codice sono indicati con parentesi oppure con parole chiave; per esempio il [[C (linguaggio)|C]] e il [[Perl]] usano <kbd>{ }</kbd> mentre il [[Pascal (linguaggio di programmazione)|Pascal]] usa <kbd><code>begin</code></kbd> e <kbd><code>end</code></kbd>. In questi linguaggi è solo una pura convenzione degli sviluppatori di [[Indentazione|indentare]] (ovvero "fare rientrare" dal margine sinistro della pagina) il codice sorgente interno a un blocco per migliorarne la leggibilità e chiarire la struttura del flusso di esecuzione.

Invece Python deriva il suo sistema di indentazione dal meno noto linguaggio di programmazione [[Occam (linguaggio di programmazione)|Occam]]: invece di usare parentesi o parole chiave, usa l'''indentazione'' stessa per indicare i blocchi nidificati in congiunzione col carattere "due punti" (:). In Python si possono usare sia una tabulazione sia un numero arbitrario di spazi, purchèpurché ovviamente siano usati sempre in modo congruente con la sintassi del linguaggio. L'esempio che segue chiarisce questo aspetto, mostrando la versione in C e in Python di funzioni per il calcolo del fattoriale di un numero intero.
 
''Fattoriale in C:''
Line 137 ⟶ 139:
All'inizio questo modo di indicare i blocchi e esprimere la sintassi può confondere le idee a chi viene da altri linguaggi, ma poi si rivela molto vantaggioso, perché risulta conciso e obbliga a scrivere sorgenti indentati correttamente, aumentando così la leggibilità del codice.
 
Lo svantaggio è che la gestione degli spazi e dei caratteri di tabulazione può essere diversa da un [[editor di testo]] all'altro, il che costringe a prestare bene attenzione nell'indentare il codice oppure ad affidarsi alle funzioni di indentazione automatica ormai presenti nella maggior parte degli editor di programmi. Può anche capitare di lavorare con editor di codice sorgente diversi, su vari computer, e ritrovarsi così con codice sorgente che usa in modo misto tabulazioni e spazi, accorgendosi dell'errore solo in fase di esecuzione.
 
Python permette anche alcune scorciatoie per scrivere codice "più" sulla stessa riga. Se i due punti (:) danno il via a un blocco indentato di una sola riga: la possiamo spostare a seguito di uno spazio dopo. <syntaxhighlight lang="python">