Python: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Nessun oggetto della modifica
Funzionalità collegamenti suggeriti: 2 collegamenti inseriti.
 
(7 versioni intermedie di 6 utenti non mostrate)
Riga 29:
 
== Descrizione ==
È un linguaggio che ha tra i principali obiettivi: [[tipizzazione dinamica|dinamicità]], {{chiarire|semplicità e flessibilità. Python è un linguaggio semplice, poichéche è stato progettato appositamente per essere facilmente comprensibile, finola adcui includeresintassi alcunisi elementiavvicina delestremamente al linguaggio naturale (incorporandone alcuni aspetti). FlessibileInoltre perchéla sipotenza di Python è sicuramente il fatto di essere altamente flessibile, prestaprestandosi ad un ampio spettro di utilizzi grazie alle sue numerose librerie. }}.
Supporta multipli [[paradigma di programmazione|paradigmi di programmazione]], tra cui quello [[programmazione orientata agli oggetti|a oggetti]] e quello [[programmazione funzionale|funzionale]].
 
Riga 36:
Altre caratteristiche distintive sono l'[[overloading]] di operatori e funzioni tramite [[delegation|delegati]], la presenza di un ricco assortimento di tipi e funzioni di base e librerie standard, sintassi avanzate quali ''slicing'' e ''list comprehension''.
 
Il controllo dei tipi è [[Tipizzazione deboleforte|deboleforte]] (''weakstrong typing'') e viene eseguito a ''[[run-time]]'' (''dynamic typing''): una variabile è un contenitore a cui viene associata un'etichetta (il nome) che può essere associata a diversi contenitori anche di tipo diverso durante il suo tempo di vita. Fa parte di Python un sistema ''[[garbage collector]]'' per la liberazione e il recupero automatici della memoria con cui si lavora.
 
Python ha qualche somiglianza con [[Perl]], ma i suoi progettisti hanno scelto una sintassi più essenziale e uniforme con l'obiettivo di migliorare la leggibilità del codice. Analogamente a [[Perl]] è classificato spesso come [[Linguaggio di scripting|linguaggio di ''scripting'']], ma pur essendo utile per scrivere [[script]] di sistema, in alternativa per esempio a [[bash]], la grande quantità di librerie disponibili e la facilità con cui il linguaggio permette di scrivere software [[Modularità (informatica)|modulare]] favoriscono anche lo sviluppo di applicazioni molto complesse.
Riga 74:
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 e il Perl usano <code>{}</code> mentre il [[Pascal (linguaggio di programmazione)|Pascal]] usa {{Codice|codice=begin|linguaggio=Pascal}} e {{Codice|codice=end|linguaggio=Pascal}}. In questi linguaggi è solo una pura convenzione degli sviluppatori [[Indentazione|indentare]] (ovvero spostare verso destra rispetto al margine sinistro della pagina) il codice sorgente interno a un blocco, per migliorare la leggibilità del codice e chiarire la struttura del flusso di esecuzione.
 
Python, invece, 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" (<code>:</code>). L'indentazione si può ottenere sia con il [[Tabulatore|carattere di tabulazione]] sia con un numero arbitrario di spazi, purché ovviamente si operi 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 ===
Riga 98:
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 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 una maggiore quantità di codice sulla stessa riga. Se i due punti (<code>:</code>) danno il via a un blocco indentato di una sola istruzione, esso può essere scritto anche sulla stessa riga, preceduto da uno spazio. <syntaxhighlight lang="python">
Riga 104:
</syntaxhighlight>
 
Sebbene decisamente poco apprezzabile per i puristi del linguaggio Python, è comunque possibile usare il "[[punto e virgola]]" (<code>;</code>), come in grande parte dei linguaggi di programmazione, per indicare che un'istruzione è conclusa, e cominciarne un'altra sulla stessa riga.<syntaxhighlight lang="python">
a = b + 10; print("Hello world"); b = 243 - 23;
</syntaxhighlight>
Riga 293:
 
=== Libreria standard ===
Python ha una vasta [[Libreria software|libreria standard]], il che lo rende adatto a molti impieghi. Oltre ai moduli della libreria standard se ne possono aggiungere altri scritti in C oppure Python per soddisfare le proprie esigenze particolari. Tra i moduli già disponibili ve ne sono per scrivere [[Applicazione web|applicazioni web]]: sono supportati [[MIME]], [[Hypertext Transfer Protocol|HTTP]] e tutti gli altri standard Internet. Sono anche disponibili moduli per creare applicazioni con [[interfaccia grafica]], per connettersi a [[Relational database management system|database relazionali]], per usare le [[espressione regolare|espressioni regolari]].
 
La libreria standard è uno dei punti forti di Python, in quanto compatibile con tutte le piattaforme, a eccezione di poche funzioni, segnalate chiaramente nella documentazione come specifiche di una piattaforma particolare.