logo

martedì 25 gennaio 2011

python simbian

esempi python mobile

1.Introduzione

Per iniziare lo sviluppo in python sui dispositivi mobili dovrete scaricare il compilatore python per il vostro dispositivo all’indirizzo: pys60 prelevate il file .sis e lo installate.
Adesso dovete scegliere se installare python anche sul pc e scrivere gli script e provarli tramite l’emulatore sdk oppure utilizzare il compilatore python installato sul vostro cellulare sfruttando la connessione bluetooth,vediamo queste due soluzioni in dettaglio.

SFRUTTARE LA CONNESSIONE BLUETOOTH:

Creiamo una connessione con Hyper Terminal (Start-Programmi-Accessori-Comunicazioni),digitiamo il nome da dare alla connessione e la COM per la connessione,poi apriamo python nel nostro dispositivo andiamo su Bluetooth console,other e selezioniamo la connessione.
01_pys60 02_pys60 03_pys60
Se abbiamo eseguito tutto dovremmo trovarci con una schermata di questo tipo:
04_pys60
Potete vedere il funzionamento tramite questo video ma me realizzato:

UTILIZZARE EMULATORE:

Se invece vogliamo scrivere gli script e provarli nel computer dobbiamo scaricare python per il nostro computer ad esempio Active Python e scaricare l’ emulatore .
Per eseguire l’emulatore dobbiamo aprire l’eseguibile EPOC32.exe che si trova nella cartella dell’emulatore.

2.Costrutti condizionali

Tramite le strutture di controllo possiamo rendere le nostre applicazioni più “dinamiche” nel senso che se si verifica una certa condizione potremmo ottenere un certo output rispetto che un’altro.
In python come fino ad adesso avete potuto vedere non ci sono punti e vigola da mettere alla fine di ogni istruzione,variabili da dichiarare prima e cosi via,l’unica attenzione che dovete avere è l’indentazione che a differenza degli altri linguaggi fa proprio parte del linguaggio,cioè una volta verificata una condizione vengono eseguite le istruzioni che sono indentate sotto la condizione.
Passiamo a presentare il primo…

-WHILE:


while(condizione):
istruzione 1
istruzione 2
istruzione 3
….
….
istruzione n

Affinchè verrà soddisfatta la condizione del while verranno eseguite le istruzioni 1 e 2 , appena la condizione del while non verrà soddisfatta verrà eseguita l’istruzione 3 e l’esecuzione del programma continuerà ad eseguire le successive istruzioni(se ve ne sono).
Esempio:

