Dimensione: 13777
Commento: errori ortografici
|
Dimensione: 9047
Commento:
|
Le cancellazioni sono segnalate in questo modo. | Le aggiunte sono segnalate in questo modo. |
Linea 1: | Linea 1: |
## page was renamed from LinguaggioPython | |
Linea 2: | Linea 3: |
#format wiki | |
Linea 3: | Linea 5: |
[[BR]] ||<tablestyle="float:right; font-size: 0.9em; width:40%; background:#F1F1ED; margin: 0 0 1em 1em;" style="padding:0.5em;">'''Indice'''[[BR]][[TableOfContents]]|| |
<<BR>> <<Indice(depth=1)>> <<Informazioni(forum="http://forum.ubuntu-it.org/viewtopic.php?t=443446";)>> |
Linea 9: | Linea 10: |
Python è un linguaggio di programmazione ideato da Guido Von Rossum nel 1991 e derivato da un precedente linguaggio chiamato ABC. È interpretato e quindi caratterizzato da una grande portabilità su differenti piattaforme (Linux, Windows, Mac, ...).[[BR]] Python è estensibile tramite il linguaggio C. Può inoltre appoggiarsi a molte famose librerie scritte in C o C++ per la creazione di GUI (wxpython, pygtk...), tool per lo svilippo di giochi (pygame, pysdl...), database (mysqldb, ...).[[BR]] È un linguaggio ad alto livello, ha una sintassi molto piacevole e intuitiva (ideale per chi si avvicina alla programmazione). I programmi scritti in python risultano spesso molto sintetici ed eleganti nella forma (ma ricordiamo che tutto dipende anche dallo stile personale del programmatore! ;) ).[[BR]] È nativamente un linguaggio orientato agli oggetti ma a differenza di altri linguaggi come il java permette anche uno stile procedurale e/o funzionale.[[BR]] Ideale per realizzare applicazioni velocemnete, è utilizzato per una vasta gamma di scopi: scripting, creazione di programmi completi, estensioni di programmi scritti in C, realizzazione di prototipi di applicazioni che andranno poi riscritte in altri linguaggi. |
'''Python''' è un linguaggio di programmazione ad [[https://it.wikipedia.org/wiki/Linguaggio_di_programmazione_ad_alto_livello|alto livello]] che ha raggiunto una grandissima popolarità ed è utilizzato in molti ambiti, dall'utilizzo di semplici script personali fino alla creazione di progetti altamente professionali. |
Linea 16: | Linea 12: |
L'utilizzo di una sintassi pulita e ordinata legate a una certa facilità di utilizzo, hanno fatto si che col tempo '''Python''' si sia rivelato ottimale come primo linguaggio da imparare per chi è interessato ad affacciarsi al mondo della programmazione. | |
Linea 17: | Linea 14: |
= Installazione = | La seguente pagina intende solo mostrare come utilizzare gli strumenti basilari su Ubuntu. Per approfondire l'utilizzo di '''Python''' si rimanda alla copiosa documentazione presente sul web. Nel capitolo [[#guide|Guide per principianti]] sono presenti alcune delle più apprezzate guide per muovere i primi passi. |
Linea 19: | Linea 16: |
Con l'installazione predefinita di Ubuntu l'interprete python viene già installato. In caso contrario, è sufficiente installare il pacchetto ''python'' da utilizzando [:SynapticHowto:Synaptic] o da riga di comando: {{{ sudo apt-get install python |
= Versioni Python 2 e 3 = Su Ubuntu vengono preinstallate 2 differenti versioni: '''Python 2''' e '''Python 3'''.<<BR>> La nascita della versione 3 ha determinato un punto di rottura con il passato, tanto che le due versioni sono incompatibili fra loro. La versione 2, più precisamente '''Python 2.7''' sarà supportata '''fino al 2020'''. Nel frattempo non verrà ulteriormente sviluppata, ricevendo solo aggiornamenti di sicurezza. Questo ha generato una lenta situazione di transizione, dove lo sviluppo di nuove funzionalità è incentrato su '''Python 3''' ma una mole considerevole di progetti si basano ancora su '''Python 2'''. == Situazione su Ubuntu == * '''Desktop''': con il pacchetto di installazione [[apt://python|python]], così come il comando da terminale, si intende la '''versione 2.7'''. Il pacchetto [[apt://python3|python3]] e il relativo comando da terminale fanno riferimento, a seconda della versione di Ubuntu utilizzata, alla versione '''3.4''', '''3.5''', ecc..<<BR>>Pertanto col generico '''python''' sul desktop Ubuntu si intende ancora la '''versione 2'''. * '''Mobile''': su [[UbuntuPhone|Ubuntu Phone]] è installata in modo predefinito la sola versione 3, nominata '''python3'''. = Shell python = Come consuetudine per la realizzazione di programmi si utilizzano file di testo sui quali scrivere il codice sorgente (vedere [[#script|relativo capitolo]]). Tuttavia è possibile avviare all'interno del terminale una '''shell python''' interattiva sulla quale poter testare porzioni di codice. * '''Python 3''': il comando:{{{ python3 }}}avvierà la versione 3 predefinita sul proprio sistema, ad es. la 3.4 su Ubuntu 14.04:{{{ Python 3.4.3 (default, Nov 17 2016, 01:08:31) [GCC 4.8.4] on linux Type "help", "copyright", "credits" or "license" for more information. >>> }}}Se sono state installate versioni successive, ad es. la 3.5 e la si vuole utilizzare, sarà sufficiente specificarlo nel comando:{{{ python3.5 }}} Avviare il [[AmministrazioneSistema/RigaDiComando|terminale]]. * '''Python 2''': il comando:{{{ python2 }}}oppure semplicemente:{{{ python }}} avvierà la versione 2.7. Oltre al prompt dei comandi verrà visualizzata l'intestazione:{{{ Python 2.7.6 (default, Oct 26 2016, 20:30:19) [GCC 4.8.4] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> |
Linea 23: | Linea 56: |
== Verifica della configurazione == | == Esempi in Python 3 == |
Linea 25: | Linea 58: |
Bene ora non resta che lanciare l'interprete interattivo e fare pratica. | ||<tablestyle="text-align: justify; width:100%;" style="border:none;" 5%><<Immagine(Icone/Grandi/info.png,,center)>> ||<style="padding:0.5em; border:none;">Per testare i seguenti esempi è sufficiente digitare i comandi che appaiono accanto alla tripla freccia del prompt ('''>>>''') e quindi premere '''Invio'''.|| |
Linea 27: | Linea 60: |
Aprire un terminale e digitare: {{{ python }}} Dovrebbe apparire qualcosa del tipo: {{{ Python 2.4.3 (#2, Apr 27 2006, 14:43:58) [GCC 4.0.3 (Ubuntu 4.0.3-1ubuntu5)] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> }}} = Semplici comandi = Una volta avviato l'interprete, impariamo a usarlo: {{{ >>> print "Hello World!" |
* Alcune semplici istruzioni da passare al prompt per stampare scritte e per effettuare calcoli aritmetici. Le [[https://it.wikipedia.org/wiki/Stringa_(informatica)|stringhe]] devono essere inserite in mezzo alle virgolette `" "`, mentre i numeri vengono digitati così come sono:{{{ >>> print("Hello World!") |
Linea 41: | Linea 63: |
>>> print 2+3 | >>> print(2+3) |
Linea 43: | Linea 65: |
>>> print "2 + 3 = ", 2+3 | >>> print("2 + 3 = ", 2+3) |
Linea 47: | Linea 69: |
Usciamo dall'interprete premendo «`Ctrl+D`», oppure digitando: {{{ >>> import sys >>> sys.exit() |
* Per indicare i blocchi di codice si usa l'indentazione creata tramite il tasto '''TAB''' (Tab ⇆). In '''Python''' non è solo una buona abitudine del programmatore ma è obbligatoria. Per esempio il codice appartenente a un ciclo deve essere indentato:{{{ >>> i = 0 >>> while i < 4: ... i += 1 ... print("il doppio di", i, " e' ", i*2) ... il doppio di 1 e' 2 il doppio di 2 e' 4 il doppio di 3 e' 6 il doppio di 4 e' 8 }}}Altrimenti succede questo:{{{ >>> i = 0 >>> while i < 4: ... i += 1 File "<stdin>", line 2 i += 1 ^ IndentationError: expected an indented block }}} * Uscire dall'interprete premendo '''Ctrl+D''', oppure digitando il comando:{{{ >>> exit() |
Linea 52: | Linea 92: |
Proviamo ora a realizzare un piccolo script. | <<Anchor(script)>> = Script = |
Linea 54: | Linea 95: |
Apriamo un editor di testo qualsiasi e inseriamo le seguenti righe: {{{#!python #!/usr/bin/python print "Hello World!" |
Come esempio pratico verrà creato un file con del codice '''Python 3''' al suo interno che potrà essere richiamato dal terminale per essere eseguito. <<Anchor(primo)>> == Primo metodo == 0. Aprire un [[Ufficio/EditorDiTesto|editor di testo]] e inserire le seguenti righe:{{{ print("Ciao mondo!") }}} 0. Salvare nella propria '''Home''' il file come `ciao.py`. 0. Da [[AmministrazioneSistema/RigaDiComando|terminale]] digitare:{{{ python3 ciao.py }}} 0. Verrà restituita la scritta:{{{ Ciao mondo! |
Linea 59: | Linea 111: |
Salviamo il file come `hello.py` e impostiamone i permessi di esecuzione: {{{ chmod a+x hello.py |
<<Anchor(secondo)>> == Secondo metodo == Nel comando del [[#primo|primo metodo]] `python3 ciao.py` può essere evitata la digitazione del termine `python3`, inserendo all'inizio dello script la direttiva:{{{ #!/usr/bin/env python3 #!/usr/bin/env python3 }}}In alternativa è comune trovare la forma `#!/usr/bin/python3`. 0. Modificare il contenuto dello script in modo che risulti:{{{ #!/usr/bin/env python3 #!/usr/bin/env python3 print("Ciao mondo!") }}} 0. Rendere lo script eseguibile con il comando:{{{ chmod u+x ciao.py }}} 0. Lanciare quindi lo script con il comando:{{{ ./ciao.py }}}che restituirà la scritta:{{{ Ciao mondo! |
Linea 63: | Linea 134: |
Ora eseguiamo lo script: {{{ python hello.py |
== Alcune differenze con Python 2 == * Partendo dallo script [[#primo|iniziale]] in '''Python 3''' si nota già una differenza fondamentale nella sintassi. L'istruzione `print` è stata sostituita in '''Python 3''' con la funzione `print()`. In '''Python 2''' il comando nello script è:{{{ print "Ciao mondo!" }}} * Il comando di avvio del primo metodo deve essere adattato alla versione '''2''' di '''Python''', pertanto diviene:{{{ python2 ciao.py }}}oppure semplicemente:{{{ python ciao.py }}} * Andando a inserire la direttiva `#!/usr/bin/env python3` come nel [[#secondo|secondo metodo]], anch'essa dovrà essere rapportata a '''Python 2''', quindi:{{{ #!/usr/bin/env python2 #!/usr/bin/env python2 }}}oppure semplicemente:{{{ #!/usr/bin/env python #!/usr/bin/env python |
Linea 67: | Linea 152: |
Se non è sbagliato qualcosa, si dovrebbero vedere le parole "Hello World!" stampate a video. | = Esempi di script = |
Linea 69: | Linea 154: |
= Esempi = | Nelle pagine a seguire, sono presenti diversi script esemplificativi a difficoltà crescente: |
Linea 71: | Linea 156: |
Ora che vi abbiamo un po' incuriosito vi proponiamo in questa sezione diversi script esemplificativi a difficoltà crescente. | * [[Programmazione/Python/Listati|Listati]]: esempi di alcuni programmi scritti in Python a difficoltà crescente. * [[Programmazione/Python/InterfacceGrafiche|Interfacce grafiche]]: esempi di alcuni programmi scritti in Python con semplice interfaccia grafica. |
Linea 73: | Linea 159: |
[[Immagine(Icone/Piccole/note.png,,left)]] Tutto ciò che viene scritto preceduto dal carattere # è considerato dall'interprete come un commento.[[BR]][[BR]] [[BR]] [[Anchor(areatriangolo1)]] {{{#!python #!/usr/bin/python# import sys import string import math ''' questa è un'area di commento che uso per indicare cosa fa il programa o sorgente o script il programma principale o il main calcola l'area di un triangolo qualsiasi noti i suoi tre lati usando la formula di Erone formula sqrt p*(p-a)*(p-b)*p(-c) sqrt = radice quadrata, p = (a+b+c)/2 a,b,c lati salvatelo sul disco con il nome che vi propongo AreaTriangolo.py o come più vi piace ''' a = input('inserisci il primo lato ') print ' primo lato = ',a b = input('inserisci il secondo lato ') print ' secondo lato = ',b c = input('inserisci il terzo lato ') print ' terzo lato = ',c print " ora calcolo l'area di questo triangolo" p = (a+b+c)/2 s = math.sqrt(p*(p-a)*(p-b)*(p-c)) |
<<Anchor(guide)>> = Guide per principianti = |
Linea 99: | Linea 162: |
print " l'area del triangolo e' =" ,s }}} ''Listato del programma Area``Triangolo.py'' [[BR]][[BR]] |
I seguenti testi (principalmente in '''inglese''') sono indicati per chiunque si voglia avvicinare per la prima volta a un linguaggio di programmazione. |
Linea 103: | Linea 164: |
Il programma precedente termina se durante l'inserimento dei dati, per errore, viene digitato un carattere non numerico. È necessario quindi inserire un controllo sul dato immesso. A questo scopo è stato preparato questo altro programmino che slaviamo nel file `AreaTriangolo2.py`: [[Anchor(areatriangolo2)]] {{{#!python #!/usr/bin/python import sys import math import string i = 0 l=[] while True: a= raw_input('inserisci il '+str(i+1)+' lato ') for j in range(len(a)) : errato = 'F' if a[j] in string.digits: errato = 'F' continue #continua il ciclo for else: errato = 'T' print "hai digitato qualcosa che non è un numero.Riprova" break # termina il ciclo for if errato =='T': continue #continua il ciclo while i +=1 l.append(float(a)) # completata la verifica che il dato inserito e' una cifra viene trasformata in un numero a virgola mobile e inserita in un array if errato =='F'and i <3: # questo controllo ci serve per riprendere l'inserimento dei dati dopo aver completato il controlo # sul dato precedente continue # continua il ciclo while per passare al successivo input elif errato =='F' and i >=3: |
== Python 2 == |
Linea 134: | Linea 166: |
print ' primo lato = ',l[0] print ' secondo lato = ',l[1] print ' terzo lato = ',l[2] p = (l[0]+l[1]+l[2])/2.0 # calcola il semi perimetro if p > l[0] and p>l[1] and p >l[2]: print " ora calcolo l'area di questo triangolo" break # esce dal ciclo while per fine input else: print "questi lati non appartengono ad un triangolo. Riprova " i =0 l=[] continue # continua nel ciclo while per ricominciare i nuovi input |
* [[http://www.python.it/doc/Howtothink/Howtothink-html-it/index.htm|Pensare da informatico]] di Allen B. Downey, Jeffrey Elkner e Chris Meyers (in '''italiano'''). * [[https://learnpythonthehardway.org/book|Learn Python the hard way]] di Zed A. Shaw. * [[http://www.python.it/doc/AGauld/index.html|Imparare a programmare]] di Alan Gauld (in '''italiano'''). |
Linea 154: | Linea 170: |
== Python 3 == | |
Linea 156: | Linea 172: |
s = math.sqrt(p*(p-l[0])*(p-l[1])*(p-l[2])) | * [[https://www.programmareinpython.it/programmare-in-python/|programmareinpython.it]]: video corso con testo riportato di ogni lezione (in '''italiano'''). * [[https://github.com/AllenDowney/ThinkPythonItalian/blob/master/thinkpython_italian.pdf|Pensare da informatico]] di Allen B. Downey, Jeffrey Elkner e Chris Meyers (in '''italiano'''). * [[http://interactivepython.org/courselib/static/thinkcspy/index.html|How to think like a computer scientist]] riadattata da Brad Miller and David Ranum. * [[https://learnpythonthehardway.org/python3|Learn Python the hard way]] di Zed A. Shaw. * [[https://en.wikibooks.org/wiki/Non-Programmer's_Tutorial_for_Python_3|Non-Programmer's Tutorial for Python 3]] di Josh Cogliati. |
Linea 158: | Linea 178: |
print " l'area del triangolo e' =" ,s print "Fine programma " }}} ''Listato del programma Area``Triangolo2.py'' [[BR]][[BR]] |
= Ulteriori risorse = |
Linea 164: | Linea 180: |
Mostriamo anche un'alternativa che utilizza le classi e la gestione delle eccezioni modificando il programma precedente: {{{#!python #!/usr/bin/python |
* [[https://www.python.org|Sito ufficiale]] * [[https://docs.python.org|Documentazione ufficiale]] * [[http://www.python.it|Comunità italiana di Python]] * [[https://it.wikipedia.org/wiki/Python|Voce enciclopedica]] |
Linea 168: | Linea 185: |
# Importiamo la funzione sqrt (radice quadrata) dal modulo math from math import sqrt # Definiamo una classe Triangolo con tre metodi: # un costruttore, un metodo che calcola il perimetro e uno che calcola l'area del triangolo. class Triangolo: # Attributi della classe (le misure dei tre lati) a, b, c = 0, 0, 0 # Metodo costruttore def __init__(self,a,b,c): # Controlliamo se i tre valori dati possono effettivamente essere le misure dei lati di un triangolo. # Caso contrario solleviamo una bella eccezione! if ((a+b>c) and (a+c>b) and (b+c>a)): self.a=a self.b=b self.c=c else: raise Exception # Metodo che calcola il perimetro def perimetro(self): return self.a + self.b + self.c # Metodo che calcola l'area (tramite formula di Erone) def area(self): p=self.perimetro()/2.0 return sqrt(p*(p-self.a)*(p-self.b)*(p-self.c)) while True: # Chiediamo all'utente di immettere le misure dei lati print "\nInserire le misure dei lati:" lati=[] for lato in ['a','b','c']: while True: try : l=raw_input("\tMisura del lato "+lato+": ") lati.append(float(l)) break except ValueError: print "\nDevi inserire valori numerici. Riprova.\n" try : # Creiamo una nuova istanza della classe Triangolo. # In pratica facciamo una chiamata al suo metodo costruttore. # Sarebbe stato lo stesso scrivere "triangolo=Triangolo.__init__(a,b,c)" triangolo=Triangolo(lati[0],lati[1], lati[2]) # Utilizziamo i metodi definiti in precedenza per ottenere perimetro ed area dell'oggetto triangolo, # e stampiamo a video i risultati. print "" print "Perimetro = ", triangolo.perimetro() print "Area = ", triangolo.area() # Chiediamo all'utente se terminare il programma. exit=raw_input("\nUscire [digitare 's' per confermare]? ") print "" if exit=="s": break except: print "\nUn triangolo con queste misure non esiste. Riprova." }}} ''Listato del programma Area``Triangolo2.py con eccezioni'' [[BR]][[BR]] Ora supponiamo di dover calcolare l'area di un appezzamento di terreno di svariati ettari scomposto in un numero finito di triangoli.[[BR]] Una volta nota l'area, supponiamo che debba essere divisa, per volontà testamentaria, in tre parti in funzione dell'età di tre fratelli i cui nomi sono Angelo, Alberto, Amilcare o come volete voi. Useremo lo stesso programma [#areatriangolo2 AreaTriangolo2.py], con qualche modifica o aggiunta, che chiameremo `AreaTriangolo3.py`: {{{#!python #!/usr/bin/python import sys import math import string # fase di input nomi = [] eta= [] lati= [] x= 1 while x <=3: a= raw_input('Inserici nome '+str(x)+' fratello ') #verifichiamo l'input immesso errore = 'F' for i in range(len(a)): if a[i] in string.letters: continue else: if i <= len(a): print "errore nell'immettere il nome .riprova" errore = 'T' break if errore == "T": continue else: # lo rendiamo tutto maiuscolo indipendentemente se lo sia o meno nomi.append(string.upper(a)) print nomi x +=1 #ora prendiamo in input le loro eta x = 0 while x < range(len(nomi)): a= raw_input("inserisci l'eta di "+nomi[x]+' ') for j in range(len(a)) : errato = 'F' if a[j] in string.digits: errato = 'F' continue #continua il ciclo for else: errato = 'T' print "hai digitato qualcosa che non è un numero.Riprova" break # termina il ciclo for if errato =='T': continue #continua il ciclo while x +=1 eta.append(int(a)) if errato =='F'and x <3: continue # continua il ciclo while per passare al successivo input elif errato =='F' and x >=3: print ' Eta di' +nomi[0] +" "+ str( int(eta[0])) print ' Eta di' +nomi[1] +" "+ str( int(eta[1])) print ' Eta di' +nomi[2] +" "+ str( int(eta[2])) break #input dei dati per il calcolo dell'area dell'appezzamento i = 0 l=[] tria = [] while True: a= raw_input('inserisci il '+str(i+1)+' lato ') for j in range(len(a)) : errato = 'F' if a[j] in string.digits: errato = 'F' continue #continua il ciclo for else: errato = 'T' print "hai digitato qualcosa che non è un numero.Riprova" break # termina il ciclo for if errato =='T': continue #continua il ciclo while i +=1 l.append(float(a)) if errato =='F'and i <3: # questo controllo verifica se abbiamo termianto i dati in input relativi ad un triangolo continue # continua il ciclo while per passare al successivo input elif errato =='F' and i >=3: # qui avendo termianto l'input dei dati relativi ad un trinagolo li ripresenta a video per maggior chiarezza print ' primo lato = ',l[0] print ' secondo lato = ',l[1] print ' terzo lato = ',l[2] p = (l[0]+l[1]+l[2])/2.0 if p > l[0] and p>l[1] and p >l[2]: print " l'area di questo triangolo e' calcolabile" tria.append(l) l=[] si = raw_input(" hai finito di immettere lati dei triangoli ? conferma con S/s ") if si == "S" or si =='s': print "Inizia la fase di calcolo " break # esce dal ciclo while per fine input else: i =0 l=[] continue # continua nel ciclo while per input dati nuovo triangolo else: print "questi lati non appartengono ad un triangolo. Riprova " i =0 l=[] continue # continua nel ciclo while perche dati in input del triangolo errati #fase di calcolo area appezzamento n = len(tria) # il calcolo dell'area verrà ripetuto n volte una per ogni triangolo p = 0 stot = 0 for i,l in enumerate(tria): for j in range( len(l)): print l[j] p = p+l[j] print "semiper. nel "+str(i+1)+ " triangolo = "+ str(p/2.0) p=p/2.0 s = math.sqrt(p*(p-l[0])*(p-l[1])*(p-l[2])) print "area "+str(i+1)+ " triangolo = "+ str(s) stot = stot +s p=0 print "l'area totale dell'appezamento di terreno e di mq " + str(stot) print "ora calcoliamo quanto terreno spetta a ciascuno dei tre fratelli" seta = 0 for i in eta: seta=seta+i areau =(stot/seta) for i in eta: a =areau*i nomi.append(a) for i in range(0,3): print "l'area spettante a " +nomi[i] + " somma mq. "+ str(nomi[i+3]) print' Fine programma ' }}} ''Listato del programma Area``Triangolo3.py'' [[BR]][[BR]] Questo programma cosi com'è realizzato è un po' troppo lungo e considerati i numerosi cicli in esso contenuto può farci incorrere in errori. Come possiamo renderlo piu snello e piu facilemnte governabile? = Risorse = * [http://www.python.it/] {it} [[BR]] Il sito di riferimento per i programmatori python italiani! Qui potete trovare le traduzioni in italiano della documentazione ufficiale nonchè le FAQ sul linguaggio. * [http://www.python.org/] {en} [[BR]] Il sito ufficiale del linguaggio python. Trovate la documentazione in inglese aggiornata all'ultima versione dell'interprete, in più tutte le novità e le iniziative che ruotano intorno a questo linguaggio. |
|
Linea 402: | Linea 186: |
CategoryNuoviDocumenti | CategoryProgrammazione |
Problemi in questa pagina? Segnalali in questa discussione
Introduzione
Python è un linguaggio di programmazione ad alto livello che ha raggiunto una grandissima popolarità ed è utilizzato in molti ambiti, dall'utilizzo di semplici script personali fino alla creazione di progetti altamente professionali.
L'utilizzo di una sintassi pulita e ordinata legate a una certa facilità di utilizzo, hanno fatto si che col tempo Python si sia rivelato ottimale come primo linguaggio da imparare per chi è interessato ad affacciarsi al mondo della programmazione.
La seguente pagina intende solo mostrare come utilizzare gli strumenti basilari su Ubuntu. Per approfondire l'utilizzo di Python si rimanda alla copiosa documentazione presente sul web. Nel capitolo Guide per principianti sono presenti alcune delle più apprezzate guide per muovere i primi passi.
Versioni Python 2 e 3
Su Ubuntu vengono preinstallate 2 differenti versioni: Python 2 e Python 3.
La nascita della versione 3 ha determinato un punto di rottura con il passato, tanto che le due versioni sono incompatibili fra loro. La versione 2, più precisamente Python 2.7 sarà supportata fino al 2020. Nel frattempo non verrà ulteriormente sviluppata, ricevendo solo aggiornamenti di sicurezza.
Questo ha generato una lenta situazione di transizione, dove lo sviluppo di nuove funzionalità è incentrato su Python 3 ma una mole considerevole di progetti si basano ancora su Python 2.
Situazione su Ubuntu
Desktop: con il pacchetto di installazione python, così come il comando da terminale, si intende la versione 2.7. Il pacchetto python3 e il relativo comando da terminale fanno riferimento, a seconda della versione di Ubuntu utilizzata, alla versione 3.4, 3.5, ecc..
Pertanto col generico python sul desktop Ubuntu si intende ancora la versione 2.Mobile: su Ubuntu Phone è installata in modo predefinito la sola versione 3, nominata python3.
Shell python
Come consuetudine per la realizzazione di programmi si utilizzano file di testo sui quali scrivere il codice sorgente (vedere relativo capitolo). Tuttavia è possibile avviare all'interno del terminale una shell python interattiva sulla quale poter testare porzioni di codice.
Python 3: il comando:
python3
avvierà la versione 3 predefinita sul proprio sistema, ad es. la 3.4 su Ubuntu 14.04:
Python 3.4.3 (default, Nov 17 2016, 01:08:31) [GCC 4.8.4] on linux Type "help", "copyright", "credits" or "license" for more information. >>>
Se sono state installate versioni successive, ad es. la 3.5 e la si vuole utilizzare, sarà sufficiente specificarlo nel comando:
python3.5
Avviare il terminale.
Python 2: il comando:
python2
oppure semplicemente:
python
avvierà la versione 2.7. Oltre al prompt dei comandi verrà visualizzata l'intestazione:
Python 2.7.6 (default, Oct 26 2016, 20:30:19) [GCC 4.8.4] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>>
Esempi in Python 3
Per testare i seguenti esempi è sufficiente digitare i comandi che appaiono accanto alla tripla freccia del prompt (>>>) e quindi premere Invio. |
Alcune semplici istruzioni da passare al prompt per stampare scritte e per effettuare calcoli aritmetici. Le stringhe devono essere inserite in mezzo alle virgolette " ", mentre i numeri vengono digitati così come sono:
>>> print("Hello World!") Hello World! >>> print(2+3) 5 >>> print("2 + 3 = ", 2+3) 2 + 3 = 5
Per indicare i blocchi di codice si usa l'indentazione creata tramite il tasto TAB (Tab ⇆). In Python non è solo una buona abitudine del programmatore ma è obbligatoria. Per esempio il codice appartenente a un ciclo deve essere indentato:
>>> i = 0 >>> while i < 4: ... i += 1 ... print("il doppio di", i, " e' ", i*2) ... il doppio di 1 e' 2 il doppio di 2 e' 4 il doppio di 3 e' 6 il doppio di 4 e' 8
Altrimenti succede questo:
>>> i = 0 >>> while i < 4: ... i += 1 File "<stdin>", line 2 i += 1 ^ IndentationError: expected an indented block
Uscire dall'interprete premendo Ctrl+D, oppure digitando il comando:
>>> exit()
Script
Come esempio pratico verrà creato un file con del codice Python 3 al suo interno che potrà essere richiamato dal terminale per essere eseguito.
Primo metodo
Aprire un editor di testo e inserire le seguenti righe:
print("Ciao mondo!")
Salvare nella propria Home il file come ciao.py.
Da terminale digitare:
python3 ciao.py
Verrà restituita la scritta:
Ciao mondo!
Secondo metodo
Nel comando del primo metodo python3 ciao.py può essere evitata la digitazione del termine python3, inserendo all'inizio dello script la direttiva:
#!/usr/bin/env python3
In alternativa è comune trovare la forma #!/usr/bin/python3.
Modificare il contenuto dello script in modo che risulti:
#!/usr/bin/env python3 print("Ciao mondo!")
Rendere lo script eseguibile con il comando:
chmod u+x ciao.py
Lanciare quindi lo script con il comando:
./ciao.py
che restituirà la scritta:
Ciao mondo!
Alcune differenze con Python 2
Partendo dallo script iniziale in Python 3 si nota già una differenza fondamentale nella sintassi. L'istruzione print è stata sostituita in Python 3 con la funzione print(). In Python 2 il comando nello script è:
print "Ciao mondo!"
Il comando di avvio del primo metodo deve essere adattato alla versione 2 di Python, pertanto diviene:
python2 ciao.py
oppure semplicemente:
python ciao.py
Andando a inserire la direttiva #!/usr/bin/env python3 come nel secondo metodo, anch'essa dovrà essere rapportata a Python 2, quindi:
#!/usr/bin/env python2
oppure semplicemente:
#!/usr/bin/env python
Esempi di script
Nelle pagine a seguire, sono presenti diversi script esemplificativi a difficoltà crescente:
Listati: esempi di alcuni programmi scritti in Python a difficoltà crescente.
Interfacce grafiche: esempi di alcuni programmi scritti in Python con semplice interfaccia grafica.
Guide per principianti
I seguenti testi (principalmente in inglese) sono indicati per chiunque si voglia avvicinare per la prima volta a un linguaggio di programmazione.
Python 2
Pensare da informatico di Allen B. Downey, Jeffrey Elkner e Chris Meyers (in italiano).
Learn Python the hard way di Zed A. Shaw.
Imparare a programmare di Alan Gauld (in italiano).
Python 3
programmareinpython.it: video corso con testo riportato di ogni lezione (in italiano).
Pensare da informatico di Allen B. Downey, Jeffrey Elkner e Chris Meyers (in italiano).
How to think like a computer scientist riadattata da Brad Miller and David Ranum.
Learn Python the hard way di Zed A. Shaw.
Non-Programmer's Tutorial for Python 3 di Josh Cogliati.