Питхон

Питхон Генератор

Питхон Генератор
У овој теми научићемо Питхон Генератор.

Дефиниција: Генератор је попут нормалне функције која генерише низ вредности помоћу принос кључна реч. Враћа један по један објекат. Интерно користи итератор. Да бисте приступили следећем елементу следећи() функција се користи или је можемо користити за петља. Ако покушавамо да приступимо вредности изван опсега, она подиже а СтопИтератион грешка.

Видећемо неки пример за боље разумевање

Пример: функција генератора за опсег вредности

деф ранге_фун (н):
к = 0
док је х < n:
принос к
к + = 1
и = опсег_забаве (3)
#цалл користећи фор петљу
принт ('Генериши вредности помоћу методе нект ()')
за и у ранге_фун (3):
испис (и)
#цалл генератор користећи следећу методу
принт ('Генериши вредности користећи методу петље')
испис (следећи (и))
испис (следећи (и))
испис (следећи (и))
принт (нект (и)) # Покренуће се изузетак Стоп Итератион

Пр: Функција генератора за Фибоначијеву серију

деф фиб_фун (н):
к, и = 0, 1
док је х < n:
принос к
к, и = и, к + и
з = фиб_фун (6) # објекат генератора
принт ('Генериши вредности помоћу методе нект ()')
испис (следећи (з))
испис (следећи (з))
испис (следећи (з))
испис (следећи (з))
испис (следећи (з))
испис (следећи (з))
принт ('Генериши вредности користећи методу петље')
за и у фиб_фун (6):
испис (и)

Пр: Функција генератора за стварање опсега вредности задатих почетних и крајњих вредности.

деф ми_ранге (почетак, крај):
струја = старт
док је актуелна < end:
струја приноса
струја + = 1
принт ('Генериши вредности помоћу методе нект ()')
нумс = мој_опсег (1,5)
испис (следећи (бројеви))
испис (следећи (бројеви))
испис (следећи (бројеви))
испис (следећи (бројеви))
принт ('Генериши вредности користећи методу петље')
за нум у ми_ранге (1,5):
испис (нум)

Пр: Генератор за множење сваког броја (мањег од броја) бројем

деф ген_мулби_нум (макс., број):
н = 0
док је н < max:
принос н * број
н + = 1
за и у ген_мулби_нум (5,3):
испис (и)

Пр: Генератор за проналажење коцке за опсег вредности

деф ген_мулби_нум (макс., број):
н = 0
док је н < max:
принос н * број
н + = 1
за и у ген_мулби_нум (5,3):
испис (и)

Пр: више генератора: пронађите квадрат парних бројева генерисаних од броја

Генератор 1: генерисање парних вредности из датог броја

Генератор 2: генерише квадратне бројеве из вредности генератор1

деф ген_евен (м):
н = 0
док је н < m:
ако је н% 2 == 0:
принос н
н + = 2
деф ген_скуаре (бројеви):
за нум у бројевима:
принос 2 * бр
за н у ген_скуаре (ген_евен (15)):
испис (н)


Пр: Вишеструки генератори: креирајте фибначијеве серије и додајте вредност 10 сваком броју.

Генератор1: генерише фибоначијеве серије из датог броја

Генератор2: додајте сваки број са 10 из генератор1

деф ген_фиб (н):
к, и = 0, 1
док је х < n:
принос к
к, и = и, к + и
деф ген_адд_10 (бројеви):
за нум у бројевима:
принос 10 + бр
за н у ген_адд_10 (ген_фиб (5)):
испис (н)


Разумевања генератора:

Разумевања генератора слична су разумевањима списка где списак користи углате заграде; ово користи нормалне заграде.

Пр:

нумс = (и за и у опсегу (10))
испис (врста (бројеви))
испис (листа (бројеви))

Разлика између генератора и нормалне функције:

  1. Генератор даје вредности користећи принос Кључна реч где нормална функција користи повратак кључна реч
  2. Генератор започиње од места где се зауставио приликом следећег позива. Нормална функција извршава све изразе сваки пут.
  3. Генератор штеди меморију јер враћа једну по једну вредност. Тако да га можемо користити за генерисање бесконачних вредности.

Закључак:

Генератор је веома користан када радимо са великим / великим подацима. У датом тренутку садржи само један једини податак, а не целе податке. Концепт генератора сматра се напредним концептом у питхону.

ХД Ремастеред игре за Линук које никада раније нису имале Линук издање
Многи програмери и издавачи игара долазе са ХД ремастером старих игара како би продужили живот франшизе, молимо обожаваоце да захтевају компатибилност...
Како користити АутоКеи за аутоматизацију Линук игара
АутоКеи је услужни програм за аутоматизацију радне површине за Линук и Кс11, програмиран на Питхон 3, ГТК и Кт. Користећи његову скриптну и МАЦРО функ...
Како приказати бројач ФПС-а у Линук играма
Линук гаминг добио је велики потицај када је Валве најавио Линук подршку за Стеам клијент и њихове игре 2012. године. Од тада су многе ААА и индие игр...