(Python) Subroutine: procedure e funzioni - 2


Funzione di subroutine

Una funzione è una subroutine che restituisce un risultato (numero, stringa di caratteri, ecc.).< / div>
Immagina di aver ordinato un prodotto da un negozio online. Da un punto di vista della programmazione, hai chiamato una subroutine e, a differenza di una procedura, questa subroutine deve restituire un risultato: consegnare il prodotto che hai ordinato. Queste subroutine sono chiamate funzioni.
Una funzione è formattata esattamente allo stesso modo di una procedura. L'unica differenza rispetto alla procedura è la presenza di un operatore speciale return, dopo il quale viene scritto il valore da restituire al programma principale.

Una funzione che restituisce la media aritmetica di due numeri interi sarebbe simile a questa:
def media(a, b):
    media = (a + b) / 2
    ritorno medio
Resta da capire come chiamare questa funzione nel programma principale:
Non dovresti chiamare una funzione allo stesso modo di una procedura:
media(10, 5) 

Il valore restituito dalla funzione andrà perso. È come se la merce del negozio online non fosse data a nessuno, ma buttata via. È improbabile che piaccia al cliente.

È più corretto salvare il risultato in una variabile (o stamparlo sullo schermo):
a = media(10, 5) 
print(media(10, 5))

Devi ricordare!
  1. Una subroutine di funzione è formattata allo stesso modo di una procedura.
  2. La funzione viene chiamata nel punto del programma in cui inseriresti il ​​valore. Ad esempio, come parametro di un'istruzione print() o in un'espressione aritmetica. 

Algoritmo di Euclide

Algoritmo di Euclide — BC efficiente" title="Algorithm">Algoritmo Per trovare Massimo comune divisore  due Interi (o generale misure  due Linee). L'algoritmo prende il nome da Greco Matematica Euclide (III secolo a.C. ), che per primo la descrisse in stile VII e X libri «Inizi". È uno dei più antichi algoritmi numerici in uso oggi.

Ricorda la matematica.

Massimo comune divisore di due numeri naturali (mcd) è il più grande numero naturale per il quale sono divisibili.

Ad esempio, i numeri 12 e 18 hanno divisori comuni: 2, 3, 6. Il massimo comune divisore è 6. Questo è scritto come: mcd(12, 18) = 6

Nella programmazione esistono diverse implementazioni dell'algoritmo di Euclide. Ecco una descrizione di uno di essi sotto forma di diagramma a blocchi.


Prova a implementare questo algoritmo.

Funzioni logiche

Spesso i programmatori usano funzioni booleane che restituiscono valori booleani "true" o "falso" (veroo falso)
Tali funzioni sono utili per   controlla alcune proprietà.
Consideriamo due esempi di scrittura di una funzione logica che controlla se un numero è pari.
 
Descrizione Esempio di sottoprogramma
1) Modo migliore: il risultato dell'espressione n % 2 == 0 sarà vero (True) o falso (False)
def èEven(n):
    ritorno (n % 2 == 0)
2) Puoi scriverlo così, ma è comunque meglio non fare un disco più lungo
def isEven(n):
    se n % 2 == 0:
        restituisce vero;
    altro:
        restituisce False

E l'ultima nota sull'utilizzo di funzioni e procedure: il numero di funzioni e procedure nel programma non è limitato. Inoltre, una subroutine può chiamare un'altra subroutine e persino se stessa.