Python

Pythoni generaator

Pythoni generaator
Selles teemas õpime Python Generatorit.

Definitsioon: Generaator on nagu tavaline funktsioon, mis genereerib väärtuste vahemiku, kasutades saagikus märksõna. See tagastab ühe objekti korraga. See kasutab sisemiselt iteraatorit. Järgmisele elemendile juurdepääsemiseks järgmine () funktsiooni kasutatakse või saame seda kasutada eest silmus. Kui proovime juurdepääsu väärtusele väljaspool vahemikku, tõstab see a StopIteration viga.

Parema mõistmise jaoks näeme mõnda näidet

Nt: generaatori funktsioon väärtuste vahemiku jaoks

def vahemik_fun (n):
x = 0
samal ajal kui x < n:
saagis x
x + = 1
y = vahemiku_hulk (3)
# kõne kasutab loopi jaoks
print ('Väärtuste genereerimine järgmise () meetodi abil')
i jaoks vahemikus_käitumine (3):
trükk (i)
#kõne generaator järgmise meetodi abil
print ('Väärtuste loomine silmusmeetodi abil')
print (järgmine (y))
print (järgmine (y))
print (järgmine (y))
print (järgmine (y)) # Tõstetakse iteratsiooni peatamise erand

Nt: Generaatori funktsioon Fibonacci seeria jaoks

def fib_fun (n):
x, y = 0, 1
samal ajal kui x < n:
saagis x
x, y = y, x + y
z = fib_fun (6) #generaatori objekt
print ('Väärtuste genereerimine järgmise () meetodi abil')
print (järgmine (z))
print (järgmine (z))
print (järgmine (z))
print (järgmine (z))
print (järgmine (z))
print (järgmine (z))
print ('Väärtuste loomine silmusmeetodi abil')
i jaoks fib_funis (6):
trükk (i)

Nt: Generaatori funktsioon algus- ja lõppväärtuste väärtuste vahemiku loomiseks.

def minu_vahemik (algus, lõpp):
praegune = algus
samas praegune < end:
voolu vool
vool + = 1
print ('Väärtuste genereerimine järgmise () meetodi abil')
arv = minu_vahemik (1,5)
prindi (järgmine (arv))
prindi (järgmine (arv))
print (järgmine (arv)
print (järgmine (arv)
print ('Väärtuste loomine silmusmeetodi abil')
arvule vahemikus minu_vahemik (1,5):
print (arv)

Nt: Generaator iga numbri (vähem kui arv) korrutamiseks numbriga

def gen_mulby_num (max, arv):
n = 0
samas n < max:
saagis n * arv
n + = 1
i jaoks gen_mulby_num (5,3):
trükk (i)

Nt: Generaator kuupi leidmiseks väärtuste vahemiku jaoks

def gen_mulby_num (max, arv):
n = 0
samas n < max:
saagis n * arv
n + = 1
i jaoks gen_mulby_num (5,3):
trükk (i)

Nt: mitu generaatorit: leidke numbrist genereeritud paarisarvude ruut

1. generaator: genereerige antud arvust paarisväärtused

2. generaator: genereerige ruutu numbrid generaatori1 väärtustest

def gen_even (m):
n = 0
samas n < m:
kui n% 2 == 0:
saagis n
n + = 2
def gen_square (arv):
numbritele arvudes:
saagis 2 * arv
n jaoks gen_square'is (gen_even (15)):
print (n)


Nt: Mitu generaatorit: looge fibnacci seeria ja lisage iga numbri jaoks väärtus 10.

Generator1: genereerib etteantud arvust fibonacci seeria

Generaator2: lisage generaatorist 1 iga arv 10 võrra

def gen_fib (n):
x, y = 0, 1
samal ajal kui x < n:
saagis x
x, y = y, x + y
def gen_add_10 (arv):
numbritele arvudes:
saagis 10 + arv
n jaoks gen_add_10 (gen_fib (5)):
print (n)


Generaatori arusaamad:

Generaatori arusaamad on sarnased loendi mõistmistega, kus loendis kasutatakse nurksulgusid; see kasutab tavalisi sulgusid.

Nt:

arv = (i i jaoks vahemikus (10))
print (tüüp (arv))
print (loend (arv))

Generaatori ja normaalse funktsiooni erinevus:

  1. Generaator annab väärtused, kasutades saagikus märksõna, kus tavaline funktsioon kasutab tagasi märksõna
  2. Generaator algab sealt, kus see järgmisel korral helistati. Tavaline funktsioon täidab kõik väited iga kord.
  3. Generaator salvestab mälu, kuna see tagastab korraga ühe väärtuse. Seega saame seda kasutada lõpmatute väärtuste genereerimiseks.

Järeldus:

Generaatorist on palju abi, kui töötleme tohutute / suurte andmetega. Teatud ajahetkel mahutab see ainult ühe üksiku, mitte tervete andmete. Generaatorite kontseptsiooni peetakse püütonis täiustatud kontseptsiooniks.

X-Mouse Button Control abil saate hiire nupud erinevates tarkvarades erinevalt ümber teha
Võib-olla vajate tööriista, mis võiks muuta teie hiire juhtimissüsteemi iga kasutatava rakendusega. Sel juhul võite proovida rakendust nimega X hiiren...
Microsoft Sculpt Touch juhtmeta hiirte ülevaade
Lugesin hiljuti Microsoft Sculpt Touch juhtmevaba hiir ja otsustas selle osta. Pärast mõnda aega kasutamist otsustasin jagada sellega oma kogemusi. Se...
Rakenduse AppyMouse ekraanipaneel ja hiirekursor Windowsi tahvelarvutitele
Tahvelarvutite kasutajad tunnevad hiirekursorit sageli puudust, eriti kui neil on kombeks sülearvuteid kasutada. Puutetundliku ekraaniga nutitelefonid...