Visualizzazione post con etichetta Traduzione. Mostra tutti i post
Visualizzazione post con etichetta Traduzione. Mostra tutti i post

giovedì 1 dicembre 2011

Le basi di PyMaemo – terza parte

Questo articolo che segue è la traduzione italia, rivisitata dell'articolo "Python for Newbies – Tutorial" http://www.themaemo.com/python-for-newbies/.

Il contenuto del tutorial è fornito sotto la licenza "Creative Commons Attribution-Share Alike 3.0":
http://creativecommons.org/licenses/by-sa/3.0/ http://creativecommons.org/licenses/by-sa/3.0/legalcode

Contenuto di questo post:

Numeri

Notate che nell'ultimo esempio il numero ritornato da Python è un numero con il punto dopo il decimale. In termini informatici questo è chiamato numero a virgola mobile. Dato che l'esperssione include un numero a virgola mobile (3.0), il suo valore è automaticamente convertito il numero a virgola mobile. La ragione della differenziazione per i tipi di numeri non è scopo di questo tutorial. Nella maggior parte dei linguaggi di programmazione si deve stare attenti a usare il giusto tipo di numero per ogni applicazione. In Python è bene sapere che ci sono diversi tipi di numeri, ma di solito è Python che si occupa dei vari dettagli. L'unica cosa di cui bisogna stare attenti è la divisione. Guardate:
>>> 7 / 2
3
Dal momento che entrambi i numeri della divisione sono interi (un tipo di numero senza decimali) Python esegue una divisione intera. Questo può non è ciò che si aspetta qualcuno ha esperienza di programmazione. Attualmente, per ovviare a questo si può fare così:
>>> 7.0 / 2     # or float(7) / 2
3.5
Nelle versioni più recenti di Python (version 3.x), i progettisti hanno deciso di cambiare questo comportamento in modo che i nuovi utilizzatori di Python ottengano quello che si aspettano. Con la versione corrente di Python di Maemo 5 si può già utilizzare questa funzionalità importando il modulo "__future__". Parleremo più avanti di 'importazione'.

Alcuni operatori comuni associati ai numeri sono i seguenti:

Descrizione operatori

+ Addizione
- Sottrazione
* Moltiplicazione
/ Divisione
% Resto (e.g. 9%2=1; 8%2=0)
** Potenza (4**2=16)

Ci sono anche molte funzioni matematiche in Python per fare praticamente qualsiasi operazione necessaria. Ecco un piccolo esempio (si veda la documentazione per ulteriori). Per utilizzarli devi prima importarli dal modulo per la matematica, come questo ad esempio:
from math import acos
Descrizione funzioni

acos(x) Ritorna l'arcoseno di x
cos(x) Ritorna il coseno di x
log(x) Ritorna l'algoritmo naturale di x
sqrt(x) Ritorna la radice di x
tanh(x) Ritorna la tangente iperbolica di x

Un consiglio pratico è che nel prompt dei comandi interattivo è possibile richiamare l'ultima espressione stampata con il carattere di sottolineatura "_". Così, per esempio, è possibile utilizzare Python come una calcolatrice a portata di mano:
>>> 2 + 2
4
>>> _ + 6
10
C'è anche una estensione Python speciale chiamato Numerical Python (NumPy) che gli permette di utilizzare le funzioni matematiche superiori, come l'algebra lineare e matrici. Ma, basta con i numeri per ora.

Stringhe

Abbiamo già visto una stringa nel esempio "Hello World" di prima. "Una stringa è un insieme ordinato di caratteri, utilizzati per immagazzinare e rappresentare il testo-base di informazioni". Le stringhe Python possono essere racchiuse in doppia, singola, o addirittura tripla (per le linee multi-stringa) virgoletta. Ad esempio:
>>> 'Hello World'
'Hello World'
>>> "Hello 'Hello World'"
"Hello 'Hello World'"
>>> '''This is a longer string that spans
… several lines, doesn’t say anything
… meaningful, and ends here'''
Il fatto che le stringhe sono "ordinate" significa che siamo in grado di accedere ai propri componenti in base alla posizione. Ogni carattere in una stringa ha una posizione di indice dinanzi ad esso. Ad esempio la stringa "Python", ha gli indici seguenti:

Indici stringa
0 1 2   -2  -1
 P y  t h  o   n
Si noti che il primo carattere "P" nei linguaggi di programmazione tipo il C è situato a indice 0, invece è a 1 ad esempio nel basic. Tuttavia, a differenza del C, con Python è anche possibile utilizzare gli indici negativi, che iniziano a decorrere dalla fine della stringa.

