Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Generaattoreiden Käytännön Sovellukset: Tosielämän Käyttötapaukset | Iteraattoreiden ja Generaattoreiden Hallinta Pythonissa
Practice
Projects
Quizzes & Challenges
Quizzes
Challenges
/
Pythonin Rakenteellinen Ohjelmointi

bookGeneraattoreiden Käytännön Sovellukset: Tosielämän Käyttötapaukset

Generaattoreita voidaan käyttää kevyinä kontekstinhallitsijoina resurssien tehokkaaseen hallintaan, kuten tietokantayhteyksiin, tiedostojen käsittelyyn tai lukitusmekanismeihin. contextlib-moduulin avulla generaattorit voivat hoitaa resurssien varauksen ja vapautuksen saumattomasti.

1234567891011121314
from contextlib import contextmanager @contextmanager def database_connection(): print("Opening database connection") connection = "Database Connection" # Simulated connection try: yield connection finally: print("Closing database connection") # Using the generator as a context manager with database_connection() as conn: print(f"Using {conn}")
copy

Suurten tietomäärien tehokas käsittely

Generaattorit soveltuvat erinomaisesti dataputkien rakentamiseen, joissa suuria tietomääriä käsitellään laiskasti. Jokainen putken vaihe voidaan toteuttaa generaattorina, mikä mahdollistaa tehokkaan ja muistia säästävän käsittelyn.

12345678910111213141516171819202122232425262728293031323334353637383940
import re # Stage 1: Read lines lazily def read_lines(text): for line in text.split("\n"): yield line # Stage 2: Filter non-empty lines def filter_lines(lines): for line in lines: if line.strip(): yield line # Stage 3: Extract words lazily def extract_words(lines): for line in lines: for word in re.findall(r'\w+', line): yield word # Stage 4: Transform words to lowercase def lowercase_words(words): for word in words: yield word.lower() # Input text text = """Generators are powerful tools They allow efficient data processing This pipeline demonstrates their usage""" # Build the pipeline lines = read_lines(text) filtered = filter_lines(lines) words = extract_words(filtered) lowercased = lowercase_words(words) # Process the data print("Processed words:") for word in lowercased: print(word)
copy

1. Mitä tapahtuu, kun generaattorifunktiolla ei ole enää arvoja, joita yield palauttaisi?

2. Mitä seuraava koodi tulostaa?

3. Mitä seuraava koodi tekee?

question mark

Mitä tapahtuu, kun generaattorifunktiolla ei ole enää arvoja, joita yield palauttaisi?

Select the correct answer

question mark

Mitä seuraava koodi tulostaa?

Select the correct answer

question mark

Mitä seuraava koodi tekee?

Select the correct answer

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 6. Luku 5

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme

bookGeneraattoreiden Käytännön Sovellukset: Tosielämän Käyttötapaukset

Pyyhkäise näyttääksesi valikon

Generaattoreita voidaan käyttää kevyinä kontekstinhallitsijoina resurssien tehokkaaseen hallintaan, kuten tietokantayhteyksiin, tiedostojen käsittelyyn tai lukitusmekanismeihin. contextlib-moduulin avulla generaattorit voivat hoitaa resurssien varauksen ja vapautuksen saumattomasti.

1234567891011121314
from contextlib import contextmanager @contextmanager def database_connection(): print("Opening database connection") connection = "Database Connection" # Simulated connection try: yield connection finally: print("Closing database connection") # Using the generator as a context manager with database_connection() as conn: print(f"Using {conn}")
copy

Suurten tietomäärien tehokas käsittely

Generaattorit soveltuvat erinomaisesti dataputkien rakentamiseen, joissa suuria tietomääriä käsitellään laiskasti. Jokainen putken vaihe voidaan toteuttaa generaattorina, mikä mahdollistaa tehokkaan ja muistia säästävän käsittelyn.

12345678910111213141516171819202122232425262728293031323334353637383940
import re # Stage 1: Read lines lazily def read_lines(text): for line in text.split("\n"): yield line # Stage 2: Filter non-empty lines def filter_lines(lines): for line in lines: if line.strip(): yield line # Stage 3: Extract words lazily def extract_words(lines): for line in lines: for word in re.findall(r'\w+', line): yield word # Stage 4: Transform words to lowercase def lowercase_words(words): for word in words: yield word.lower() # Input text text = """Generators are powerful tools They allow efficient data processing This pipeline demonstrates their usage""" # Build the pipeline lines = read_lines(text) filtered = filter_lines(lines) words = extract_words(filtered) lowercased = lowercase_words(words) # Process the data print("Processed words:") for word in lowercased: print(word)
copy

1. Mitä tapahtuu, kun generaattorifunktiolla ei ole enää arvoja, joita yield palauttaisi?

2. Mitä seuraava koodi tulostaa?

3. Mitä seuraava koodi tekee?

question mark

Mitä tapahtuu, kun generaattorifunktiolla ei ole enää arvoja, joita yield palauttaisi?

Select the correct answer

question mark

Mitä seuraava koodi tulostaa?

Select the correct answer

question mark

Mitä seuraava koodi tekee?

Select the correct answer

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 6. Luku 5
some-alt