در حال بارگذاری...

تولید مقدار یکی‌یکی

سه نام ایستگاه دارید و آن‌ها را یکی‌یکی می‌خواهید. خط اول صفحه north خواهد بود. خط بعد east است. خط آخر south است.

هر بار که می‌پرسید، یک نام ایستگاه

python
def stations():
    yield "north"
    yield "east"
    yield "south"

route = stations()
print(next(route))
print(next(route))
print(next(route))

صفحه سه خط دارد. چاپ اول فقط north را می‌نویسد، نه east و نه south. خط yield "north" همان نام را به این چاپ می‌دهد. east وقتی نوشته می‌شود که چاپ دوم بپرسد. چاپ دوم east را می‌نویسد. چاپ سوم south را می‌نویسد. یک چاپ هر سه نام را در یک خط جمع نمی‌کند. برنامه تمام می‌شود. خط چهارمی نیست.

📊 هر چاپ چه می‌نویسد

کدام چاپ خط صفحه
چاپ اول print(next(route)) north
چاپ دوم print(next(route)) east
چاپ سوم print(next(route)) south

بعد از south، در stations خط yield دیگری نمانده است. چاپ چهارم print(next(route)) در این برنامه نیست. آن خط را اضافه کنید، با StopIteration می‌ایستد، چون نام بعدی نیست. None نوشته نمی‌شود. صفحه‌ای که دارید همان north، بعد east، بعد south می‌ماند.

حالا می‌توانید یک نام ایستگاه بخواهید، بعد نام بعدی، بعد نام آخر. صفحه north است، بعد east، بعد south. صفحهٔ بعد یک پوشش دور یک تابع می‌گذارد.

یک نام، بعد نام بعدی

خط اول north است. خط دوم east است. خط سوم south است. هر چاپ یک بار می‌پرسد. صفحهٔ بعد یک پوشش دور یک تابع می‌گذارد.

🧠 دانش خود را بیازمایید

آماده شروع

دانش خود را بیازمایید

خود را با این آزمون تعاملی به چالش بکشید و ببینید موضوع را چقدر خوب درک کرده‌اید

❓
4
سوالات
🎯
70%
برای قبولی
♾️
∞
زمان
🔄
∞
تلاش‌ها

📝 دستورالعمل‌ها

  • هر سوال را با دقت بخوانید
  • بهترین پاسخ را برای هر سوال انتخاب کنید
  • می‌توانید آزمون را هر چند بار که می‌خواهید تکرار کنید
  • پیشرفت شما در بالا نمایش داده می‌شود