שבוע 5 - עבודה עם generator - האם אני עובד נכון

תגיות:

אני עונה על תרגילים - למשל פיצוץ אוכלוסין ומנה מושלמת לחלוקה (סושי) ולא סגור אם יש דרך נכונה וקצרה יותר ואני סתם מפספס ומוסיף “פונקציה טיפשה”.

  1. תחילה כתבתי פונקציה שעונה לי על הדרישה. מוסיף פרינטים לבדיקה משלי ללא לולאה / לולאה קצרה מאוד.
  2. לאחר מכן מגיעה השאלה שלי. אני רוצה להוסיף generator. האם אני חייב ליצור פונקציה כמו silly_generator() שתשלח לפונקציה שכתבתי קודם . ואז for שקורא לsilly_generator (זה מה שאני עושה) או שיש דרך ישירות מתוך for לקרוא לפונקציה שכתבתי תחילה, מבלי להשתמש ב"פונקציה טיפשה" ועדיין בצורה נכונה עם גנרטור.

קצת קשה להבין מהתיאור.
בוא נעשה תרגיל – כתוב לי generator שמחזיר לי את המספרים מ־1 עד 10.

לייק 1

def silly_func():
for i in range(1, 11):
yield i

generator = silly_func()
for number in generator:
print(number)

image

כתבתי את הפונקציה. אבל אני אחדד את השאלה שלי - אני אוסיף פונקציה אחרת שמכפילה את הספרה בספרה הקודמת לה עד המספר 10 כולל. נעזר בsiily_func() כדי לקבל תשובה. האם יש דרך נכונה יותר מבלי הsilly func().
הפונקציה תענה על:
10
2
1
32

10
9

הכוונה שלי

def shay(number):
return number * (number - 1)

def silly_func():
for i in range(1, 11):
yield shay(i)

generator = silly_func()
for number in generator:
print(number)

image

זה סבבה, זה אחלה פתרון.
למה זה לא מקליק לך?

מה הכוונה מקליק? זה עובד פשוט נראה לי שאני מעריך את הדרך שאני משתמש בנוסף בפונקציה הטיפשית. אבל תודה הבנתי . העיקר עובד :stuck_out_tongue:

לייק 1