Dal corso: Formazione essenziale su Python

Definire una funzione

- [Istruttore] Le funzioni sono l'unità di base del codice riutilizzabile in Python. Quindi, diamo un'occhiata a come funzionano. Qui a Komodo, ho aperto una copia funzionante di function.py dal capitolo 7 dei file degli esercizi. Voglio iniziare qui in fondo perché questo è rilevante e ora abbiamo più contesto per descriverlo in modo più dettagliato. Abbiamo già trattato le espressioni condizionali e se e blocchi e cose del genere. E così, voglio solo descrivere come funziona in modo un po 'più dettagliato. Quindi, noti che è un'istruzione if, e i due punti sono proprio qui, e sulla stessa linea abbiamo una funzione chiamata a main. E così, con un'istruzione if potresti avere il codice sulla stessa riga purché sia solo una riga di codice. Normalmente è disapprovato, ma questo è un caso in cui è comunemente fatto in questo modo. E poi abbiamo questa espressione condizionale qui che confronta l'uso del doppio uguale a un test per l'uguaglianza, per l'uguaglianza di valore. Il nome speciale della variabile con doppi caratteri di sottolineatura su entrambi i lati contro una stringa letterale che dice principale con doppi caratteri di sottolineatura su ciascun lato. Quindi questa variabile nome, questo nome speciale della variabile, restituirà il nome del modulo corrente. Quindi, se questo file fosse stato incluso in un'altra unità di esecuzione dall'istruzione import, in altre parole se qualcuno avesse digitato import e il nome di questo file, allora questo sarebbe in esecuzione come modulo e questo nome avrebbe il nome del modulo qui, ma non è in esecuzione come modulo. Nessuno lo ha importato ed è in esecuzione come unità principale di esecuzione. E così, a causa di ciò, questo valore principale è un valore speciale che significa "No, questo non è importante, questo è il file principale." E quindi testiamo per questo, e vedrai più avanti quando inizieremo a parlare di moduli come questo può tornare particolarmente utile. Ma, è spesso usato per questo scopo perché questo chiama principale, che è definito sopra e va bene perché puoi chiamare funzione se è stato definito in anticipo, ma principale poi chiama gattino che è definito dopo di esso e quindi se non avessimo questo e non avessimo una funzione principale ma avevamo funzione da trovare dopo di esso, non saremmo in grado di chiamarlo e quindi questo è chiamato per le dichiarazioni, e Python non supporta le dichiarazioni. E quindi, questo è il lavoro standard per questo. E vedrai molto, infatti, è così comune che Komodo qui, ha il completamento del codice per questo. Se digito "if e due caratteri di sottolineatura", noti che ci sono un certo numero di scelte e una di queste è esattamente quella riga di codice e posso semplicemente digitare "main", e boom, il codice lo completa per me. Questo è solo per mostrarti quanto sia comune questo modello, lo vedrai molto soprattutto nei moduli. E così ora, se salvo questo ed eseguo, vedete che dice miagolare, è perché questo se chiama principale, che è quassù, e questo principale chiama gattino, che è una funzione definita qui, e che chiama la funzione di stampa che stampa miagolare. Ora, una definizione di funzione assomiglia a questa. Ha la parola chiave def e poi il nome della funzione e una coppia di parentesi e due punti e poi un blocco di codice. E così, abbiamo già visto quel modello prima e questo è molto, molto comune. Posso, se voglio, posso mettere una variabile o un valore o qualcosa del genere qui, posso inserire il numero 5 e poi qui sotto posso catturarlo mettendo una variabile tra parentesi. Quindi, le parentesi vengono utilizzate per passare i parametri e, se voglio, posso renderlo una stringa f e posso stampare quella n, e salvare ed eseguire, e ora che 5 viene stampato da quell'istruzione di stampa. E così, ovviamente, sai che se lo cambio in un 3, stamperà un 3 lì. Quindi, è così che passi i parametri a una funzione e, ovviamente, puoi mettere un coma e passare più di un parametro se lo desideri. E potresti catturarli tutti allo stesso modo nella funzione. Tutte le funzioni restituiscono anche un valore. Quindi, se invece qui, e lasciatemi rimuovere quelli per ora perché non lo useremo. Se volessi, potrei dire che x è uguale a gattino e quindi potrei stampare il valore di x. E, quando salvo ed eseguo, non dice nessuno perché la funzione non restituisce esplicitamente un valore. Il valore restituito è il valore speciale none. Pertanto, tutte le funzioni restituiscono un valore. Se non specifichi il valore, non ne restituiranno nessuno. Se invece volessi restituire la stringa, potrei farlo e ora questa dichiarazione di stampa qui sulla riga 6 stamperà il miagolio. Quindi, Python non ha distinzione tra una funzione e una procedura. Alcune lingue lo fanno. Alcuni linguaggi considerano una funzione qualcosa che restituisce un valore e una procedura qualcosa che non restituisce un valore. In Python, tutte le funzioni restituiscono un valore, anche se il valore non è nessuno, quindi non c'è distinzione tra funzioni e procedure. Le funzioni Python sono semplici e potenti. E entreremo nei dettagli nel resto di questo capitolo.

Contenuti