Penjana
Fahami penjana dan kegunaannya untuk mencipta pengulang.
Penjana ialah pelajaran Python Academy percuma di CoddyKit. Ini ialah pelajaran 2 daripada 5. Anda boleh membaca keseluruhan pelajaran di bawah secara percuma — kemudian berlatih secara praktikal dalam pelayar menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Python Academy, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Python Academy merangkumi sejumlah 5 pelajaran.
Pengenalan kepada Penjana
Penjana ialah jenis objek lelar khas dalam Python yang membolehkan Anda melalui data secara tertunda. Penjana tidak mengembalikan semua data sekaligus, sebaliknya menghasilkan satu item pada satu-satu masa, lalu menjimatkan memori.
Dalam pelajaran ini, Anda akan mempelajari cara mencipta dan menggunakan penjana dalam Python.

Apakah Penjana?
Penjana ialah fungsi yang menggunakan kata kunci yield untuk mengembalikan nilai satu demi satu. Setiap panggilan kepada kaedah next() penjana menyambung semula pelaksanaan dari tempat penjana itu kali terakhir 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: 3Cara Penjana Berfungsi
Penjana menyimpan keadaan fungsi supaya pelaksanaan boleh disambung semula tepat dari tempat ia berhenti. Hal ini menjadikan penjana cekap dari segi penggunaan memori dan sesuai untuk set data yang 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, 4Ungkapan Penjana
Ungkapan penjana serupa dengan pemahaman senarai tetapi menggunakan tanda kurung dan bukannya kurungan siku. Ungkapan ini mencipta penjana dan bukannya senarai.
# Generator expression
gen_exp = (x * x for x in range(5))
for value in gen_exp:
print(value) # Outputs: 0, 1, 4, 9, 16Penjana berbanding Senarai
Penjana lebih cekap dari segi penggunaan memori berbanding senarai kerana penjana tidak menyimpan semua data dalam memori. Sebaliknya, penjana menghasilkan data apabila diperlukan.
# 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'>Kes Penggunaan Penjana
Penjana sesuai untuk:
- Memproses set data besar yang tidak muat dalam memori.
- Menjana jujukan tanpa penghujung.
- Penilaian data secara tertunda.
Penjana Tanpa Penghujung
Penjana boleh menghasilkan jujukan tanpa penghujung, seperti jujukan nombor yang berterusan. Pastikan Anda menghentikan gelung untuk mengelakkan pelaksanaan tanpa penghujung.
# 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, 5Fungsi Penjana dengan Berbilang Hasil
Fungsi penjana boleh mempunyai beberapa pernyataan yield, lalu membolehkan Anda mencipta jujukan 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, ThirdKesilapan Lazim dengan Penjana
Berikut ialah beberapa kesilapan yang perlu dielakkan:
- Menggunakan
returndan bukannyayielddalam fungsi penjana. - Tidak menggunakan penjana dengan gelung atau
next(). - Menggunakan penjana untuk set data kecil sedangkan senarai lebih sesuai.
Apakah yang Telah Kita Pelajari?
Dalam pelajaran ini, Anda telah mempelajari:
- Apakah penjana dan cara penjana berfungsi dalam Python.
- Cara menggunakan
yielduntuk mencipta fungsi penjana. - Perbezaan antara penjana dengan senarai.
- Kes penggunaan penjana, seperti jujukan tanpa penghujung dan set data besar.
Syabas! Mari kita beralih ke topik seterusnya.

Pelajari Python dengan tutor kecerdasan buatan — percuma
Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.
- Kursus
- 76
- Pelajaran
- 320
Soalan Lazim
Adakah pelajaran “Penjana” percuma?
Ya — teks penuh “Penjana” boleh dibaca secara percuma di web ini. Untuk berlatih secara interaktif menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7, serta membuka kunci baki kursus Python Academy, tingkat taraf kepada CoddyKit PRO. Kursus Python Academy merangkumi sejumlah 5 pelajaran.
Apakah yang akan saya pelajari dalam “Penjana”?
Fahami penjana dan kegunaannya untuk mencipta pengulang. Anda berlatih Python Academy menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.
Adakah saya memerlukan pengalaman untuk memulakan Python Academy?
Tiada pengalaman terdahulu diperlukan. Pembelajaran Python Academy di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 2 daripada 5.
Berapa lamakah pelajaran “Penjana” diambil?
Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.
Bolehkah saya menulis dan menjalankan kod dalam pelajaran Python Academy ini?
Ya. Setiap pelajaran Python Academy menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.
Semua pelajaran dalam kursus ini
- Penghias
- Penjana
- Pengurus Konteks (Pernyataan with)
- Pemahaman (Senarai, Set dan Kamus)
- Pengulang dan Boleh Diulang