‫Ben tornato.
‫In questo video voglio parlare di un concetto importante, che è il ritorno.
‫È una parola chiave in Python che vedremo molto quando lavoreremo con le funzioni.
‫Quindi diamo un'occhiata.
‫Se diciamo che voglio creare una funzione chiamata sum, che, tra l'altro, esiste già in Python,
‫ma creeremo la nostra e dirò numero uno per numero uno.
‫E numero due, beh, la nostra funzione di somma aggiungerà nove uno più num due, una funzione carina e semplice.
‫Ora, se eseguo alcuni con il numero quattro e cinque, indovina cosa sta per succedere?
‫Vado a correre.
‫E non succede nulla, il che voglio dire, potrebbe non sorprenderti, perché non stiamo stampando nulla, giusto.
‫Ma cosa succede se eseguo la stampa qui?
‫Questo cambierà?
‫Vediamo.
‫Hmm, non ne ricevo nessuno.
‫È quello che ti aspettavi e non ne abbiamo mai visti prima.
‫Giusto, voglio dire, ricordi quando avevamo una lista, diciamo da uno a tre, e poi abbiamo fatto qualcosa
‫di simile?
‫Nel nostro Ed, ci ha dato questa piccola freccia e non ha detto nessuna, e abbiamo parlato di questa idea
‫di elenchi, qualcosa come clear cambia l'elenco effettivo e cancella tutto e svuota l'elenco.
‫Ma non restituisce un nuovo elenco.
‫Modifica semplicemente l'elenco esistente, ma invece non ne restituisce nessuno.
‫Bene, le funzioni sono proprio così.
‫Devono sempre restituire qualcosa.
‫E quando non restituiscono nulla come non c'è nessuna parola chiave di ritorno qui, non ne restituisce automaticamente nessuna.
‫Quindi, se non abbiamo qualcosa come il ritorno qui, non restituirà sempre nulla.
‫Ma se aggiungiamo il ritorno, dirà non appena arriviamo a, tipo, hey.
‫Voglio che tu esca da questa funzione e quando esci da questa funzione, voglio che tu restituisca qualunque cosa ci
‫fornisca questa espressione, se clicco, corro.
‫ne ho nove.
‫Se lo cambiamo in 10.
‫Più cinque, otteniamo 15.
‫E questa è una buona regola generale con le funzioni, perché le funzioni possono fare due cose, giusto?
‫Uno, può restituire qualcosa.
‫Quindi alla fine della funzione, qualunque cosa, dopo che la funzione viene eseguita, restituiamo qualcosa o
‫Nunn o una sorta di valore, una sorta di tipo di dati, oppure possiamo avere una funzione che non
‫restituisce nulla ma forse modifica qualcosa.
‫Quindi, per esempio, potrei stampare.
‫Ciao.
‫E se fossi corso qui.
‫Non ne restituisco nessuno perché non ho quell'istruzione return, tuttavia, la mia funzione fa qualcosa che modifica.
‫Bene, l'aspetto di questa tassa, giusto, un principe per noi.
‫Quindi una funzione modifica qualcosa nel nostro programma o restituisce qualcosa.
‫E questo è un argomento abbastanza avanzato che approfondiremo più
‫avanti quando parleremo di programmazione funzionale, ma una buona regola pratica con le funzioni è che una funzione dovrebbe fare una cosa davvero bene.
‫E di solito una funzione dovrebbe restituire qualcosa.
‫Ora, questo non significa che qualsiasi funzione che forse fa più cose o qualsiasi funzione che non
‫restituisce qualcosa sia cattiva, ma è generalmente buona pratica rendere il codice semplice e leggibile, per avere queste
‫due regole.
‫Ad esempio, qui, se ho stampa e addizione, sarà, questa funzione sta facendo più cose.
‫Si preoccupa della stampa e si preoccupa anche di qualcosa.
‫E la definizione di questa funzione è chiamata alcuni.
‫Voglio dire, se non lo sapessi o non l'ho visto e tutto ciò che ho fatto è stato eseguirne un po', penso che
‫avere una stampa alta sarebbe sorprendente perché il nome non descrive davvero cosa fa.
‫Voglio dire, mi aspetto che questo sia un po' di tempo.
‫Perché il mio programma dice ciao?
‫Quindi vogliamo assicurarci che la nostra funzione faccia davvero una cosa e solo una cosa?
‫Bene, perché come vedremo più avanti, possiamo combinare ed eseguire diverse funzioni insieme.
‫E poi vogliamo anche assicurarci di restituire qualcosa, perché in questo modo, quello che possiamo fare è
‫assegnare effettivamente questo valore di ritorno a una variabile.
‫Ad esempio, posso dire che il totale è uguale a circa 10.
‫Cinque.
‫E poiché questa funzione restituisce qualcosa e al termine, l'esecuzione avrà 15 come valore, è la stessa cosa di
‫quello che stiamo facendo qui.
‫Ed ecco la parte interessante ora che posso correre forse circa 10.
‫Più totale.
‫Ora, esaminiamo questo uno per uno.
‫Definisco la mia funzione, l'interprete Python dirà, va bene, so cosa è ora che
‫l'hai definito.
‫Lo terrò in memoria.
‫Continuerà ad andare avanti, fino alla linea sette.
‫E dirà, ehi, voglio un totale variabile e voglio che quella variabile totale sia uguale a circa 10
‫cinque.
‫E prima ancora di assegnare qualcosa a Total Python, l'interprete dirà qualcosa?
‫Alcuni di nuovo.
‫Oh, mi ricordo qui.
‫È in memoria, ok, ad alcuni gli darò gli argomenti 10 e 5.
‫Quindi eseguirà quella funzione.
‫Non appena finiremo questa parentesi di chiusura, andrà al sole.
‫Dirà, ehi, nessuno sarà uguale a dieci.
‫Ehi, il numero due sarà uguale a cinque.
‫Ora andiamo alla riga due e dirà, ehi, voglio che tu aggiunga dieci più cinque perché so cosa sono
‫queste variabili.
‫E poi una volta che hai finito e questo diventa 15, voglio che torni.
‫Quindi l'interprete Python, alla fine, quando ha finito di chiamarne qualcuno, dirà, ehi, assegna il
‫valore 15 alla variabile total e poi passerà alla riga successiva.
‫Ehi, voglio stampare qualcosa.
‫Cosa vuoi stampare?
‫Bene, voglio stampare questo.
‫Sta per dire, ehi, quello che so cosa c'è su questo.
‫Ce l'ho in memoria.
‫E poi di nuovo, dirà dieci.
‫E poi l'argomento successivo sarà totale.
‫Ehi, qual è il totale?
‫Lasciami andare a memoria e scoprilo.
‫Oh, sono le 15.
‫Quindi è come dire 50.
‫E questo è il potere delle funzioni, giusto, sono in grado di restituire cose e assegnarle a variabili e chiamarle in
‫questo modo e posso continuare a eseguirle se voglio.
‫Se voglio renderlo ancora più semplice, posso andare.
‫Alcuni invece del totale saranno proprio qui.
‫E guardalo adesso.
‫Ho tutto in una riga e se clicco su Esegui.
‫Ancora una volta, funziona ancora.
‫OK, ma cosa succede se facciamo qualcosa del genere?
‫E se dico definisci alcuni e poi dico definisci qui dentro un'altra funzione e questa funzione prende il numero
‫uno e il numero due.
‫E qui, finalmente, torniamo al numero uno e al numero due.
‫Hmm, proviamo questo.
‫Cosa pensi che succederà?
‫Bene, prima, diciamo che il totale è uguale a circa 10 più 20.
‫E poi stamperò il totale.
‫Se clicco, corro.
‫non ne ottengo nessuno.
‫Ora, perché è questo e questo dovrebbe essere ovvio per te, perché qui sto dicendo, ehi, voglio che
‫tu definisca qualcosa e cosa faremo con la funzione?
‫Alcuni bene, qui dentro, definirò un'altra funzione.
‫Ma questa istruzione return in realtà non viene eseguita.
‫Giusto, perché tutto ciò che stiamo facendo all'interno di questo blocco, questo blocco di codice.
‫È questa parte che stiamo definendo la funzione, ma non chiamiamo mai un'altra funzione.
‫Quindi questo non restituisce nessuno.
‫E abbiamo perso la capacità di chiamare bene questa funzione.
‫Quindi come possiamo risolverlo?
‫Un modo è tornare, giusto?
‫Quindi alla fine qui, dobbiamo assicurarci che il rientro sia corretto e restituiremo un'altra funzione.
‫Quindi aggiungiamo il ritorno e vediamo cosa succede qui.
‫Se clicco, corro.
‫Va bene, ottengo questa funzione ora, quindi total sarà uguale a questa funzione che abbiamo restituito ed è in
‫memoria.
‫OK, ma non ottengo il risultato che desidero, giusto?
‫E perché?
‫Perché mentre non chiamiamo questa funzione, ci sono alcuni modi in cui possiamo farlo.
‫Possiamo dargli i parametri o gli argomenti qui.
‫Quindi diciamo 10, 20.
‫E se clicco, corro.
‫Ottengo 30 o se vogliamo mantenere tutto ciò che gli diamo qui, posso semplicemente dire un altro funk.
‫Quindi se gli diamo il numero uno e il numero due e clicco su corri.
‫Ehi, guarda un po', ne ho 30.
‫Ora, questo video potresti dover guardare più e più volte, perché allunga un po' la tua
‫mente e, ad essere onesti, questa funzione non è molto buona perché va bene, è molto confusa.
‫La tua funzione dovrebbe essere facile da capire.
‫Quindi potremmo voler cambiare un po 'questo, forse invece qui di avere gli stessi nomi di parametro solo
‫per chiarirlo.
‫Forse possiamo dire e uno e e due.
‫E poi eccoci qui.
‫E uno più e due per chiarire che quando restituiamo quest'altra funzione, sto usando i parametri, numero uno e numero
‫due che abbiamo chiamato qui.
‫Perché questa definizione di una funzione non si preoccupa davvero di cosa siano queste cose.
‫Si preoccupa solo quando viene chiamata un'altra funzione.
‫Ora, se hai bisogno di mettere in pausa il video e guardare questo e magari esercitarti un
‫po', è completamente comprensibile.
‫Ma volevo mostrarti il potere del ritorno.
‫Puoi avere funzioni annidate proprio come potresti con i condizionali, ma devi stare attento
‫che la tua funzione restituisca qualcosa, altrimenti non restituirà nessuno.
‫E la maggior parte delle volte vorrai restituire qualcosa da una funzione in modo che possiamo fare qualcosa
‫di simile assegnandolo a una variabile in modo da poterlo utilizzare in seguito nei nostri programmi.
‫Ci vediamo al prossimo entro.
‫Un'ultima cosa, una parola chiave di ritorno esce automaticamente dalla funzione in modo che qui, se aggiungessi un altro
‫pezzo di codice come print, ciao?
‫O forse hanno anche restituito cinque qui, vedi che è ancora valido, ma se eseguo questo.
‫Ottengo ancora 30 perché l'interprete non arriva mai alla riga cinque e sei, perché non appena restituiamo
‫qualcosa da una funzione, esce da quella funzione.
‫E il motivo per cui questa parte non esce dalla funzione è perché, ricorda, all'interno di questa funzione,
‫stiamo definendo.
‫Quindi in realtà non stiamo eseguendo questa parte.
‫Stiamo solo dicendo, ehi, quando vediamo un'altra funzione in arrivo nel nostro codice, sappiamo di cosa si tratta,
‫ma non la eseguiremo.
‫Quindi sembrerà questo.
‫E non appena vede l'istruzione return, quando si raffredda, dirà, va bene,
‫sto uscendo da questa funzione con questo valore.
‫Solo un po' di attenzione.