Come utilizzare le funzioni del generatore di Python Howto

Come utilizzare le funzioni del generatore di Python Howto
La funzione del generatore funziona in modo simile alla funzione normale. Ma quando è il momento di restituire un valore, utilizziamo la funzione di rendimento invece di tornare in Python. La funzione del generatore funziona con l'aiuto degli oggetti del generatore. In questo articolo, impareremo la differenza significativa tra le funzioni normali e il generatore.

Sintassi

Espressione di snervamento

Python Rese restituisce l'oggetto generatore. Questi sono gli oggetti speciali che aiutano a ottenere il valore. Per questo motivo, è iterato.

Strumenti del generatore di Python

Funzione del generatore:

Queste funzioni sono definite come una funzione normale "def", ma usano la parola chiave di rendimento invece di restituire. Pertanto, il risultato è ottenuto uno alla volta.

Espressioni del generatore:

Queste espressioni funzionano in modo simile alle comprensioni dell'elenco. Tuttavia, differiscono in un aspetto. Mentre restituiscono un oggetto, mostra il risultato solo quando richiesto invece di produrre gli elenchi dei risultati.

Esempio

Una semplice illustrazione per illuminare il concetto di generatori è spiegato di seguito. Inizialmente, definiremo il generatore, come usavamo per definire una semplice funzione. Successivamente, stamperemo la stringa e utilizzeremo la parola chiave di rendimento per restituire il valore.

Def gen ()
Resa 10

Dove gen () è il nome di un generatore, ogni volta che viene chiamato il rendimento, restituisce il valore da visualizzare.

Per ottenere l'output su Linux, vai al terminale Ubuntu e scrivi il seguente comando:

$ python3 '/home/aqsa/documents/resulttemp.Py '

Laddove Python3 è una parola chiave utilizzata, abbiamo usato il percorso di un file con l'estensione di ".Py ”che mostra che il file è scritto in Python.

L'output è il seguente:

Puoi vedere che la funzione di rendimento ha restituito ogni valore di linea per riga.

Differenza tra il generatore e le normali funzioni

Qui, abbiamo preso un esempio per spiegare la differenza tra una funzione regolare e il generatore con una funzione di rendimento. Inizialmente è definita la funzione normale:

Funzione def ()

In questa funzione, solo una stringa viene stampata come output. In secondo luogo, abbiamo definito un generatore.

DEF GENERATOR ()

Ciò produrrà la stringa come output. Dopo aver definito sia la funzione che il generatore, consentiremo le chiamate della funzione e lasciamo che stampino.

Stampa (generatore ())

Ora visualizzeremo l'output eseguendo la stessa pratica sopra descritta.

Dall'output, è possibile vedere che si ottiene il risultato della funzione normale, ma il generatore ha mostrato una sorta di errore. Quindi, esiste un altro modo per ottenere l'output usando l'oggetto del generatore. Abbiamo preso lo stesso esempio descritto sopra per spiegare la funzionalità. L'intero codice è lo stesso, ma il metodo di stampa del generatore viene sostituito con il seguente codice:

Stampa (Next (Generator ()))

Questo comando aiuterà a recuperare la stringa scritta nel generatore.

Ora, dall'output, è possibile visualizzare che invece di visualizzare il messaggio di errore. L'output desiderato si ottiene sotto forma di una stringa.

Ottieni/leggi i valori dalla funzione del generatore

Esistono diverse funzioni che aiutano a ottenere l'output dal generatore. Ne discuteremo due di loro uno per uno.

Elenco ()

Un elenco è un oggetto che contiene i suoi valori all'interno delle parentesi. Questo oggetto è iterabile e visualizza i valori con iterazioni. Nel generatore, gli elenchi visualizzeranno tutti i valori che il generatore contiene. Oltre all'elenco, per le funzioni Loop () e Next () vengono utilizzate anche per presentare l'output.

Considera un esempio in cui abbiamo definito un generatore chiamato "funzione" in cui abbiamo usato un ciclo per i numeri per iterare. Un'operazione matematica viene eseguita in questa funzione. La funzione generatore riceve un valore che viene passato come parametro quando viene chiamata questa funzione.

Per x nell'intervallo (n):
If (x%2 == 0):
Resa x

Questo è il codice principale della funzione del generatore:

Quindi, dopo aver trovato il modulo, il valore risultante viene restituito utilizzando la resa. Successivamente, l'ulteriore procedura di stampa viene eseguita tramite la funzione dell'elenco che segue.

Stampa (elenco (num))

Questa funzione fornisce l'output sotto forma di un elenco. Ad esempio, l'output è mostrato di seguito:

Prossimo()

La seguente funzione verrà visualizzata il valore successivo in qualsiasi elenco, array o, oggetto. Se utilizziamo la funzione successiva in qualsiasi array vuoto, mostrerà un messaggio di errore. Quindi, per ottenere il valore fine, l'array o l'elenco non dovrebbero essere vuoti. La stessa operazione matematica viene applicata in questo esempio. Tuttavia, il metodo di stampa è diverso. Poiché 20 è il numero passato come parametro, i numeri verranno ottenuti fino a 20 nell'output. Abbiamo completato sette round.

Stampa (Next (Num))

Ora vedremo l'output. Nota, si ottengono tutti i numeri pari:

Serie di numeri Fibonacci e generatori

La serie Fibonacci è la sequenza di numeri acquisiti aggiungendo gli ultimi due numeri prima. Abbiamo usato il seguente esempio per comprendere la funzionalità dei generatori. In questa funzione, abbiamo preso due variabili che archiviano due valori numerici in essi. Abbiamo anche preso una variabile di conteggio. Questa funzione funzionerà in modo tale da verificare se il valore del conteggio è inferiore al numero corrente. Successivamente, aggiungerà i due numeri precedenti e li salverà nel prossimo. Il processo rimarrà fino al raggiungimento del numero 7. Infine, il risultato viene ottenuto utilizzando il loop ().

L'output del codice apposto sopra è il seguente:

0, 1, 1, 2, 3, 5, 8

Chiamata di funzione utilizzando il rendimento

Questo è l'esempio di chiamare la funzione usando il rendimento. In confronto, abbiamo usato la funzione quadrata nel generatore.

Def getsquare (n):
Test di resa (i)

Attraverso la funzione di rendimento, abbiamo usato la chiamata della funzione per ottenere la risposta:

L'output richiesto è riportato di seguito:

0, 1, 4, 9, 14, 25, 36, 49, 64, 81

Conclusione

In questo articolo, abbiamo spiegato gli esempi di un generatore, come possiamo ottenere l'output e la differenza tra il generatore e la funzione normale.