Per ottenere i caratteri situati a determinati indici possiamo utilizzare il loro indice numerico scrivendolo all'interno delle parentesi. Diamo un'occhiata ad alcuni esempi.

Per ottenere il carattere situato all'inizio della stringa possiamo usare:
>>> "Python"[0]
'P'
Se stiamo usando una variabile:
>>> hw = "Hello World"
>>> hw[0]
'H'
>>> hw[1]
'e'
>>> hw[-1]
'd'
Possiamo anche ottenere "parti" di una stringa specificando il primo e l'ultimo indice della fetta separati da due punti.
>>> hw[1:7]
'ello W'
>>> hw[4:-2]
‘o Wor’
Il limite a destro o a sinistro della stringa può essere specificato anche, lasciando vuoto l'indice. Ad esempio:
>>> hw[:5]
'Hello'
>>> hw[6:]
'World'
>>> hw[:]
'Hello World'
Le stringhe "oggetti" molto intelligenti. Sanno come comportarsi correttamente in molte situazioni come ad esempio:
Quando aggiungiamo una stringa alla stringa
>>> hw + " Today"
'Hello World Today'
>>> hw[:5] + " You"
'Hello You'
Multiplication
>>> hw[:6] * 5
'Hello Hello Hello Hello Hello '
Si noti che in tutte le operazioni che abbiamo fatto finora con le stringhe, l'operazione restituisce un risultato, ma la stringa originale rimane sempre invariata. È così che le stringhe funzionano. Una stringa è quella che viene chiamata una sequenza di "immutabile". Ciò significa che per modificare una stringa in realtà dobbiamo creare una nuova stringa. Ad esempio:

Provando a cambiare il valore della stringa in un determinato punto
>>> hw[0] = "M"
Viene generato un errore!

Tuttavia, le variabili sono così flessibili che possiamo semplicemente assegnare un nuovo valore ad esso:
>>> hw= "M" + hw[1:]
>>> hw
'Mello World'
Questo funziona perchè l'espressione hw[1:] è calcolata per prima e poi "M" viene aggiunto ad essa, e infine il risultato è assegnato al valore della variabile hw.

