Hvordan bruke Python Generator -funksjonene hvordan

Hvordan bruke Python Generator -funksjonene hvordan
Generatorfunksjonen fungerer på samme måte som den normale funksjonen. Men når det er på tide å returnere en verdi, bruker vi avkastningsfunksjonen i stedet for å returnere i Python. Generatorfunksjonen fungerer ved hjelp av generatorobjekter. I denne artikkelen lærer vi den betydelige forskjellen mellom normale og generatorfunksjoner.

Syntaks

Avkastningsuttrykk

Python avkastning returnerer generatorobjektet. Dette er de spesielle objektene som hjelper til med å få verdien. På grunn av dette er det iterert.

Verktøy fra Python Generator

Generatorfunksjon:

Disse funksjonene er definert som en normal funksjon “def”, men de bruker avkastningsnøkkelordet i stedet for retur. Dermed oppnås resultatet en om gangen.

Generatoruttrykk:

Disse uttrykkene fungerer på samme måte som listeforståelsene. Imidlertid er de forskjellige i ett aspekt. Når de returnerer et objekt, viser det resultatet bare når det kreves i stedet for å produsere resultatlistene.

Eksempel

En enkel illustrasjon for å opplyse konseptet med generatorer blir forklart nedenfor. Til å begynne med vil vi definere generatoren, da vi pleide å definere en enkel funksjon. Etter det vil vi skrive ut strengen og vil bruke avkastningsnøkkelordet for å returnere verdien.

Def gen ()
Avkastning 10

Der gen () er navnet på en generator, hver gang avkastningen kalles, returnerer den verdien som skal vises.

For å få utgangen på Linux, gå til Ubuntu -terminalen og skriv følgende kommando:

$ python3 '/home/aqsa/dokumenter/resultTemp.py '

Der Python3 er et nøkkelord som brukes, har vi brukt banen til en fil som har utvidelsen av “.py ”som viser at filen er skrevet i Python.

Utgangen er som følger:

Du kan se at avkastningsfunksjonen har returnert hver verdilinje for linje.

Forskjell mellom generatoren og de normale funksjonene

Her har vi tatt et eksempel for å forklare forskjellen mellom en vanlig funksjon og generatoren som har en avkastningsfunksjon. Til å begynne med er den normale funksjonen definert:

Def funksjon ()

I denne funksjonen er bare en streng trykt som en utgang. For det andre har vi definert en generator.

Def generator ()

Dette vil gi strengen som en utgang. Etter å ha definert både funksjonen og generatoren, vil vi tillate funksjonsanropene og la dem skrive ut.

Print (Generator ())

Nå vil vi se utgangen ved å utføre den samme praksisen beskrevet ovenfor.

Fra utgangen kan du se at resultatet av normalfunksjonen oppnås, men generatoren har vist en slags feil. Så det er en annen måte å skaffe utgangen ved å bruke generatorens objekt. Vi har tatt det samme eksemplet som beskrevet ovenfor for å forklare funksjonaliteten. Hele koden er den samme, men metoden for utskrift av generatoren erstattes med følgende kode:

Print (neste (generator ())))

Denne kommandoen vil hjelpe med å hente strengen som er skrevet i generatoren.

Nå, fra utdataene, kan du se at i stedet for å vise feilmeldingen. Ønsket utgang oppnås i form av en streng.

Få/les verdiene fra generatorfunksjonen

Det er forskjellige funksjoner som hjelper til med å skaffe utgangen fra generatoren. Vi vil diskutere to av dem en etter en.

Liste ()

En liste er et objekt som inneholder verdiene i parentesene. Dette objektet er iterable og viser verdiene med iterasjoner. I generatoren vil listene vise alle verdiene som generatoren har. Foruten listen, for Loop () og Next () brukes også funksjoner for å presentere utgangen.

Tenk på et eksempel der vi har definert en generator som heter "funksjon" der vi har brukt en for loop for tallene for å iterere. En matematisk operasjon utføres i denne funksjonen. Generatorfunksjonen mottar en verdi som sendes som en parameter når denne funksjonen kalles.

For x i rekkevidde (n):
If (x%2 == 0):
Avkastning x

Dette er kjernekoden til generatorfunksjonen:

Etter å ha funnet modulen, returneres den resulterende verdien ved å bruke utbytte. Deretter gjøres den videre prosedyren for utskrift gjennom listefunksjonen som følger som følger.

Print (List (Num))

Denne funksjonen gir utgangen i form av en liste. For eksempel vises utgangen nedenfor:

Neste ()

Følgende funksjon vil vise neste verdi i hvilken som helst liste, matrise eller, objekt. Hvis vi bruker neste funksjon i en tom matrise, vil den vise en feilmelding. Så for å få fin verdi, skal matrisen eller listen ikke være tom. Den samme matematiske operasjonen brukes i dette eksemplet. Metoden for utskrift er imidlertid annerledes. Siden 20 er antallet som er bestått som en parameter, vil tallene oppnås til 20 oppnås i utgangen. Vi fullførte syv runder.

Print (neste (Num))

Nå vil vi se utdataene. Merk, alle jevnlige tall oppnås:

Fibonacci nummerserie og generatorene

Fibonacci -serien er sekvensen av tall som er anskaffet ved å legge til de to siste tallene før den. Vi har brukt følgende eksempel for å forstå funksjonaliteten til generatorer. I denne funksjonen har vi tatt to variabler som lagrer to numeriske verdier i dem. Vi har også tatt en tellende variabel. Denne funksjonen vil fungere på en slik måte at den vil sjekke om verdien av tellingen er mindre enn det gjeldende tallet. Deretter vil det legge til de to foregående tallene, og det vil redde dem i den neste. Prosessen vil forbli til nummer 7 er nådd. Til slutt oppnås resultatet ved å bruke for -loopen ().

Utgangen fra den festede ovenfor koden er som følger:

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

Funksjonsanrop ved å bruke avkastning

Dette er eksemplet med å kalle funksjonen ved å bruke utbyttet. Til sammenligning har vi brukt kvadratfunksjonen i generatoren.

Def getquare (n):
Avkastningstest (i)

Gjennom utbyttefunksjonen har vi brukt funksjonssamtalen for å få svaret:

Den nødvendige utgangen er gitt nedenfor:

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

Konklusjon

I denne artikkelen har vi forklart eksemplene på en generator, hvordan vi kan oppnå utgangen, og forskjellen mellom generatoren og den normale funksjonen.