Fino ad ora abbiamo scritto codice con if-test. E se il risultato è
vero, allora otteniamo a schermo le rows [NdT righe] dai dati. Quindi, in questa piccola sezione, voglio mostrarvi come,
invece, potete contare il numero di rows nelle quali l'if-test è vero.
E questo è molto simile a ciò che si fa veramente con i computer. Allora
per farlo, dobbiamo aggiungere del codice a quello che
abbiamo. Allora, è tutto scritto qui, ma ve lo mostro in questo esempio
di codice. Ci sono tre cose che devono essere aggiunte per poter contare. La prima è
l'introduzione di una nuova variabile, con la quale potrò contare. La imposterò
a zero e lo faccio prima dell'inizio del loop. Quindi,
count è uguale a zero. Poi, dentro al loop, dentro all'if-statement, dove
stamperei le row come abbiamo fatto molte volte. Ma allora avrò
anche questo codice: count=count+1. Ed è una linea divertente.
Vi dirò cosa fa. Quanlunque valore sia immagazinato in count
aumenta di uno. Quindi passa da cinque a sei, o da dieci a undici,
Ma lasciate che vi spieghi come funziona. In matematica
questa linea non ha molto senso. Un po' come che valore è uguale a se stesso
più uno. Ma il motivo per cui funziona in un computer è che la funzione del segno uguale
in codice è più semplice che in matematica. E il concetto
chiave da capire è che prima considera il lato destro. E poi
solo dopo aver risolto ed ottenuto un valore, allora quel valore è immagazzinato
nella variabile nel lato sinistro. Immaginiamo la primissima esecuzione. Count è
a zero e poi arriva a questa linea. La prima cosa che fa è prendere in considerazione
il lato destro. Quindi count è zero, zero più uno è uno. Quindi
da questa parte abbiamo uno. Una volta arrivati a questo, lo immagazzina in count così ora
count è uno. Potete vedere che l'azione inizia con count
che è zero e poi diventa uno. Quindi aumenta. La
volta successiva, se l'if-statement è vero, il valore
a destra vale uno. Uno più uno fa due, ed ho ottenuto
che due sia archiviato in count, che adesso vale due.
Quindi, alla fine, non serve un comando generale per queste cose,
dovete solo sapere che x=x+1 per una variabile, aumenta sempre
di uno, ogni volta che viene eseguito. Allora, dicevo che ci sono tre parti. Abbiamo impostato
zero e count=count+1 nell'if-statement e poi
alla fine stampiamo qualunque valore sia rimasto in count dopo
che il for-loop è stato eseguito. Adesso proviamo. Se eseguo questo ciò che vediamo è che
il loop viene eseguito, controlla i nomi che iniziano con "A".
Vediamo tutti questi nomi che iniziano per "A". Poi, alla fine, c'è questa line "count:258"
Quello che ci mostra è che quando il for-loop è iniziato count era a zero.
The for-loop ha fatto tutti i suoi conti. L'if-statement era vero, sembra, 258 volte
su 2.000 valori. E otteniamo questo "count: 258". Che compare a schermo
per questa linea. Che viene eseguita solo dopo il loop, dopo che tutte le
stampe interne sono state fatte. Ok, adesso facciamo un po' di esperimenti. Una cosa semplice
da fare è, beh, e se togliessi i print dentro al loop?
Vediamo, continuerò a cercare attraverso le row, ho ancora l'if-statement, ma
l'unica cosa che succede dentro all'if-statement è count=count+1.
Solo aumentare di uno. Se eseguo adesso il programma, ottengo semplicemente
questa linea. Lo eseguo e semplicemente, bam, 258. Inizia a
sembrare più quello che ci si aspetta da un computer, che
assimila grandi quantità di dati, li esamina e restituisce
una specie di risposta finale. Ok, allora, proviamo qualche problema.
E come al solito, otteniamo la variabile come soluzione. Calcoliamo quanti nomi iniziano con "X" e poi
paragoniamoli a quanti iniziano con "Y". Allora, se voglio contare quanti nomi iniziano
con "X", cambio count e count=count + uno
count=count+1 lo posso lasciare. Quindi, dirò, quanti iniziano
con "X"? Se lo eseguo, mi darà sei. E adesso, oh beh, e se volessi sapere
quanti iniziano con "Y"? Possiamo tenere tutta la struttura
e cambiare solo "Y". Il risultato è diciassette, quindi credo che
ci siano più nomi che inziano con "Y", molti di più che con "X".
Poi vediamo quante bambine ci sono con il nome che inizia con "A", poi cambiamo e contiamo quanti nomi di bambini
iniziano con "A". Questo richiederà il materiale della scorsa lezione.
Diciamo startsWith("A"). Aggiungiamo e ("&&") row.getField("gender")=="girl"
E poi dentro mettiamo
count=count+1. Ok, 169. Il prossimo problema è
quanti sono i nomi di bambini. Per i bambini mi basta cambiare questo. L'impostazione dell'if
e la funzione sono le stesse. E' solo che se prima
avremmo scritto print(row), ora abbiamo count=count+1 per fare il conteggio.
[incomprensibile] ci sono più nomi [incomprensibile]. Okay, questa è una prima
occhiata alle basi del conteggio. Proviamo alcuni esercizi.