Wiki Ubuntu-it

Indice
Partecipa
FAQ
Wiki Blog
------------------
Ubuntu-it.org
Forum
Chiedi
Chat
Cerca
Planet
  • Pagina non alterabile
  • Informazioni
  • Allegati
  • Differenze per "Programmazione/Python"
Differenze tra le versioni 21 e 46 (in 25 versioni)
Versione 21 del 24/09/2006 11.22.12
Dimensione: 11195
Commento:
Versione 46 del 11/04/2007 15.57.48
Dimensione: 5234
Autore: DavideLuigi
Commento:
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. ## page was renamed from Linguaggio Python
#language it
[[BR]]
||<tablestyle="float:right; font-size: 0.9em; width:40%; background:#F1F1ED; margin: 0 0 1em 1em;" style="padding:0.5em;">[[TableOfContents]]||
Linea 3: Linea 6:
== 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
= Introduzione =
Linea 11: Linea 8:
'''Python''' è un linguaggio di programmazione ideato da Guido Von Rossum nel 1991 e derivato da un precedente linguaggio chiamato ABC.
È interpretato e quindi eseguibile su ogni piattaforma per la quale ne esista l'interprete (Linux, Windows, Mac, Symbian ...).
Linea 12: Linea 11:
== Risorse == Python può appoggiarsi a diverse librerie per la creazione di GUI (wxpython, pygtk...), tool per lo sviluppo di giochi (pygame, pysdl...), per la lettura di file mpeg (pymad), database (mysqldb, ...).
Linea 14: Linea 13:
In lingua italiana: È 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! ;) ).
Linea 16: Linea 15:
'''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.
È nativamente un linguaggio orientato agli oggetti ma a differenza di altri linguaggi come il java permette anche uno stile procedurale e/o funzionale.
Linea 20: Linea 17:
In lingua inglese: Ideale per realizzare applicazioni velocemente, è 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.
Linea 22: Linea 19:
'''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 =
Linea 26: Linea 21:

== 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''
Con l'installazione predefinita di Ubuntu l'interprete python è già presente nel sistema. In caso contrario, è sufficiente installare il pacchetto ''python'' da utilizzando [:SynapticHowto:Synaptic] o da riga di comando: {{{
sudo apt-get install python
}}}
Linea 36: Linea 27:
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:
Bene ora non resta che lanciare l'interprete interattivo e fare pratica.
Linea 39: Linea 29:


