לחששנית - generator

תגיות:

אשמח להכוונה אם אפשר.
אני יודעת למצוא ולהדפיס את המסרים מקריאה בקובץ.
מצאתי דוגמאות לgenerator שמחלק קובץ לחתיכות. חתיכות בגודל קבוע.
אבל אני לא מבינה עדיין עד הסוף איך לעבוד עם זה:
האם עם קובץ “חתוך” אפשר לשמור מצביע למקום כדי ללכת אחורה מ"!" ביחס לתחילת הקובץ?
וגם: כמה קטנה יכולה להיות כל חתיכה שקוראים? עד כדי בייט בודד? (מן הסתם חלוקה כזו לא מאד יעילה)

יש אפשרות לחלק לחתיכות כך ש “!” ישמש כ separator, ורק אם הוא לא נמצא לאורך מקטע גדול מדי, אז חותכים לפי גודל?

נשמע שאת כן בכיוון הנכון. לא צריך ללכת אחורה, אפשר לשמור את מה שעברת עליו.
בתרגיל נותנים לך הנחות ואומרים איך המסר נראה בקווים כלליים – תשתמשי בזה :slight_smile:

האם בפייתון יש דרך לדעת את גודל הקובץ לפני קריאתו? זאת בכדי לחלקו לכמה חלקים שווים ואז לקרוא כל פעם חלק? לא מצאתי בגוגל דרך כזו. תודה

כן :slightly_smiling_face: צריך לחפש עוד קצת בגוגל

לייק 1

רק שים לב ש"לחלק אותו לחלקים שווים" זו משימה שלא בהכרח הגיונית – בד"כ נעדיף לשמור על גודל שפוי אחיד (מ־1 byte ועד כמה מגות). אין סיבה לנסות לפרק עכשיו מספרים ראשוניים כדי לקרוא קובץ :slight_smile:

האם אפשר ללכת אחורה למרות שלא צריך…? ואם אני מוצא את כל המסרים ורק אותם אבל מדפיס בסדר הפוך מאיך שהם מופיעים בקובץ (שלוש שתיים אחת במקום אחת שתיים שלוש), האם זה פיתרון תקף?

בעצם אני יכול להיות פחות עצלן ולהדפיס בסדר המקורי אז אפשר להתעלם מהחלק השני של השאלה…

האם זה נכון לחלק את הקריאה לפי כל פעם שורה?

זה בסדר אם בעצם לא השתמשתי ב-generator? פתאום נפל לי האסימון שזה תרגיל במחמברת generators.
כלומר אין לי בכלל פונקציה בקוד, האם עצם זה שהקוד קורא קובץ בחלקים הופך אותו לגנרטור?
בנוסף, מה הכוונה ב"הקפידו שלא להשתמש בטכניקות שלא למדנו"? האם שימוש בפונקציה מובנת (שלא למדנו) נחשב כטכניקה?

לצורף העניין השתמשתי בפונקציה:

iter()

הפונקציה iter יוצרת איטרייטור, אך לא ג’נרייטור. זו לא טכניקה וזה בסדר :slight_smile:
כן עדיף שתשתמשי בג’נרייטורים