Dimensione: 10658
Commento:
|
Dimensione: 15696
Commento: ordinato e aggiornato paragrafo versioni 2 e 3
|
Le cancellazioni sono segnalate in questo modo. | Le aggiunte sono segnalate in questo modo. |
Linea 1: | Linea 1: |
Python è un linguaggio di programmazione molto versatile e di alto livello. Utilizzato sia per lo scripting che per la realizzazione di programmi completi. E' interpretato, orientato agli oggetti ed estensibile tramite il linguaggio C. == Introduzione == Python è un linguaggio di programmazione ideato da Guido Von Rossum nel 1991 e derivato da un precedente linguaggio chiamato ABC. E' 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++: gui (wxpython, pygtk...), tool per lo svilippo di giochi (pygame,pysdl...), databases (mysqldb...) ...[[BR]] E' un linguaggio di alto livello ed 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]] E' 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 == Risorse == In lingua italiana: '''Python.it'''[[BR]] http://www.python.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. In lingua inglese: '''Pyhton.org'''[[BR]] http://www.python.org/ [[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. == Installazione == Con l'installazione standard di ubuntu l'interprete python dovrebbe già essere installato sulla vostra macchina, in caso contrario è sufficiente installare il pacchetto python da Synaptic o da riga di comando: ''sudo apt-get install python'' == Verifica della configurazione == Bene ora non vi reste che lanciare l'interprete interattivo e fare pratica. Aprite una shell e digitate python [INVIO][[BR]] Dovrebbe apparirvi qualcosa tipo questo: {{{ Python 2.4.3 (#2, Apr 27 2006, 14:43:58) [GCC 4.0.3 (Ubuntu 4.0.3-1ubuntu5)] on linux2 |
## page was renamed from LinguaggioPython ## page was renamed from Linguaggio Python #format wiki #language it <<BR>> <<Indice(depth=2)>> <<Informazioni(forum="http://forum.ubuntu-it.org/viewtopic.php?t=443446"; rilasci="22.04 20.04 18.04 16.04")>> = Introduzione = '''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. 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|Guide per principianti]] sono presenti alcune delle più apprezzate guide per muovere i primi passi. = Python 2 e 3 = '''Python''' è stato concepito già negli anno '80. Viene rilasciato Python 1.0 nel 1994, mentre la versione 2.0 vede la luce nel 2000. Nel 2008 viene rilasciata la versione '''3''', che ha determinato un punto di cesura con la versione 2, tant'è che le due versioni sono incompatibili fra di loro. Dopo un lungo periodo di convivenza fra '''Python 2''' e '''Python 3''', caratterizzato da una lenta fase di transizione, si è giunti al [[https://www.python.org/doc/sunset-python-2/|termine del supporto di Python 2]] il 1 gennaio del 2020. Ciò vuol dire che per la versione 2 non sono garantiti implementazioni e correzioni di bug, anche relativi alla sicurezza.<<BR>> Si consideri tuttavia che, nonostante lo sviluppo di nuove funzionalità sia incentrato su '''Python 3''', una mole considerevole di progetti sono ancora basati su '''Python 2'''. == Situazione su Ubuntu == * '''Ubuntu 22.04''': è preinstallata solo la versione '''Python 3.10'''; la versione '''Python 2.7''' è disponibile nei repository. * '''Ubuntu 20.04''': è preinstallata solo la versione '''Python 3.8'''; la versione '''Python 2.7''' è disponibile nei repository. * '''Ubuntu 18.04''': sono preinstallate le due differenti versioni '''Python 2.7''' e '''Python 3.6'''. == Repository di terze parti == Oltre a quelle presenti nei [[Repository|repository ufficiali]], sono disponibili altre versioni di '''Python''', utili sia per soddisfare le necessità di versioni differenti per software provenienti da fonti terze, sia per provare versioni più recenti. Le versioni disponibili sono: * '''Ubuntu 22.04''': Python 3.7, Python3.8, Python3.9 e Python 3.11 Python 3.12 * '''Ubuntu 20.04''': Python 3.5, Python 3.6, Python 3.7, Python3.9, Python3.10 e Python 3.11, Python 3.12 * '''Ubuntu 18.04''': Python2.3, Python 2.4, Python 2.5, Python 2.6, Python 3.1, Python 3.2, Python 3.3, Python 3.4, Python 3.5, Python 3.7, Python 3.8, Python3.9, Python 3.10 e Python 3.11 ##Non cancellare questa nota, probabilmente sarà utile per Python 4 ##{{{#!wiki important ##Python 3.11, seppur sufficientemente stabile per uso comune, è ancora in fase beta. Si consiglia di usarlo solo per test e/o sviluppo. ##}}} Per installare queste versioni: 0. Digitare nel [[AmministrazioneSistema/Terminale|terminale]] i comandi per aggiungere i '''PPA deadsnakes team''':{{{ sudo add-apt-repository ppa:deadsnakes/ppa sudo apt update }}} 0. [[AmministrazioneSistema/InstallareProgrammi|Installare]] i pacchetti desiderati (per facilitare la ricerca è possibile utilizzare l'apposita [[AmministrazioneSistema/InstallareProgrammi/Apt#Altre_operazioni|funzione]] oppure un [[AmministrazioneSistema/InstallareProgrammi#Tramite_interfaccia_grafica|gestore pacchetti]] dotato di interfaccia grafica). 0. Al termine dell'installazione riavviare il sistema. == Ubuntu desktop e mobile == * '''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.6''', '''3.8''' o '''3.10'''.<<BR>>Pertanto con il 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'''. == Distribuzione Anaconda == {{{#!wiki note L'applicazione '''Anaconda''' ha una dimensione di diverse centinaia di megabyte, occorre quindi uno spazio d'archiviazione nel sistema sufficientemente ampio per poterlo installare. Si consiglia una dimensione d'almeno 1 gigabyte.}}} ##Non ho potuto verificare se è ancora disponibile il ''Python 2'''. [[https://www.anaconda.com/|Anaconda]] è una distribuzione di '''Python''', sia in versione '''Python 2''' che '''Python 3''', realizzata specificatamente per la [[https://it.wikipedia.org/wiki/Scienza_dei_dati|data science]]. Per installarla sul proprio sistema e utilizzarla come versione '''Python''' di default seguire i seguenti passaggi. 0. Scaricare '''Anaconda''' dalla [[https://www.anaconda.com/download/|pagina ufficiale]], facendo clic sul tasto '''Download''' in alto a destra nella casella '''Anaconda Distribution'''. La versione necessaria viene normalmente riconosciuta automaticamente; si può in ogni caso scegliere una versione per un sistema operativo differente facendo clic sul tasto '''Get Additional Installers'''. 0. [[AmministrazioneSistema/PermessiFile#Operazioni_comuni|Assegnare i permessi di esecuzione]] al file appena scaricato. 0. Aprire un [[AmministrazioneSistema/Terminale|terminale]] e [[AmministrazioneSistema/ComandiBase#cd|spostarsi]] nella cartella dove è stato scaricato il file. 0. Digitare il comando:{{{ ./Anaconda*.sh }}} 0. Quando richiesto, premere '''Invio''' per leggere la licenza d'uso. 0. Scorrere tutta la licenza d'uso premendo ripetutamente il tasto '''Invio''', poi digitare '''yes''' e premere '''Invio'''. 0. Scegliere in quale cartella installare Anaconda. Di default è impostata la propria '''Home'''. 0. Digitare '''Yes''' alla richiesta di aggiornare il file `~/.bashrc`. 0. Scegliere a seconda delle proprie esigenze se installare o meno '''Microsoft VS Studio''' digitando rispettivamente '''Yes''' o '''No'''. = 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 [[AmministrazioneSistema/Terminale|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.6 su Ubuntu 18.04:{{{ Python 3.6.9 (default, Oct 8 2020, 12:12:24) [GCC 8.4.0] on linux |
Linea 45: | Linea 88: |
>>> }}} Adesso proviamo qualche semplice comando: {{{ >>> print "Hello World!" |
>>>" }}}Se sono state installate versioni successive, ad es. la 3.7 e la si vuole utilizzare, sarà sufficiente specificarlo nel comando:{{{ python3.7 }}} * '''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 == {{{#!wiki tip 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 [[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 57: | Linea 114: |
>>> print 2+3 | >>> print(2+3) |
Linea 59: | Linea 116: |
>>> print "2 + 3 = ", 2+3 | >>> print("2 + 3 = ", 2+3) |
Linea 63: | Linea 120: |
Usciamo dall'interprete premendo CTRL+D oppure digitando {{{ >>> import sys >>> sys.exit() }}} Proviamo a realizzare un piccolo script! Aprite un editor di testo qualsiasi e scrivete: {{{ #!/usr/bin/python print "Hello World!" }}} Salvate in in un file hello.py Adesso aprite una shell e spostatevi nella cartella dove avete salvato il file: {{{ cd cartella_dove_avete_salvato_lo_script }}} date i permessi di esecuzione: {{{ chmod a+x hello.py }}} e lanciate lo script: {{{ python hello.py }}} Se non avete sbagliato qualcosa dovreste vedere le parole "Hello World!" stampate a video. |
* 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() }}} = Impostare versione Python3 = Da predefinito il sistema usa la versione preinstallata, per impostare l'uso d'una versione installata a posteriori è sufficiente modificare il collegamento simbolico al comando base. Nel seguente esempio si sostituisce la versione predefinita '''3.6''' con la '''3.7'''. 0. Visualizzare le versioni installate digitando nel [[AmministrazioneSistema/Terminale|terminale]] il comando:{{{ ls /usr/bin/python* -l }}}mostrerà una lista simile:{{{ lrwxrwxrwx 1 root root 9 mag 6 2018 /usr/bin/python -> python2.7 lrwxrwxrwx 1 root root 9 mag 6 2018 /usr/bin/python2 -> python2.7 -rwxr-xr-x 1 root root 3628976 set 30 15:38 /usr/bin/python2.7 lrwxrwxrwx 1 root root 9 ott 25 2018 /usr/bin/python3 -> python3.6 -rwxr-xr-x 2 root root 4526456 ott 8 14:12 /usr/bin/python3.6 lrwxrwxrwx 1 root root 9 ott 25 2018 /usr/bin/python3m -> python3.6m -rwxr-xr-x 2 root root 4526456 ott 8 14:12 /usr/bin/python3.6-config lrwxrwxrwx 1 root root 9 ott 25 2018 /usr/bin/python3.7 -rwxr-xr-x 2 root root 4526456 ott 8 14:12 /usr/bin/python3.7m -rwxr-xr-x 2 root root 4526456 ott 8 14:12 /usr/bin/python3.7-config }}} 0. Per sostituire l a versione '''3.6''' con la versione '''3.7''' digitare i comandi:{{{ sudo rm /usr/bin/python3 sudo rm /usr/bin/python3m sudo rm /usr/bin/python3-config sudo ln -s /usr/bin/python3.7 /usr/bin/python3 sudo ln -s /usr/bin/python3.7m /usr/bin/python3m sudo ln -s /usr/bin/python3.7-config /usr/bin/python3-config }}} {{{#!wiki note I collegamenti da sostituire sono individuabili nella lista mostrata dal primo comando dalla presenza del simbolo '''->''' nella stringa. }}} {{{#!wiki important Non miscelare i collegamenti simbolici ai Python2 e 3, poiché sono incompatibili tra loro. }}} Riavviare il sistema per rendere effettiva la modifica. <<Anchor(script)>> = 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. <<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/Terminale|terminale]] digitare:{{{ python3 ciao.py }}} 0. Verrà restituita la scritta:{{{ Ciao mondo! }}} <<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! }}} == 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 }}} = Guide di approfondimento = * [[Programmazione/Python/Listati|Listati Python 2]]: esempi script esemplificativi presenti in alcuni programmi scritti in '''Python 2''' a difficoltà crescente. * [[Programmazione/Python/ListatiPython3|Listati Python 3]]: esempi script esemplificativi presenti in alcuni programmi scritti in '''Python 3''' a difficoltà crescente. * [[Programmazione/Python/Pip|Pip]]: guida a '''pip''', gestore di pacchetti per '''Python''', utile per installare moduli, librerie, frameworks, vari software per sviluppo, ricerca scientifica, svago ecc. * [[Programmazione/Python/InterfacceGrafiche|Interfacce grafiche]]: esempi di alcuni programmi scritti in '''Python 2.7.xx''' con semplice interfaccia grafica. * [[Programmazione/Python/InterfacceGrafichePython3|Interfacce grafiche Python 3]]: esempi di alcuni programmi scritti in '''Python 3.x''' con semplice interfaccia grafica. * [[Programmazione/Python/Glade|Glade]]: guida a '''Glade''', strumento per creare interfacce grafiche in '''GTK+''' compatibili con '''Python'''. <<Anchor(guide)>> = 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 == * [[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'''). == Python 3 == * [[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. = Ulteriori risorse = * [[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 99: | Linea 278: |
CategoryComunita Ora che vi abbiamo un po incuriosito vi proponiamo un'altro script a difficoltà crescente # tutto cio che scrivo preceduto dal segno # viene considerato un commento # questo è un commento {{{ #!/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 usiamo 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 Area_triangolo.py o come piu' 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)) print " l'area del triangolo e' =" ,s }}} [[BR]] Questo semplice programma abortisce se nell'inserire il dato per errore digitiamo un carattere non numerico. E' necessario quindi ricorrrere al controllo del dato immesso. A questo scopo è stato preparato questo altro programmino che Chiamiamo Area_Triangolo2.py {{{ #!/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)) if errato =='F'and i <3: continue # continua il ciclo while per passare al successivo input elif errato =='F' and i >=3: 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 " 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 # contonua nel ciclo while per ricominciare i nuovi input s = math.sqrt(p*(p-l[0])*(p-l[1])*(p-l[2])) print " l'area del triangolo e' =" ,s print "Fine programma "" }}} [[BR]] Ora supponiamo di dover calcolare l'area di un appezzamento di terreno di svariati ettari e che noi abbiamo scomposto in un numero finito di triangoli; una volta nota l'area supponiamo che debba essere divisa, per volontà testamentarie, in tre parti in funzione dell'età di tre fratelli I cui Nomi sono Angelo,Alberto,Amilcare o com volete voi. [[BR]] Useremo lo stesso programma Area_Triangolo 2 con qualche modifica o aggiunta e che chiameremo Area_Triangolo3:py {{{ #!/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: continue # continua il ciclo while per passare al successivo input elif errato =='F' and i >=3: 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 ' }}} [[BR]] Questo programma cosi come è 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?[[BR]] Si Lascia al lettore questo compito facendo presente che ci sono diverse soluzioni che attendiamo come segno tangibile della attenzione che ci avete prestato. |
CategoryProgrammazione |
Guida verificata con Ubuntu: 20.04 22.04
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.
Python 2 e 3
Python è stato concepito già negli anno '80. Viene rilasciato Python 1.0 nel 1994, mentre la versione 2.0 vede la luce nel 2000. Nel 2008 viene rilasciata la versione 3, che ha determinato un punto di cesura con la versione 2, tant'è che le due versioni sono incompatibili fra di loro.
Dopo un lungo periodo di convivenza fra Python 2 e Python 3, caratterizzato da una lenta fase di transizione, si è giunti al termine del supporto di Python 2 il 1 gennaio del 2020. Ciò vuol dire che per la versione 2 non sono garantiti implementazioni e correzioni di bug, anche relativi alla sicurezza.
Si consideri tuttavia che, nonostante lo sviluppo di nuove funzionalità sia incentrato su Python 3, una mole considerevole di progetti sono ancora basati su Python 2.
Situazione su Ubuntu
Ubuntu 22.04: è preinstallata solo la versione Python 3.10; la versione Python 2.7 è disponibile nei repository.
Ubuntu 20.04: è preinstallata solo la versione Python 3.8; la versione Python 2.7 è disponibile nei repository.
Ubuntu 18.04: sono preinstallate le due differenti versioni Python 2.7 e Python 3.6.
Repository di terze parti
Oltre a quelle presenti nei repository ufficiali, sono disponibili altre versioni di Python, utili sia per soddisfare le necessità di versioni differenti per software provenienti da fonti terze, sia per provare versioni più recenti.
Le versioni disponibili sono:
Ubuntu 22.04: Python 3.7, Python3.8, Python3.9 e Python 3.11 Python 3.12
Ubuntu 20.04: Python 3.5, Python 3.6, Python 3.7, Python3.9, Python3.10 e Python 3.11, Python 3.12
Ubuntu 18.04: Python2.3, Python 2.4, Python 2.5, Python 2.6, Python 3.1, Python 3.2, Python 3.3, Python 3.4, Python 3.5, Python 3.7, Python 3.8, Python3.9, Python 3.10 e Python 3.11
Per installare queste versioni:
Digitare nel terminale i comandi per aggiungere i PPA deadsnakes team:
sudo add-apt-repository ppa:deadsnakes/ppa sudo apt update
Installare i pacchetti desiderati (per facilitare la ricerca è possibile utilizzare l'apposita funzione oppure un gestore pacchetti dotato di interfaccia grafica).
- Al termine dell'installazione riavviare il sistema.
Ubuntu desktop e mobile
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.6, 3.8 o 3.10.
Pertanto con il 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.
Distribuzione Anaconda
L'applicazione Anaconda ha una dimensione di diverse centinaia di megabyte, occorre quindi uno spazio d'archiviazione nel sistema sufficientemente ampio per poterlo installare. Si consiglia una dimensione d'almeno 1 gigabyte.
Anaconda è una distribuzione di Python, sia in versione Python 2 che Python 3, realizzata specificatamente per la data science. Per installarla sul proprio sistema e utilizzarla come versione Python di default seguire i seguenti passaggi.
Scaricare Anaconda dalla pagina ufficiale, facendo clic sul tasto Download in alto a destra nella casella Anaconda Distribution. La versione necessaria viene normalmente riconosciuta automaticamente; si può in ogni caso scegliere una versione per un sistema operativo differente facendo clic sul tasto Get Additional Installers.
Assegnare i permessi di esecuzione al file appena scaricato.
Aprire un terminale e spostarsi nella cartella dove è stato scaricato il file.
Digitare il comando:
./Anaconda*.sh
Quando richiesto, premere Invio per leggere la licenza d'uso.
Scorrere tutta la licenza d'uso premendo ripetutamente il tasto Invio, poi digitare yes e premere Invio.
Scegliere in quale cartella installare Anaconda. Di default è impostata la propria Home.
Digitare Yes alla richiesta di aggiornare il file ~/.bashrc.
Scegliere a seconda delle proprie esigenze se installare o meno Microsoft VS Studio digitando rispettivamente Yes o No.
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.6 su Ubuntu 18.04:
Python 3.6.9 (default, Oct 8 2020, 12:12:24) [GCC 8.4.0] on linux Type "help", "copyright", "credits" or "license" for more information. >>>"
Se sono state installate versioni successive, ad es. la 3.7 e la si vuole utilizzare, sarà sufficiente specificarlo nel comando:
python3.7
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()
Impostare versione Python3
Da predefinito il sistema usa la versione preinstallata, per impostare l'uso d'una versione installata a posteriori è sufficiente modificare il collegamento simbolico al comando base.
Nel seguente esempio si sostituisce la versione predefinita 3.6 con la 3.7.
Visualizzare le versioni installate digitando nel terminale il comando:
ls /usr/bin/python* -l
mostrerà una lista simile:
lrwxrwxrwx 1 root root 9 mag 6 2018 /usr/bin/python -> python2.7 lrwxrwxrwx 1 root root 9 mag 6 2018 /usr/bin/python2 -> python2.7 -rwxr-xr-x 1 root root 3628976 set 30 15:38 /usr/bin/python2.7 lrwxrwxrwx 1 root root 9 ott 25 2018 /usr/bin/python3 -> python3.6 -rwxr-xr-x 2 root root 4526456 ott 8 14:12 /usr/bin/python3.6 lrwxrwxrwx 1 root root 9 ott 25 2018 /usr/bin/python3m -> python3.6m -rwxr-xr-x 2 root root 4526456 ott 8 14:12 /usr/bin/python3.6-config lrwxrwxrwx 1 root root 9 ott 25 2018 /usr/bin/python3.7 -rwxr-xr-x 2 root root 4526456 ott 8 14:12 /usr/bin/python3.7m -rwxr-xr-x 2 root root 4526456 ott 8 14:12 /usr/bin/python3.7-config
Per sostituire l a versione 3.6 con la versione 3.7 digitare i comandi:
sudo rm /usr/bin/python3 sudo rm /usr/bin/python3m sudo rm /usr/bin/python3-config sudo ln -s /usr/bin/python3.7 /usr/bin/python3 sudo ln -s /usr/bin/python3.7m /usr/bin/python3m sudo ln -s /usr/bin/python3.7-config /usr/bin/python3-config
I collegamenti da sostituire sono individuabili nella lista mostrata dal primo comando dalla presenza del simbolo -> nella stringa.
Non miscelare i collegamenti simbolici ai Python2 e 3, poiché sono incompatibili tra loro.
Riavviare il sistema per rendere effettiva la modifica.
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
Guide di approfondimento
Listati Python 2: esempi script esemplificativi presenti in alcuni programmi scritti in Python 2 a difficoltà crescente.
Listati Python 3: esempi script esemplificativi presenti in alcuni programmi scritti in Python 3 a difficoltà crescente.
Pip: guida a pip, gestore di pacchetti per Python, utile per installare moduli, librerie, frameworks, vari software per sviluppo, ricerca scientifica, svago ecc.
Interfacce grafiche: esempi di alcuni programmi scritti in Python 2.7.xx con semplice interfaccia grafica.
Interfacce grafiche Python 3: esempi di alcuni programmi scritti in Python 3.x con semplice interfaccia grafica.
Glade: guida a Glade, strumento per creare interfacce grafiche in GTK+ compatibili con Python.
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.