{{{
Aprire un terminale e digitare: {{{
python
}}} Dovrebbe apparire qualcosa del tipo: {{{
Linea 48: Linea 38:
= Semplici comandi =
Linea 49: Linea 40:

Adesso proviamo qualche semplice comando:



{{{
Una volta avviato l'interprete, impariamo ad usarlo: {{{
Linea 62: Linea 48:
Per indicare i blocchi di codice si usa l'indentazione.
L'indentazione non è quindi solo una buona abitudine ma in Python è __obbligatoria__.
Ad esempio il codice appartenente ad un ''ciclo'' __deve__ essere indentato: {{{
 >>>> i=0
>>> while i < 10:
... i=i+1
... print "il doppio di",
... print i,
... print " e' ",
... print 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
il doppio di 5 e' 10
il doppio di 6 e' 12
il doppio di 7 e' 14
il doppio di 8 e' 16
il doppio di 9 e' 18
il doppio di 10 e' 20
>>>
}}}
Linea 63: Linea 72:
Altrimenti succede questo: {{{
>>> i=0
>>> while i < 10:
... i=i+1
  File "<stdin>", line 2
    i=i+1
    ^
IndentationError: expected an indented block
>>>
}}}
Linea 64: Linea 83:
Usciamo dall'interprete premendo CTRL+D oppure digitando

{{{
Usciamo dall'interprete premendo «`Ctrl+D`», oppure digitando: {{{
Linea 71: Linea 88:
Proviamo a realizzare un piccolo script! Aprite un editor di testo qualsiasi e scrivete: Proviamo ora a realizzare un piccolo script.
Linea 73: Linea 90:
{{{ Apriamo un editor di testo qualsiasi e inseriamo le seguenti righe: {{{#!python
Linea 75: Linea 92:
print "Hello World!" print "Ciao mondo!"
Linea 78: Linea 95:
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
Salviamo il file come `hello.py` e proviamo ad eseguire lo script: {{{
python ciao.py
Linea 85: Linea 99:
date i permessi di esecuzione: Se non si è sbagliato qualcosa, si dovrebbero leggere le parole "Ciao mondo!" stampate a video.
Linea 87: Linea 101:
{{{
chmod a+x hello.py
Impostando i permessi di esecuzione sul nostro script: {{{
chmod u+x ciao.py
Linea 91: Linea 105:
e lanciate lo script:

{{{
python hello.py
potremo eseguirlo senza anteporre niente: {{{
ciao.py
Linea 97: Linea 109:
Se non avete sbagliato qualcosa dovreste vedere le parole "Hello World!" stampate a video. questo grazie alla prima riga dello script, che serve proprio a richiamare il comando python per noi.

= Esempi =

Ora che vi abbiamo incuriosito un po' vi proponiamo, nelle pagine a seguire, diversi script esemplificativi a difficoltà crescente:

 * [:LinguaggioPython/Listati:LinguaggioPython/Listati] [[BR]]
 Esempi di alcuni programmi scritti in Python a difficoltà crescente

 * [:LinguaggioPython/GUI:LinguaggioPython/GUI] [[BR]]
 Esempi di alcuni programmi scritti in Python con semplice interfaccia grafica

 * [:LinguaggioPython/Rurple:LinguaggioPython/Rurple] [[BR]]
 Imparare a programmare in Python nell'ambiente RURPLE

= Ulteriori risorse =

 * [http://www.python.it/]: 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/]: 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.
 * [http://www.python.it/doc/Howtothink/Howtothink-html-it/index.htm Pensare da informatico] di Allen B. Downey, Jeffrey Elkner e Chris Meyers.
 * [http://www.python.it/doc/AGauld/index.html Imparare a programmare] di Alan Gauld: Due guide sull'uso del linguaggio Python adatte anche a chi in generale non ha esperienza nell'ambito della programmazione.
Linea 99: Linea 132:
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 [[BR]]
# questo è un commento [[BR]]

{{{
#!/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
print " ora calcolo l'area di questo triangolo"
print
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)) # 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:

  print ' primo lato = ',l[0]
  print
  print ' secondo lato = ',l[1]
  print
  print ' terzo lato = ',l[2]
  print
  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
 
 
  
 

print

s = math.sqrt(p*(p-l[0])*(p-l[1])*(p-l[2]))

print " l'area del triangolo e' =" ,s
print
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;[[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 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
  print ' Eta di' +nomi[1] +" "+ str( int(eta[1]))
  print
  print ' Eta di' +nomi[2] +" "+ str( int(eta[2]))
  print
  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
  print ' secondo lato = ',l[1]
  print
  print ' terzo lato = ',l[2]
  print
  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)
        print
 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)
 print
 stot = stot +s
 p=0
print
print "l'area totale dell'appezamento di terreno e di mq " + str(stot)
print
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
 
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.
CategoryDaRevisionare CategoryProgrammazione

BR

Introduzione

Python è un linguaggio di programmazione ideato da Guido Von Rossum nel 1991 e derivato da un precedente linguaggio chiamato ABC. È interpretato e quindi eseguibile su ogni piattaforma per la quale ne esista l'interprete (Linux, Windows, Mac, Symbian ...).

Python può appoggiarsi a diverse librerie per la creazione di GUI (wxpython, pygtk...), tool per lo sviluppo di giochi (pygame, pysdl...), per la lettura di file mpeg (pymad), database (mysqldb, ...).

È 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! ;) ).

È nativamente un linguaggio orientato agli oggetti ma a differenza di altri linguaggi come il java permette anche uno stile procedurale e/o funzionale.

Ideale per realizzare applicazioni velocemente, è 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.

Installazione

Con l'installazione predefinita di Ubuntu l'interprete python è già presente nel sistema. In caso contrario, è sufficiente installare il pacchetto python da utilizzando [:SynapticHowto:Synaptic] o da riga di comando:

sudo apt-get install python

Verifica della configurazione

Bene ora non resta che lanciare l'interprete interattivo e fare pratica.

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 ad usarlo:

>>> 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. L'indentazione non è quindi solo una buona abitudine ma in Python è obbligatoria. Ad esempio il codice appartenente ad un ciclo deve essere indentato:

 >>>> i=0
>>> while i < 10:
...     i=i+1
...     print "il doppio di",
...     print i,
...     print " e' ",
...     print 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
il doppio di 5  e'  10
il doppio di 6  e'  12
il doppio di 7  e'  14
il doppio di 8  e'  16
il doppio di 9  e'  18
il doppio di 10  e'  20
>>>

Altrimenti succede questo:

>>> i=0
>>> while i < 10:
... i=i+1
  File "<stdin>", line 2
    i=i+1
    ^
IndentationError: expected an indented block
>>>

Usciamo dall'interprete premendo «Ctrl+D», oppure digitando:

>>> import sys
>>> sys.exit()

Proviamo ora a realizzare un piccolo script.

Apriamo un editor di testo qualsiasi e inseriamo le seguenti righe:

   1 #!/usr/bin/python
   2 print  "Ciao mondo!"

Salviamo il file come hello.py e proviamo ad eseguire lo script:

python ciao.py

Se non si è sbagliato qualcosa, si dovrebbero leggere le parole "Ciao mondo!" stampate a video.

Impostando i permessi di esecuzione sul nostro script:

chmod u+x ciao.py

potremo eseguirlo senza anteporre niente:

ciao.py

questo grazie alla prima riga dello script, che serve proprio a richiamare il comando python per noi.

Esempi

Ora che vi abbiamo incuriosito un po' vi proponiamo, nelle pagine a seguire, diversi script esemplificativi a difficoltà crescente:

  • [:LinguaggioPython/Listati:LinguaggioPython/Listati] BR Esempi di alcuni programmi scritti in Python a difficoltà crescente

  • [:LinguaggioPython/GUI:LinguaggioPython/GUI] BR Esempi di alcuni programmi scritti in Python con semplice interfaccia grafica

  • [:LinguaggioPython/Rurple:LinguaggioPython/Rurple] BR Imparare a programmare in Python nell'ambiente RURPLE

Ulteriori risorse

  • [http://www.python.it/]: 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/]: 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.

  • [http://www.python.it/doc/Howtothink/Howtothink-html-it/index.htm Pensare da informatico] di Allen B. Downey, Jeffrey Elkner e Chris Meyers.

  • [http://www.python.it/doc/AGauld/index.html Imparare a programmare] di Alan Gauld: Due guide sull'uso del linguaggio Python adatte anche a chi in generale non ha esperienza nell'ambito della programmazione.


CategoryDaRevisionare CategoryProgrammazione