Słowo kluczowe yield
Proszę pisać funkcje generatorowe z użyciem yield, aby tworzyć własne iteratory.
Słowo kluczowe yield to bezpłatna lekcja Python Academy na CoddyKit. To lekcja 4 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Python Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Python Academy zawiera 4 lekcji w sumie.
Wprowadzenie
Czym jest yield?
def count_up(n):
for i in range(n):
yield i
for x in count_up(3):
print(x)Funkcja generatorowa a zwykła funkcja
def gen():
print('start')
yield 1
print('middle')
yield 2
g = gen() # no print yet
print(next(g)) # 'start', then 1Nieskończony generator
def naturals(n=0):
while True:
yield n
n += 1
import itertools
print(list(itertools.islice(naturals(), 5)))yield from
def chain(*iters):
for it in iters:
yield from it
print(list(chain([1,2], [3,4], [5])))Przekazywanie wartości za pomocą send()
def accumulator():
total = 0
while True:
n = yield total
if n is None: break
total += n
g = accumulator()
next(g) # prime
print(g.send(10))
print(g.send(5))Stan generatora
def stateful():
seen = set()
while True:
item = yield
seen.add(item)
yield len(seen)
g = stateful()
next(g); g.send('a'); print(next(g)); g.send('b'); print(next(g))Zamykanie generatora
def resource_gen():
try:
while True:
yield
finally:
print('cleaned up')
g = resource_gen()
next(g)
g.close()StopIteration i return
def gen_with_return():
yield 1
yield 2
return 'done'
g = gen_with_return()
try:
while True: print(next(g))
except StopIteration as e:
print('returned:', e.value)Generator ciągu Fibonacciego
def fibonacci():
a, b = 0, 1
while True:
yield a
a, b = b, a + b
import itertools
print(list(itertools.islice(fibonacci(), 10)))Generatory a klasy z __iter__
# Generator is simpler than:
# class Counter:
# def __iter__(self): return self
# def __next__(self): ...
print('generators simplify iterators')Szybkie sprawdzenie
Podsumowanie
Kontynuuj
Często zadawane pytania
Czy lekcja „Słowo kluczowe yield” jest bezpłatna?
Tak — pełny tekst „Słowo kluczowe yield” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Python Academy, przejdź na CoddyKit PRO. Kurs Python Academy zawiera 4 lekcji w sumie.
Co nauczysz się w „Słowo kluczowe yield”?
Proszę pisać funkcje generatorowe z użyciem yield, aby tworzyć własne iteratory. Ćwiczysz Python Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć Python Academy?
Nie wymagamy żadnego doświadczenia. Python Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 4 z 4.
Ile czasu zajmuje lekcja „Słowo kluczowe yield”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji Python Academy?
Tak. Każda lekcja Python Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- Rozumienie listowe
- Rozumienie zbiorów i słowników
- Wyrażenia generatorowe
- Słowo kluczowe yield