Python: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
Recupero di 1 fonte/i e segnalazione di 0 link interrotto/i.) #IABot (v2.0.9.5 |
Nessun oggetto della modifica |
||
Riga 22:
'''Python''' è un [[linguaggio di programmazione ad alto livello]], [[programmazione orientata agli oggetti|orientato a oggetti]], adatto, tra gli altri usi, a sviluppare [[applicazione (informatica)|applicazioni]] distribuite, [[scripting]], [[Calcolo (matematica)|computazione numerica]] e [[Testing#Il collaudo di sistema|system testing]].
Ideato
Spesso
Python dispone anche di una sezione grafica, il modulo '''Python Turtle Graphics''', che permette di applicare le righe di codici alla grafica.
Riga 35:
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 è forte (''strong typing'') e viene eseguito
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]], 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 modulare favoriscono anche lo sviluppo di applicazioni molto complesse.
Riga 42:
[[File:esempio Python.png|miniatura|destra|[[Codice sorgente]] di un programma scritto in Python]]
[[File:Python_add5_syntax.svg|miniatura|destra|Esempio di codice sorgente scritto in Python]]
Sebbene Python venga in genere considerato e presentato come un [[linguaggio interpretato]], in realtà il [[codice sorgente]] non viene convertito direttamente in [[linguaggio macchina]]
[[File:Run Module Python.png|miniatura|408x408px|[[Menù a tendina]] dal quale si può eseguire il programma cliccando su "Run Module" o con lo shortcut F5 da [[windows 10]] in poi.]]
Come il linguaggio [[Lisp]] e a differenza del Perl, l'[[Interprete (informatica)|interprete]] Python supporta anche un modo d'uso interattivo ([[Read–eval–print loop|REPL]]) attraverso cui è possibile inserire codice direttamente da un terminale, visualizzando immediatamente il risultato.
Riga 68:
Essendo Python a [[tipizzazione dinamica]], tutte le variabili sono, in realtà, [[Puntatore (programmazione)|puntatori]] a [[Oggetto (informatica)|oggetto]]. Per esempio, se a una variabile è assegnato un valore numerico intero, subito dopo può essere assegnata una stringa o una lista. Gli oggetti sono invece dotati di tipo.
Python prevede un moderato controllo dei tipi al momento dell'esecuzione, ovvero [[runtime]]. I tipi numerici godono di conversione implicita, perciò è possibile, per esempio, moltiplicare un numero complesso per un intero. Non esiste invece conversione implicita tra numeri e stringhe alfanumeriche
Python dispone di vari modelli/librerie da utilizzare per fornire funzionalità senza dovere scrivere codice, come per esempio il modulo ''turtle graphics''<ref>{{Cita web|url=https://docs.python.org/3.3/library/turtle.html?highlight=turtle|titolo=24.1. turtle — Turtle graphics — Python 3.3.7 documentation|sito=docs.python.org|accesso=2020-05-28}}</ref> (per disegnare), ''copy''<ref>{{Cita web|url=https://docs.python.org/2/library/copy.html|titolo=8.17. copy — Shallow and deep copy operations — Python 2.7.18 documentation|sito=docs.python.org|accesso=2020-05-28}}</ref> (per creare copie di [[Oggetto (informatica)|oggetti]]), ''random''<ref>{{Cita web|url=https://docs.python.org/3/library/random.html|titolo=random — Generate pseudo-random numbers — Python 3.8.3 documentation|sito=docs.python.org|accesso=2020-05-28}}</ref> (per generare numeri casuali), ''sys''<ref>{{Cita web|url=https://docs.python.org/2/library/sys.html|titolo=28.1. sys — System-specific parameters and functions — Python 2.7.18 documentation|sito=docs.python.org|accesso=2020-05-28}}</ref> (per interagire da riga di comandi con l'interprete) e ''time'' (per operare con unità di tempo e date).
Riga 126:
Python è stato progettato in modo da risultare facilmente leggibile e scrivibile. 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 un iteratore (equivalente al <kbd>''foreach''</kbd> di Perl o PHP) e <kbd><code>while</code></kbd>, che
=== Indentazione ===
Un aspetto inusuale
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 [[Indentazione|indentare]] (ovvero
''Fattoriale in C:''
Riga 157:
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
Python permette anche alcune scorciatoie per scrivere
if b > a: print("b is greater than a")
</syntaxhighlight>
Riga 171:
Un altro punto di forza di Python è la disponibilità di elementi che facilitano la [[programmazione funzionale]]. Le funzioni sono considerate degli oggetti e sono dunque utilizzabili alla stregua di qualsiasi altro oggetto, ad esempio inserendole in collezioni o utilizzandole direttamente come parametri per altre funzioni. Gli elementi di programmazione funzionale, insieme a costrutti specifici per la manipolazione di contenitori, rendono ancora più comodo operare con liste o altri tipi contenitore.
Gli ''slicing'' sono un costrutto simile all'indicizzazione in grado di ottenere sottosequenze specificando gli indici di inizio
<syntaxhighlight lang="python">
numeri = [1, 2, 3, 4, 5]
Riga 227:
</syntaxhighlight>
Dal momento che Python permette di avere [[Funzione di ordine superiore|funzioni come argomenti]], è anche possibile avere costrutti funzionali più sottili, come ad esempio la [[continuazione]].<ref>[http://www.ps.uni-saarland.de/~duchier/python/continuations.html Continuations Made Simple and Illustrated]</ref>
In Python esiste la parola chiave <code>lambda</code>, particolarmente utile in contesti dove è necessario svolgere piccole operazioni che probabilmente saranno effettuate solo in quella zona del codice:
Riga 244:
</syntaxhighlight>
<syntaxhighlight lang="python">
Riga 256:
Un ''decoratore'' è qualsiasi oggetto di Python invocabile usato per aggiungere codice all'inizio o al termine di una funzione, un metodo o una definizione di classe, senza modificarne internamente il codice. Un decoratore è passato all'oggetto e ritorna l'oggetto modificato.
I decoratori sono ispirati in parte dalla notazione Java, hanno una sintassi simile e sono considerati [[zucchero sintattico]]. Usano <code>@</code> come parola chiave:
<syntaxhighlight lang="python">
Riga 293:
=== Commenti ===
Analogamente ad altri linguaggi di programmazione, in Python è possibile lasciare dei commenti nelle righe di codice per comprendere e far comprendere meglio ciò che accade eseguendo il programma. In Python i commenti (già a partire dalle primissime versioni del linguaggio di programmazione) si introducono con il simbolo "#";
print("qualcosa a caso") #questo programma stampa "qualcosa a caso" nella console ignorando tutto ciò che viene scritto dopo il simbolo "#"
print("andando a caporiga l'effetto del cancelletto sparisce e il codice ha effetto sul programma")
Riga 299:
</syntaxhighlight>
Spesso i commenti vengono utilizzati per il cosiddetto "[[Debugging]]",
Un esempio pratico sarebbe:
Riga 318:
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 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
== Esempi di programma ==
|