0Pricing
Python Academy · Pelajaran

Generator

Pahami generator dan penggunaannya untuk membuat iterator.

Generator adalah pelajaran Python Academy gratis di CoddyKit. Ini adalah pelajaran 2 dari 5. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Python Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Python Academy mencakup 5 pelajaran total.

Pengenalan Pembangkit

Pengenalan Pembangkit

Pembangkit adalah jenis khusus pengiterasi di Python yang memungkinkan Anda melakukan iterasi pada data secara tertunda. Alih-alih mengembalikan semua data sekaligus, pembangkit menghasilkan satu elemen setiap kali, sehingga penggunaan memorinya lebih hemat.

Dalam pelajaran ini, Anda akan mempelajari cara membuat dan menggunakan pembangkit di Python.

Generator — ilustrasi 1

Apa Itu Pembangkit?

Apa Itu Pembangkit?

Pembangkit adalah fungsi yang menggunakan kata kunci yield untuk mengembalikan nilai satu per satu. Setiap pemanggilan metode next() pada pembangkit melanjutkan eksekusi dari tempat terakhir pembangkit menghasilkan nilai.

# Basic generator example
def my_generator():
    yield 1
    yield 2
    yield 3

# Using the generator
gen = my_generator()
print(next(gen))  # Outputs: 1
print(next(gen))  # Outputs: 2
print(next(gen))  # Outputs: 3

Cara Kerja Pembangkit

Cara Kerja Pembangkit

Pembangkit menyimpan keadaan fungsi sehingga dapat melanjutkan eksekusi tepat dari tempat terakhirnya berhenti. Hal ini membuatnya hemat memori dan ideal untuk kumpulan data besar.

# Example: Generating a range of numbers
def range_generator(start, end):
    while start < end:
        yield start
        start += 1

for number in range_generator(1, 5):
    print(number)  # Outputs: 1, 2, 3, 4

Ekspresi Pembangkit

Ekspresi Pembangkit

Ekspresi pembangkit mirip dengan ekspresi pembentuk daftar, tetapi menggunakan tanda kurung biasa, bukan tanda kurung siku. Ekspresi ini membuat pembangkit, bukan daftar.

# Generator expression
gen_exp = (x * x for x in range(5))

for value in gen_exp:
    print(value)  # Outputs: 0, 1, 4, 9, 16

Pembangkit vs. Daftar

Pembangkit vs. Daftar

Pembangkit lebih hemat memori daripada daftar karena tidak menyimpan semua data di memori. Sebaliknya, pembangkit menghasilkan data saat dibutuhkan.

# Comparing lists and generators
# List comprehension
list_comp = [x * x for x in range(1000000)]

# Generator expression
gen_exp = (x * x for x in range(1000000))

# List comprehension uses more memory
print(type(list_comp))  # Outputs: <class 'list'>
print(type(gen_exp))    # Outputs: <class 'generator'>

Kasus Penggunaan Pembangkit

Kasus Penggunaan Pembangkit

Pembangkit ideal untuk:

  • Memproses kumpulan data besar yang tidak dapat dimuat ke memori.
  • Menghasilkan urutan tak berhingga.
  • Melakukan evaluasi data secara tertunda.

Pembangkit Tak Berhingga

Pembangkit Tak Berhingga

Pembangkit dapat menghasilkan urutan tak berhingga, seperti urutan angka tanpa akhir. Pastikan Anda menghentikan perulangan untuk mencegah eksekusi tanpa akhir.

# Infinite generator example
def infinite_sequence():
    num = 0
    while True:
        yield num
        num += 1

# Using the infinite generator
for i in infinite_sequence():
    if i > 5:
        break
    print(i)  # Outputs: 0, 1, 2, 3, 4, 5

Fungsi Pembangkit dengan Banyak Yield

Fungsi Pembangkit dengan Banyak Yield

Fungsi pembangkit dapat memiliki beberapa pernyataan yield, sehingga Anda dapat membuat urutan yang kompleks:

# Multiple yields in a generator
def multi_yield():
    yield "First"
    yield "Second"
    yield "Third"

for value in multi_yield():
    print(value)  # Outputs: First, Second, Third

Kesalahan Umum dalam Penggunaan Pembangkit

Kesalahan Umum dalam Penggunaan Pembangkit

Berikut beberapa kesalahan yang perlu dihindari:

  • Menggunakan return, bukan yield, dalam fungsi pembangkit.
  • Tidak menggunakan pembangkit dengan perulangan atau next() untuk mengambil elemennya.
  • Menggunakan pembangkit untuk kumpulan data kecil, padahal daftar lebih sesuai.

Apa yang Telah Kita Pelajari?

Apa yang Telah Kita Pelajari?

Dalam pelajaran ini, Anda telah mempelajari:

  • Apa itu pembangkit dan cara kerjanya di Python.
  • Cara menggunakan yield untuk membuat fungsi pembangkit.
  • Perbedaan antara pembangkit dan daftar.
  • Kasus penggunaan pembangkit, seperti urutan tak berhingga dan kumpulan data besar.

Bagus sekali! Mari kita beralih ke topik berikutnya.

Generator — ilustrasi 11

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Generator” gratis?

Ya — teks lengkap “Generator” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Python Academy, upgrade ke CoddyKit PRO. Kursus Python Academy mencakup 5 pelajaran total.

Apa yang akan aku pelajari di “Generator”?

Pahami generator dan penggunaannya untuk membuat iterator. Kamu berlatih Python Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai Python Academy?

Tidak diperlukan pengalaman sebelumnya. Python Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 2 dari 5.

Berapa lama pelajaran “Generator” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran Python Academy ini?

Ya. Setiap pelajaran Python Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Dekorator
  2. Generator
  3. Pengelola Konteks (Pernyataan with)
  4. Pemahaman (Daftar, Himpunan, dan Kamus)
  5. Iterator dan Iterable
← Kembali ke Python Academy