Pensare da informatico/Variabili, espressioni ed istruzioni: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Airon90 (discussione | contributi)
Gian BOT (discussione | contributi)
m Bot: sostituzione tag obsoleti
Riga 5:
Questi valori appartengono a '''tipi''' diversi: 2 è un intero, e "Hello, World!" è una '''[[w:Stringa (informatica)|stringa]]''', così chiamata perché contiene una serie (o "stringa") di caratteri. L'interprete può identificare le stringhe perché sono racchiuse da virgolette.
 
L'istruzione <ttcode>print</ttcode> funziona sia per le stringhe che per gli interi.
<source lang="python">
>>> print 4
Riga 57:
| pi || 3.14159
|}</center>
L'istruzione <ttcode>print</ttcode> funziona anche con le variabili:
<source lang="python">
>>> print messaggio
Riga 205:
Quando più operatori compaiono in un'espressione, l'ordine di valutazione dipende dalle '''regole di precedenza'''. Python segue le stesse regole di precedenza usate in matematica:
 
# '''Parentesi''': hanno il più alto livello di precedenza e possono essere usate per far valutare l'espressione in qualsiasi ordine. Dato che le espressioni tra parentesi sono valutate per prime, <ttcode>2*(3-1)</ttcode> dà come risultato <ttcode>4</ttcode>, e <ttcode>(1+1)**(5-2)</ttcode> dà <ttcode>8</ttcode>. Puoi usare le parentesi per rendere più leggibile un'espressione come in <ttcode>(minuti*100)/60</ttcode>, anche se questo non influisce sul risultato.
# '''Elevamento a potenza''': ha la priorità successiva così <ttcode>2**1+1</ttcode> fa <ttcode>3</ttcode> e non <ttcode>4</ttcode>, e <ttcode>3*1**3</ttcode> fa <ttcode>3</ttcode> e non <ttcode>27</ttcode>.
# '''Moltiplicazione''' e '''Divisione''' hanno la stessa priorità, superiore a somma e sottrazione. <ttcode>2*3-1</ttcode> dà <ttcode>5</ttcode> e non <ttcode>4</ttcode>, e <ttcode>2/3-1</ttcode> fa <ttcode>-1</ttcode>, e non <ttcode>1</ttcode> (ricorda che la divisione intera <ttcode>2/3</ttcode> restituisce <ttcode>0</ttcode>).
# '''Addizione''' e '''Sottrazione''', anch'esse con la stessa priorità.
# Gli operatori con la stessa priorità sono valutati da sinistra verso destra, così che nell'espressione <ttcode>minuti*100/60</ttcode>, la moltiplicazione è valutata per prima, ottenendo <ttcode>5900/60</ttcode>, che a sua volta restituisce <ttcode>98</ttcode>. Se le operazioni fossero state valutate da destra a sinistra il risultato sarebbe stato sbagliato: <ttcode>59*1=59</ttcode>.
 
== Operazioni sulle stringhe ==
Riga 247:
Questa capacità può non sembrare particolarmente impressionante, ma vedrai presto altri esempi in cui la composizione permette di esprimere elaborazioni complesse in modo chiaro e conciso.
 
Attenzione: ci sono dei limiti su "dove" puoi usare certe espressioni. Per esempio la parte sinistra di un'istruzione di assegnazione può solo essere una variabile, e non un'espressione. <ttcode>minuti*60 = ore</ttcode> è illegale.
 
== Commenti ==
Man mano che il programma cresce di dimensioni diventa sempre più difficile da leggere. I linguaggi formali sono ricchi di significato, e può risultare difficile capire a prima vista cosa fa un pezzo di codice o perché è stato scritto in un certo modo.
 
Per questa ragione è una buona idea aggiungere delle note ai tuoi programmi per spiegare con un linguaggio naturale cosa sta facendo il programma nelle sue varie parti. Queste note sono chiamate '''commenti''', e sono marcati dal simbolo <ttcode>#</ttcode>:
<source lang="python">
# calcola la percentuale di ore trascorse
Riga 259:
In questo caso il commento appare come una linea a sé stante. Puoi eventualmente inserire un commento alla fine di una riga:
<source lang="python">percentuale = (minuti*100)/60 # attenzione: divisione intera </source>
Qualsiasi cosa scritta dopo il simbolo <ttcode>#</ttcode> e fino alla fine della riga viene trascurata nell'esecuzione del programma. Il commento serve al programmatore o ai futuri programmatori che dovranno usare questo codice. In questo ultimo esempio il commento ricorda al lettore che ci potrebbe essere un comportamento inatteso dovuto all'uso della divisione tra numeri interi.
 
== Glossario ==