11195
Commento:
|
8578
|
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;">'''Indice'''[[BR]][[TableOfContents]]|| |
Linea 3: | Linea 6: |
== Introduzione == | = Introduzione = |
Linea 5: | Linea 9: |
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 |
È 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. |
Linea 11: | Linea 15: |
= Installazione = | |
Linea 12: | Linea 17: |
== 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'' |
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 }}} |
Linea 36: | Linea 23: |
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 25: |
{{{ |
Aprire un terminale e digitare: {{{ python }}} Dovrebbe apparire qualcosa del tipo: {{{ |
Linea 48: | Linea 34: |
= Semplici comandi = | |
Linea 49: | Linea 36: |
Adesso proviamo qualche semplice comando: {{{ |
Una volta avviato l'interprete, impariamo a usarlo: {{{ |
Linea 62: | Linea 44: |
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 68: |
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 79: |
Usciamo dall'interprete premendo CTRL+D oppure digitando {{{ |
Usciamo dall'interprete premendo «`Ctrl+D`», oppure digitando: {{{ |
Linea 71: | Linea 84: |
Proviamo a realizzare un piccolo script! Aprite un editor di testo qualsiasi e scrivete: | Proviamo ora a realizzare un piccolo script. |
Linea 73: | Linea 86: |
{{{ | Apriamo un editor di testo qualsiasi e inseriamo le seguenti righe: {{{#!python |
Linea 75: | Linea 88: |
print "Hello World!" | print "Ciao mondo!" |
Linea 78: | Linea 91: |
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 impostiamone i permessi di esecuzione: {{{ chmod a+x ciao.py |
Linea 85: | Linea 95: |
date i permessi di esecuzione: {{{ chmod a+x hello.py |
Ora eseguiamo lo script: {{{ python ciao.py |
Linea 91: | Linea 99: |
e lanciate lo script: | Se non si è sbagliato qualcosa, si dovrebbero leggere le parole "Ciao mondo!" stampate a video. |
Linea 93: | Linea 101: |
{{{ python hello.py }}} |
= Esempi = |
Linea 97: | Linea 103: |
Se non avete sbagliato qualcosa dovreste vedere le parole "Hello World!" stampate a video. ---- CategoryComunita |
Ora che vi abbiamo incuriosito un po' vi proponiamo, nelle pagine a seguire, diversi script esemplificativi a difficoltà crescente: |
Linea 101: | Linea 105: |
Ora che vi abbiamo un po incuriosito vi proponiamo un'altro script 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 = 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.[[BR]] = Curiosità... ma non troppo = == Imparare Python: Un gioco da ragazzi con RUR-PLE! == L' Autore '''Andre' Roberge, © 2005, 2006''' ci spiega:[[BR]] |
Linea 104: | Linea 126: |
# tutto cio che scrivo preceduto dal segno # viene considerato un commento [[BR]] # questo è un commento [[BR]] |
'''Che cosa e' RUR-PLE:'''[[BR]] |
Linea 107: | Linea 128: |
{{{ #!/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)) |
Semplicemnte, RUR-PLE e' un ambiente per imparare Python. Con l'assistenza di un robot di nome Reeborg, si puo' esplorare il piacere della programmazione usando il linguaggio Python. Un interprete standard è anche incluso come pure un editor Python con istantanee caratteristiche di funzionamento |
Linea 130: | Linea 131: |
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: |
'''Un po' di storia''' [[BR]] |
Linea 163: | Linea 133: |
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 |
La parola "robot" e' entrata nel nostro linguaggio intorno al 1920 , inventata dallo scrittore Ceco Karel Capek nel suo romanzo fantascentifico R.U.R. (Rossum's Universal Robots [il robot universale di Rossum]) . Capek, con questo romanzo, seppe come diffondere la parola robot in maniera disinvolta![[BR]] Il none di Karel Capek viene conosciuto nel mondo dei computer nel 1981, quando Richard Pattis scrive un delizioso piccolo libro dal titolo Karel il Robot, una Gentile Introduzione alla Arte della Programmazione. In questo libro, Pattis introduce i principali concetti della programmazione sequenziale (includendo i cicli e le decisioni, ma non le variabili) usando il paradigma delle istruzioni, per istruire un robot capace di svolgere solo quattro azioni base (voltare a sinistra, muoversi un passo per volta in avanti, caricare e scaricare delle guide). Attraverso la magia della programmazione, il robot impara a combinare queste quattro azioni per portare avanti un compito a difficolta' crescente. Pattis ha usato il Pascal, il linguaggio preferito del momento ,per consentire al robot di "insegnarci" nuovi trucchi. Successivamente sono apparse nuove versioni di Karel il Robot , usate per introdurre vari linguaggi per computer, come Java e C++, che sono entrambi passati ad un approccio moderno Object-Oriented Programming (OOP) Programmazione Orientata agli Oggetti.[[BR]] Questi linguggi, data la complessita' di Java e C++ che contrasta con la semplicita' del mondo di Robot, risultavano essere in contrasto appunto con l'idea di provvedere ad una Gentile Introduzione all'Arte della Programmazione [ Gentle Introduction to the Art of Programming.][[BR]] |
Linea 183: | Linea 137: |
Cosi' si penso di inserire il linguaggio Python!... Chiamato cosi', dopo il famoso Monty Python's Flying Circus, dal suo creatore , Guido van Rossum. Python, come Java e C++, e' un linguaggio OOP . Inoltre Python permette anche la programmazione in stile non -OOP, piu' portata per interagire con il robot di Pattis. Una prima implementazione del robot di Karel in Python e' stata chiamata PyKarel. La corrente implemetazione e' chiamata Guido van Robot (GvR per brevita'), ed e' disponibile su sourceforge.net.[[BR]] RUR: Un ambiente per imparare Python (RUR-PLE or Rur-ple or rur-ple) e' una "nuova e non consolidata" versione di GvR che estende l'idea di Pattis e consente l'uso di variabili nonche' funzioni e metodi, classi e oggetti. Rur-ple e' un completo ambiente, le sue lezioni contemplano l'uso di tutte le parole chiave di Python. Contiene anche un interprete ed un semplice editor per esplorare Python al di fuori del mondo Robot.[[BR]] Reeborg e' un robot costruito nel 1981 secondo il modello di Pattis ... e comincia a mostrare la sua eta . Ha una perdita di olio, che ci consente di vedere le sue tracce. La sua bussola e' rotta; conosce solamente se ha la faccia a nord oppure no, diversamente da Karel o Guido che puo' determinare il suo orientamento rispetto ai quattro punti cardinali.[[BR]] Karel il Robot di Pattis e' stato cosi chiamato dall' autore Karel Capek, che ha reso popolare la parola Robot con il suo romanzo Rossum's Universal Robots (RUR). Mentre RUR-PLE divide l'acronimo RUR , un modo per usare il Robot di Roberge . Tuttavia, attraverso la magia del linguaggio Python, di Guido van Rossum , potrete imparare come correggere e disegnarne uno migliore, degno del nome del Robot Universale Rossum.[[BR]] |
|
Linea 185: | Linea 143: |
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;[[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 ' 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 ' }}} [[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. |
---- CategoryNuoviDocumenti |
IndiceBRTableOfContents |
Introduzione
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.
Installazione
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
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 a 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:
Salviamo il file come hello.py e impostiamone i permessi di esecuzione:
chmod a+x ciao.py
Ora eseguiamo lo script:
python ciao.py
Se non si è sbagliato qualcosa, si dovrebbero leggere le parole "Ciao mondo!" stampate a video.
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
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.BR
Curiosità... ma non troppo
Imparare Python: Un gioco da ragazzi con RUR-PLE!
L' Autore Andre' Roberge, © 2005, 2006 ci spiega:BR
Che cosa e' RUR-PLE:BR
Semplicemnte, RUR-PLE e' un ambiente per imparare Python. Con l'assistenza di un robot di nome Reeborg, si puo' esplorare il piacere della programmazione usando il linguaggio Python. Un interprete standard è anche incluso come pure un editor Python con istantanee caratteristiche di funzionamento
Un po' di storia BR
La parola "robot" e' entrata nel nostro linguaggio intorno al 1920 , inventata dallo scrittore Ceco Karel Capek nel suo romanzo fantascentifico R.U.R. (Rossum's Universal Robots [il robot universale di Rossum]) . Capek, con questo romanzo, seppe come diffondere la parola robot in maniera disinvolta!BR Il none di Karel Capek viene conosciuto nel mondo dei computer nel 1981, quando Richard Pattis scrive un delizioso piccolo libro dal titolo Karel il Robot, una Gentile Introduzione alla Arte della Programmazione. In questo libro, Pattis introduce i principali concetti della programmazione sequenziale (includendo i cicli e le decisioni, ma non le variabili) usando il paradigma delle istruzioni, per istruire un robot capace di svolgere solo quattro azioni base (voltare a sinistra, muoversi un passo per volta in avanti, caricare e scaricare delle guide). Attraverso la magia della programmazione, il robot impara a combinare queste quattro azioni per portare avanti un compito a difficolta' crescente. Pattis ha usato il Pascal, il linguaggio preferito del momento ,per consentire al robot di "insegnarci" nuovi trucchi. Successivamente sono apparse nuove versioni di Karel il Robot , usate per introdurre vari linguaggi per computer, come Java e C++, che sono entrambi passati ad un approccio moderno Object-Oriented Programming (OOP) Programmazione Orientata agli Oggetti.BR Questi linguggi, data la complessita' di Java e C++ che contrasta con la semplicita' del mondo di Robot, risultavano essere in contrasto appunto con l'idea di provvedere ad una Gentile Introduzione all'Arte della Programmazione [ Gentle Introduction to the Art of Programming.]BR
Cosi' si penso di inserire il linguaggio Python!... Chiamato cosi', dopo il famoso Monty Python's Flying Circus, dal suo creatore , Guido van Rossum. Python, come Java e C++, e' un linguaggio OOP . Inoltre Python permette anche la programmazione in stile non -OOP, piu' portata per interagire con il robot di Pattis. Una prima implementazione del robot di Karel in Python e' stata chiamata PyKarel. La corrente implemetazione e' chiamata Guido van Robot (GvR per brevita'), ed e' disponibile su sourceforge.net.BR RUR: Un ambiente per imparare Python (RUR-PLE or Rur-ple or rur-ple) e' una "nuova e non consolidata" versione di GvR che estende l'idea di Pattis e consente l'uso di variabili nonche' funzioni e metodi, classi e oggetti. Rur-ple e' un completo ambiente, le sue lezioni contemplano l'uso di tutte le parole chiave di Python. Contiene anche un interprete ed un semplice editor per esplorare Python al di fuori del mondo Robot.BR Reeborg e' un robot costruito nel 1981 secondo il modello di Pattis ... e comincia a mostrare la sua eta . Ha una perdita di olio, che ci consente di vedere le sue tracce. La sua bussola e' rotta; conosce solamente se ha la faccia a nord oppure no, diversamente da Karel o Guido che puo' determinare il suo orientamento rispetto ai quattro punti cardinali.BR Karel il Robot di Pattis e' stato cosi chiamato dall' autore Karel Capek, che ha reso popolare la parola Robot con il suo romanzo Rossum's Universal Robots (RUR). Mentre RUR-PLE divide l'acronimo RUR , un modo per usare il Robot di Roberge . Tuttavia, attraverso la magia del linguaggio Python, di Guido van Rossum , potrete imparare come correggere e disegnarne uno migliore, degno del nome del Robot Universale Rossum.BR