Un altro modo per unire le stringhe con le variabili è la formattazione delle stringhe. Ad esempio, cosa succederebbe se si avesse un programma che accoglie l'utente in base al nome a seconda dell'ora del giorno. Per esempio, si potrebbe dire qualcosa del tipo: "Ciao Joe. Come stai sta mattina? ". In questo caso il programma potrebbe raccogliere il nome dell'utente in qualche modo e inserirlo in una variabile denominata "name". Si potrebbe anche prendere il momento della giornata guardando l'orologio computer, determinare se è mattina, pomeriggio o sera, e mettere il risultato in una variabile denominata "time_of_day". Con la seguente riga nel vostro programma possiamo fondere le variabili in una stringa:
>>> Saluto = "Ciao %s. Come stai questa %s" % (name, time_of_day)
Python sostituisce le occorrenze %s con la rispettiva variabile nella tupla dopo il carattere %. (Una "tupla" è una sequenza di elementi all'interno di una parentesi. Le tuple verranno spiegate più avanti.) Ecco un altro esempio:
>>> dessert = "Pecan Pie"
>>> max_per_person = 1
>>> answer = "The dessert of the day is %s. You can only take %i per person" % (dessert, max_per_person)
>>> answer
"The dessert of the day is Pecan Pie. You can only take 1 per person"
In questo esempio abbiamo aggiunto una variabile stringa e una variabile intero nella stringa di risposta. Stringhe e interi hanno differenti codici di formattazione (%s,%i). Guardare la documentazione di Python per gli altri codici di formattazione.

Stringhe inoltre sono dotati di alcuni metodi come i seguenti:
>>> "hello".capitalize()
'Hello'
>>> "HELLO".lower()
'hello'
>>> 'hello'.upper()
'HELLO'
>>> 'Hello World'.replace(" ", "-")     #Replace occurrences of first parameter with second
'Hello-World'
>>> ' Hello World '.lstrip()     #To strip the whitespace at the left of string
'Hello World '
>>> ' Hello World '.rstrip()     #To strip the whitespace at the right of string
' Hello World'
>>> ' Hello World '.strip()     #To strip the whitespace at the left and right
'Hello World'
>>> "This is a longer string".split()
['This', 'is', 'a', 'longer', 'string']
Nell'ultimo esempio vediamo come il metodo Split restituisce una lista di stringhe. La stringa originale è separata in parti delimitate dal delimitatore fornito. Quando non è fornito nessun delimitatore, di default è utilizzato lo spazio bianco. Ma, che cosa è una lista? Lo vedremo in seguito!

Le basi di PyMaemo – seconda parte

Questo articolo che segue è la traduzione italia, rivisitata dell'articolo "Python for Newbies – Tutorial" http://www.themaemo.com/python-for-newbies/.

Il contenuto del tutorial è fornito sotto la licenza "Creative Commons Attribution-Share Alike 3.0":
http://creativecommons.org/licenses/by-sa/3.0/ http://creativecommons.org/licenses/by-sa/3.0/legalcode

Contenuto di questo post:
Elementi costitutivi di un programma Python

Prima di tutto, cosa è un programma?  Un programma è una sequenza di istruzioni specifiche per eseguire un calcolo. Entriamo in modalità interattiva (Sul dispositivo N900, lanciate l'applicazione X-Terminal e immettete il seguente comando: "Python"), e facciamo il nostro primo programma tradizionale:
>>> print "Hello World" 
Hello World 
La parola "print" è un comando proprietario o "dichiarazione" che visualizza l'argomento passato sullo schermo. Al seconda parte del programma che segue la dichiarazione print è l'argomento stesso, in questo caso  la stringa “Hello World”. Le virgolette servono per trattare la parola dentro di esse come una stringa invece di un comando o una variabile. (Una "string" è una sequenza di caratteri che compongono una parola, una frase, ecc.. Vedremo più avanti ulteriori dettagli.)

Nota:
Tipicamente, nei manuali e tutorials Python, quando viene mostrato del codice in una sessione interattiva, la riga di comando attiva inizia con ">>>" Quando invece iniziamo a scrivere una serie di istruzioni (su più righe), la riga di comando attiva inizia con "..."

Nota:
Il testo scritto dopo # è un commento e viene ignorato dall'interprete di Python.

Variabili

Cosa è una variabile? Una variabile è un nome (o una parola) che si riferisce ad un certo valore. Noi possiamo usare quasi ogni parola ed assegnarle un valore. Ad esempio:
>>> hi = "Hello World"
La parola "hi" è adesso il nome della variabile che contiene la stringa "Hello World". Proviamo ad usare l'istruzione "print" per visualizzare il valore di "hi":
>>> print hi 
Hello World
In Python le variabili sono veramente flessibili. Non serve dichiararle prima come negli altri linguaggi. Si può assegnare ad esse un valore anche se ne hanno già uno di tipo diverso. Per esempio andiamo a cambiare il valore di "hi" in 3.0:
>>> hi = 3.0 
>>> print hi 
3.0
Possiamo anche assegnare una variabile come valore di un altra. Per esempio:
>>> num = hi 
>>> print num 
3.0
Un'altra caratteristica della shell di Python è che è che non c'è bisogno di utilizzare l'istruzione "print" per visualizzare il valore di una variabile. Si può semplicemente digitare il nome e Python lo visualizzerà.
>>> num 
3.0
Espressioni

Alla linea di comando interattiva si possono digitare espressioni e vedere il loro risultato. Un espressione è una combinazione di variabili, operatori e valori che rappresentano un singolo valore risultante. Ad esempio:
>>> num + 2 
5.0 
>>> ((5 – 1) + num) * 2 
14.0
Possiamo assegnare un valore ad un espressione. Come ad esempio:
>>> numb = ((5 – 1) + num) * 2 
>>> numb 
14.0

Le basi di PyMaemo – prima parte

Questo articolo che segue è la traduzione italia, rivisitata dell'articolo "Python for Newbies – Tutorial" http://www.themaemo.com/python-for-newbies/.
Il contenuto del tutorial è fornito sotto la licenza "Creative Commons Attribution-Share Alike 3.0":
http://creativecommons.org/licenses/by-sa/3.0/
http://creativecommons.org/licenses/by-sa/3.0/legalcode
Il questo tutorial si toccheranno molte aree del linguaggio Python in particolare nel contesto del sistema operativo Maemo e in maniera veramente semplice, alla portata di tutti.
La versione delle librerie di Python trattate è la 2.5.4, che è quella attualmente disponibile per il dispositivo N900.
Il tutorial originale è diviso in due parti, io invece lo diveiderò ancora di più postando un pò di cose al giorno:
Contenuto di questo post:
Cosa è Python?
Python un linguaggio di programmazione creato inizialmente da Guido Van Rossum, che lo rilasciò come programma "Open Source" "Free".

Da allora è stato progressivamente migliorato con il contributo di centinaia di programmatori di computer in tutto il mondo. Il pacchetto Python può essere scaricato gratuitamente da internet per tutte le principali piattaforme informatiche esistenti. Può essere utilizzato e modificato, anche per quasi qualsiasi scopo.
Perché Python?
Esistono molti linguaggi di programmazione. Tutti hanno differenti vantaggi e svantaggi. Il cervello di un computer è il suo processore, ed esso non capisce l'inglese. Il processore ha bisogno di ricevere l'input in un formato che arriva a capire. La maggior parte dei processori sono fatti per capire i comandi formattati come una serie di zeri "0" e uni "1".

Questo formato è chiamato binario. Sebbene sia possibile scrivere programmi a mano dei programmi con questo formato di zeri e uni, è sconsigliato e molto difficile, anche perché richiede molto tempo, ed è soggetto a errori. Questo è il motivo per cui sono stati inventati i linguaggi di programmazione.
I linguaggi di programmazione sono spesso classificati come "basso livello" o "alto livello".
I linguaggi a basso livello sono stati i primi a comparire ed hanno semplificato il processo di scrittura delle istruzioni per il computer, mediante l'utilizzo di parole comprensibili. Un programma traduttore, "compilatore", traduce le istruzioni del programma in un file binario che è comprensibile dal processore.

Tuttavia, i linguaggi di programmazione a basso livello sono ancora piuttosto difficile da padroneggiare. Essi costringono il programmatore a comprendere il modo in cui il computer funziona internamente. Il programmatore deve dare le istruzioni per ogni passo che il computer deve adottare per gestire un determinato compito, che può facilmente portare ad errori e gravi problemi. D'altra parte, i programmi di basso livello tendono ad essere abbastanza veloci ed efficienti (se scritti correttamente).
Linguaggi di alto livello sono stati progettati per rendere più facile programmare. Le istruzioni sono più simili al linguaggio normale, e molti dettagli sono gestiti dal compilatore. Questo rende i tempi di sviluppo molto più brevi, a discapito della velocità, rispetto ad un programma di basso livello.
Python è un linguaggio di programmazione ad alto livello. Molti lo considerano il linguaggio di programmazione più semplice da imparare e da programmare. Molti compiti, che normalmente dovrebbe svolgere il programmatore, sono già integrati nel linguaggio.

Python è molto utile ed è semplice e veloce per scrivere qualsiasi programma, da un semplice script a programmi per sistemi client/server. Questo è vero soprattutto con i computer di oggi che sono ultra veloci e compensano lo svantaggio della velocità intrinseca dei linguaggi di programmazione ad alto livello. Ai programmatori Python piace per la sua sintassi chiara e logica, che riduce enormemente i cicli di sviluppo.

Questo linguaggio costringe i programmatori ad utilizzare l'indentazione del codice, in modo corretto. All'inizio può sembrare scomodo, ma dopo essersi adeguati, si notano i vantaggi di un codice molto pulito e manutenibile (anche se il codice è stato scritto da qualcun altro).
Installare Python
Per installare Python sul dispositivo N900, basta installare in applicazione che lo usa. Ad esempio "pyGTKeditor". Se stai usando Linux Python è già installato. In windows devi andare su www.python.org/download/ e scaricare Python 2.6.4, non l'ultima versione 3.x, perché non è pienamente compatibile con quella del N900. (Non è molto diversa ma basta per non fare funzionare le cose)
Come funziona Python
I programmi Python sono eseguiti con l'aiuto di un "interprete". L'interprete è un programma che converte il codice in istruzioni binarie necessarie al processore, in fase di esecuzione. C'è un interprete diverso, per ogni piattaforma dove Python viene eseguito.

Questo consente al codice Python scritto in una macchina Windows, di funzionare senza variazioni, in una macchina Linux, Macintosh, o anche in uno smart phone. Naturalmente, ci sono anche molte caratteristiche specifiche per ogni piattaforma, che sono ottimizzate per essa (Evitare di usare queste se non si vuole legare il programma alla piattaforma specifica.).

L'interprete deve essere installato sul computer che eseguirà il programma Python, oppure confezionato assieme al programma stesso, in modo che possa essere eseguito dal computer senza bisogno di Python.
L'interprete può essere eseguito direttamente da quella che viene chiamata "riga di comando interattiva". I comandi Python possono essere digitati direttamente in questa sessione e vengono trattati immediatamente mostrando i risultati ottenuti. Questa caratteristica unica consente di eseguire dei test rapidi di idee e pezzi di codice.
La maggior parte dei programmi, tuttavia, sono scritte con editor di testo e salvati estensione ".py", e eseguiti come processo indipendente. Poiché non vi è alcuna necessità di "elaborare" un programma Python prima di eseguirlo, un programmatore può verificare le, modifiche al codice immediatamente dopo il loro salvataggio.