a=0
while (a
Quindi viene inizializzata la variabile a al valore zero,quindi fino a che la variabile a è minore o uguale a 10 stampa il valore di a e la incrementa di 1 appena il valore di a è maggiore di 10 non vengo eseguite le condizioni print a e a=a+1 ma viene eseguita print “la variabile a è maggiore di 10, a=”,a

Altro esempio:

a=1
print “Adesso a=”,a
while (a!=0): #il simbolo != significa “diverso”
a=input(”Inserisci un numero,digita 0 per terminare:”)
print “Adesso a=”,a

Inizializza la variabile a ad 1 e stampa nel video il suo valore,poi entra nella condizione del while e permette all’utente d’inserire un valore alla variabile a e lo stampa a video e ripete queste due istruzioni fino a quando l’utente non digita il valore zero (cioè fino a quando a non è uguale a zero).

-IF:


if (condizione):
istruzione1
else:
istruzione2

Se è verificata la condizione allora viene eseguita l’istruzione1,altrimenti(else) viene eseguita l’istruzione2.
Vediamo un’esempio:

a=input(”Inserisci un valore:”)
if (a>=5):
print “il valore della variabile è maggiore o uguale a 5, a=”,a
else:
print “il valore della variabile è minore di 5, a=”,a

Possiamo avere un’altra struttura di if :

if(condizione a):
istruzione1
elsif (condizione b):
istruzione2
else:
istruzione3

Se è verificata la condizione a dell’if viene eseguita l’istruzione1, altrimenti se(elsif) è verificata la condizione b viene eseguita l’istruzione2,altrimenti viene eseguita l’istruzione3
Eccovi un’esempio:

a=input(”Inserisci un valore:”)
if (a=9):
print “il valore di a è compreso tra 4 e 9″
else:
print “il valore di a è maggiore o uguale a 10″


3.Le liste

La lista può essere pensata come una variabile che può contenere più di un valore,anche di tipo diverso,vediamo come si crea:
nomelista=[’elemento0′,’elemento1′,elemento2,’elemento3′,elemento4]
Gli elementi 0,1,3 sono di tipo stringa(infatti sono tra le virgolette),mentre gli elementi 2,4 sono di tipo numerico.
All’interno della lista gli elementi vengono “indicizzati” , infatti e vengono contati a partire da zero,quindi:
lunghezza_lista=(numero elementi-1)
Se vogliamo sapere che elemento abbiamo in una determinata posizione della lista ci basta scrivere:
nomelista[posizione]
Esempio:

lista=[’patate’,'cipolle’,2,’mele’,69,’pesche’]
print lista[1]
print lista[4]

Otterremo come output:
cipolle
69
01_liste 02_liste
Se invece vogliamo sapere in che posizione si trova un certo elemento della lista scriviamo:
nomelista.index(nome_elemento)
Esempio:

lista=[’patate’,'cipolle’,2,’mele’,69,’pesche’]
print lista.index(’cipolle’)

L’output sarà:
1
03_liste
Per cancellare un’elemento dalla lista scriviamo:
del nomelista(posizione_elemento)
Esempio:

lista=[’patate’,'cipolle’,2,’mele’,69,’pesche’]
del lista(1)

in questo modo cancelleremo la parola “cipolle”
04_liste
Riepilogando i comandi da potere usare sulle liste sono:
len(nome_lista) –> restituisce la lunghezza della lista
nome_lista.index(nome_elemento)—>restituisce la posizione dell’elemento
nome_lista.append(elemento)–>inserisce un nuovo elemento nella lista
nome_lista.sort()–>ordina la lista
del nome_lista(posizione)–>cancella l’elemento nella posizione
elemento in nome_lista–>restituisce true se l’elemento è nella lista
nome_lista=range(valore)–>la lista conterrà gli elementi che vanno da 0 a valore
nome_lista=range(valore1,valore2) –>la lista conterrà gli elementi compresi tra valore1 e valore2

TUPLE:

Le tuple sono delle liste dove gli elementi non si possono modificare,esse si dichiarano in questo modo:
nome_tupla=(’elemento1′,’elemento2′,’elemento3′)

4.I dizionari

Adesso passiamo ad esaminare una delle strutture più potenti di Python,i dizionari.
I dizionari sono formati da parole chiavi e valori,ad ogni parola chiave corrisponde un valore che può essere di tipo numerico,stringa,lista.
Possiamo dire che i dizionari sono una “particolare” lista ,solo che gli elementi anziché essere indicizzati mediante un indice numerico,gli elementi vengono identificati da una chiave:
chiave1–>elemento1
chiave2–>elemento2

Eccovi i comandi che si usano sui dizionari:
dizionario={’A’:’Alberto’,’B’:’Bernardo’,’C’:’Claudia’,’D’:’Dora’}
print dizionario #stampa tutto il dizionario (chiavi e valori)
print dizionario.values() #stampa solo i valori
print dizionario.keys() #stampa solo le chiavi
print len(dizionario) #restituisce la lunghezza
print dizionario.has_key(’A’) #restituisce TRUE se la chiave esiste,FALSE altrimenti
print dizionario.has_key(’Bernardo’) #restituisce FALSE perchè Bernardo è un valore e no una chiave

5.Modulo Appuifw

Il modulo appuifw è di uno di quei moduli che utilizzeremo in quasi tutte le nostre applicazioni.
Con esso possiamo avvisare l’utente tramite delle note o possiamo chiedere l’inserimento di dati,vediamo come funziona.
Per prima vediamo inserimento dei dati che possono essere:testo,numero,data,ora,password,domanda.

-TESTO:

import appuifw
nome=appuifw.query(u”Nome: “,”text”)

text_appuifw

-NUMERO:

import appuifw
numero=appuifw.query(u”Numero: “,”number”)

number_appuifw

-DATA:

import appuifw
data=appuifw.query(u”Data: “,”date”)

date_appuifw

-ORA:

import appuifw
ora=appuifw.query(u”Ora: “,”time”)

time_appuifw

-PASSWORD:

import appuifw
password=appuifw.query(u”Codice: “,”code”)

code_appuifw

-DOMANDA

import appuifw
domanda=appuifw.query(u”Vuoi uscire?”,”query”)

query_appuifw
Esempi di Note:

-INFO:

import appuifw
appuifw.note(u”Questa e’ una nota”,”info”)

info_appuifw

-ERRORE

import appuifw
appuifw.note(u”Esempio di errore”,”error”)

error_appuifw

-CONF:

import appuifw
appuifw.note(u”Nota”,”conf”)

conf_appuifw
Per scegliere un dato da una lista possiamo farlo in questi modi:

-SELECTION LIST

import appuifw
Lista=[u'Chiama',u'Sms',u'Mms',u'Gioca']
richiesta=appuifw.selection_list(choices=Lista,search_field=1)

selection_list_appuifw

-MULTI SELECTION LIST:

import appuifw
Lista=[u'Chiama',u'Sms',u'Mms',u'Gioca']
richiesta = appuifw.multi_selection_list(Lista , style=’checkbox’, search_field=1)

multi_selection_list_appuifw

6.Le Stringhe

Oggi impariamo ad usare al meglio le stringhe che come ogni altro elemento in Python è in oggetto,quindi ha dei metodi che ne facilitano l’utilizzo.
I caratteri della stringa vengono indicizzati da 0 ad (n-1).

-Lunghezza:

supponiamo di avere una stringa(frase):
frase =’’supercalifragilissichespiralitoso”
se vogliamo sapere la lunghezza della stringa,basta scrivere
>>>len(frase)
>>>33

-Lo slicing:

Tramite lo slicing possiamo estrapolare dalla stringa una parte di essa,ad esempio
>>>frase[:10] #stampa i primi 10 caratteri
>>>supercalif
>>>frase[-10:] #stampa gli ultimi 10 caratteri
>>>piralitoso
>>>frase[2:8] #stampa dal terzo carattere al numero 8
>>>percal
>>>frase[::10] #stampa ogni 10 caratteri
>>>srh


7.Modulo Sysinfo

Adesso presenteremo il modulo sysinfo che ci fornisce le informazioni del dispositivo dove viene eseguita l’applicazione.
Innanzitutto importiamo il modulo con la sintassi import sysinfo .
1.Per avere lo stato della batteria:
>>>sysinfo.battery() #ci restituirà un valore compreso tra 0-7
2.Per sapere la risoluzione in pixels del nostro schermo:
>>>sysinfo.display_pixels()
3.Ci restituisce la quantità di memoria libera:
>>>sysinfo.free_drivespace()
4.Ci restituisce la quantità di ram libera:
>>>sysinfo.free_ram()
5.Ci restituisce la ram totale:
>>>sysinfo.total_ram()
6.Ci restituisce la rom totale:
>>>sysinfo.total_rom()
7.Per sapere l’imei del dispositivo:
>>>sysinfo.imei()
8.Restituisce la versione del sistema operativo:
>>>sysinfo.os_version()
9.Tipo di suoneria impostato:
>>>sysinfo.ring_type()
10.Restituisce il livello del segnale:
>>>sysinfo.signal() #valore da 0 a 7

8.Modulo e32

1.Conoscere i drive del nostro dispositivo:
>>>e32.drive_list() #restituisce una lista
2.Per conoscere la versione installata di python:
>>>e32.pys60_version
3.Per conoscere la versione del s.o:
>>>e32.s60_version_info
#restituisce una tupla con due valori
(1,2) per s60 prima edizione
(2,0) per s60 seconda edizione
(2,6) per s60 seconda edizione Feature Pack 2
4.Per “addormentare” l’applicazione un certo numero di secondi:
>>>e32.ao_sleep(2) #addormenta il programma per 2 secondi
5.Per aprire un’applicazione:
>>>e32.start_exe(NomeFile,Comando)
6.Per copiare un file:
>>>e32.file_copy(Path di arrivo,Path sorgente)

Nessun commento:

Posta un commento