PyPratico n.01 - Operazioni di base
Fonte: fraph24
[la versione "interattiva" della lezione la trovate su: pypratico-00.pdf]
1. Lo statement print
Lo statement print è la prima cosa che andiamo ad osservare. Cosa fa? Con poca fantasia, visualizza sulla console variabili, stringhe, e tutto quello di cui abbiamo bisogno. Tecnicamente parlando, converte un oggetto nella sua rappresentazione testuale, e la visualizza sull’output standard. La sintassi è molto semplice e banale… Apriamo la nostra console interattiva (usando il comando python) e digitiamo:
print “ciao mondo!”
In questo modo abbiamo visualizzato una banale stringa. Ma print è molto più versatile di quanto ci si possa immaginare… Ah, quasi dimenticavo, “#” indica un commento sulla linea
Ecco alcuni esempi un poco più elaborati:
print “ciao mondo!\n” # Visualizza “ciao mondo!” e rientra due volte
print “ciao mondo!”, # Visualizza “ciao mondo! ” senza tornare a capo
print “ciao mondo!”, “come va?” # Visualizza “ciao mondo! come va?”
Semplice, no? Piccola nota… Nella prossima versione di Python (la 3.0), bisognerà usare print includendo tra parentesi cosa vogliamo visualizzare, ovvero:
print(”ciao mondo!”) # *Solo* su Python 3.0 e superiori
2. Numeri e stringhe (operatori e conversioni)
Sostanzialmente esistono una manciata di tipi di dati: numeri (interi, a virgola mobile, “lunghi”, ottali, esadecimali e complessi), stringhe (come “ciao mondo!”), liste (oggetti che raggruppano altri elementi, simili agli array in c, ma dinamici) e dizionari (oggetti che permettono di associare dei valori a delle chiavi). Ora ci occuperemo delle stringhe e dei numeri interi e a virgola mobile.
Ecco alcuni esempi in cui assegnamo un valore a una variabile (ricordo che le variabili non si tipizzano come in c):
es1 = “ciao mondo!” # Stringa
es2 = 7 # Numero intero
es3 = 7.2 # Numero a virgola mobile
es4 = 12345678901 # Numero “lungo”, lunghezza illimitata, visualizzato con una L alla fine
Questi sono i cinque tipi di dati che ci interessano
Con le stringhe possiamo fare addizioni, ovvero concatenare più stringhe con il simbolo “+”, ovvero:
stringa_lunga = “ciao “+”mondo!”
…oppure calcolare la lunghezza, con:
print len(”ciao mondo!”)
Altre operazioni sulle stringhe saranno spiegate nella sezione successiva, in quanto le stringhe e le liste hanno molte analogie.
Con i numeri possiamo fare le normali operazioni, addizione, sottrazione, moltiplicazione, elevamento a potenza così:
print 4+5 # Somma
print 4-5 # Sottrazione
print 4*5 # Moltiplicazione
print 4**5 # Elevamento a potenza
print 4**0.5 # Radice quadrata (metodo “rapido” che usa le proprietà delle potenze)
…ma dobbiamo prestare attenzione alla differenza tra numeri interi e a virgola mobile nel caso di divisioni o radici:
print 5/2 # Visualizza 2, non tiene conto del resto perché l’operazione è tra due interi
print 5/2.0 # Visualizza 2.5, perché uno dei due numeri è a virgola mobile
print 5//2.0 # Visualizza 2, questo operatore elimina sempre il resto
Piccola nota… Anche questo nel futuro Python 3.0 cambierà. Per evitare confusione, l’operatore “/” restituisce sempre la divisione “esatta”, mentre “//” ignora il resto. Il mio consiglio è di utilizzare già ora questa caratteristica, inserendo all’inizio del vostro programma, questa riga:
from __future__ import division
Questo farà si che utilizziate la divisione come sarà di default nella futura versione di Python
Ovviamente si può convertire un numero in una stringa e viceversa (anche se non è sempre possibile ovviamente). Guardate:
print str(5) # Converte l’intero 5 in una stringa, ovvero “5″ <- notare la presenza delle “”
print int(”5″) # Converte la stringa in intero
print float(5) # Converte l’intero 5 in un numero a virgola mobile
print float(”5″) # (Vedi sopra)
print long(5) # Converte l’intero 5 in un numero “lungo”, ovvero di illimitata lunghezza
3. Liste e dizionari
Le liste sono semplicemente dei “contenitori” di altri valori (o di altre variabili). Ecco come appare una lista:
lista = ["mamma", "papà", "figlio", "gatto"]
Il primo elemento è la stringa “mamma” (elemento 0), il secondo è “papà” (elemento 1), e via dicendo. La cosa fantastica è che le liste sono dinamiche, nel senso che le possiamo creare al volo (come ogni tipo di variabile sotto Python) senza dover definire il numero di elementi che andremmo a metterci, così possiamo aggiungere, rimuovere e modificare dati senza problemi
Alcuni esempii di come operare su una lista:
print lista[0] # Visualizza “mamma”, il primo elemento
print lista[1] # Visualizza “papà”, il secondo elemento
print lista[-1] # Visualizza “gatto”, l’ultimo elemento
print lista[-2] # Visualizza “figlio”, il penultimo elemento
print lista[0:2] # Visualizza ["mamma", "papà"], cioè dall’elemento 0 all’elemento 2 (escluso)
print lista[:2] # Stesso risultato, se si inizia dal primo elemento, lo 0 si può omettere
print lista [2:] # Visualizza ["figlio", "gatto"], cioè dall’elemento 1 all’ultimo elemento (incluso)
Questo tipo di operazioni si può fare anche sulle stringhe, operando così sulle lettere. Ovviamente anche qui si può usare len(nome_variabile) per calcolare la lunghezza.
Per aggiungere un elemento esiste una soluzione molto semplice: .append(), che aggiunge l’elemento alla fine.
lista = ["mamma"]
lista.append(”papà”)
print lista # Visualizza ["mamma", "papà"]
Per rimuovere un elemento, si può usare del:
lista = ["mamma", "papà"]
del lista[0] # Elimina l’elemento 0, ovvero “mamma”… Povera mamma
print lista # Visualizza “papà”, ormai rimasto single![]()
Infine i comodissimi dizionari… A ogni chiave, viene associato un valore. Ammirate gente!
dizionario = {”mamma”:”Daniela”, “papà”:”Roberto”}
print dizionario["mamma"] # Visualizza “Daniela”
dizionario["figlio"] = “Francesco” # Associa alla chiave “figlio” il valore “Francesco”
print dizionario # Visualizza {”mamma”:”Daniela”, “papà”:”Roberto”, “figlio”:”Francesco”}
del ["mamma"] # Eliminiamo la chiave “mamma” e il suo valore “Daniela”
print dizionario # Visualizza {”papà”:”Roberto”, “figlio”:”Francesco”}
4. Come fare inserire un input all’utente?
Semplice, si possono usare due funzioni: raw_input(”testo: “) o input(”dato qualsiasi: “). Ovviamente il testo racchiuso tra le parentesi si può personalizzare
La differenza? Il primo restituisce sempre una stringa, il secondo di “adatta” al tipo di dato inserito. Ecco qui:
nome = raw_input(”Nome? “) # Ritorna sempre una stringa
anni = input(”Anni? “) # In questo caso ritorna un intero

Nessun Commento »
Puoi lasciare una risposta, oppure fare un trackback dal tuo sito.
Vuoi essere il primo a lasciare un commento per questo articolo? Utilizza il modulo sotto..
Lascia un commento

