פינה חדשה: החדר הסגלגל [הועלו תשובות]

אז בעקבות שלל הצעות ופניות החלטנו לפתוח פינה חדשה:

בכל שבוע נפרסם 2-3 תרגילים (חדשים, לא מהמחברות) על החומר שכבר למדתם.
ניתן לכם קצת זמן לחשוב על התרגילים ולפתור בעצמכם, ואז נפרסם פתרונות של הסגל עם דגשים לפתרון.
מותר להתיעץ על התרגילים האלו ומותר להעלות פתרונות שלכם כאן בפורום.
מי שלא רוצה ספויילרים לא לקרוא תגובות :slight_smile:

ובלי להכביר במילים, הנה שני תרגילים ראשונים על שבוע 3:

תרגיל 1: ארגוב זוהרים בע״מ
בשנת 1978 שלחה ישראל לאירוויזיון את הפזמון העברי המזהיר ״אבניבי״
היו אלו ימי הזוהר של מדינת ישראל ואירופה כולה השתוקקה להבין מה הן אותן מילים שמפזם זוהר על הבמה.

עזרו לאירופאים המסכנים שנאצלו לא רק לשמוע את השיר, אלא גם לא להבין אותו.
כתבו פונקציה שמקבלת כקלט שיר בשפת הבית (באותיות עבריות) ומחזירה את השיר בעברית צחה.
שימו לב: בשיר יש כמובן רווחים בין מילים יותר משורה אחת וגם פסיק ונקודה עשויים להיות חלק מהשיר.

לדוגמא, עבור הקלט

אבניבי אובוהבבב,
אבניבי אובוהבבב אובותבך.

נקבל את הפלט

אני אוהב,
אני אוהב אותך.

תשובה כאן
https://bitbucket.org/yuntrax/pythonic/src/master/week3/ex1.py

תרגיל 2: ים, מאחוריך
אתמול ישבתי ובדקתי תרגילים (ובדקתי ובדקתי…) ואז זה הכה בי!
אנשים מבזבזים את הזמן שלהם עלינו, יושבים… לומדים… מגישים תרגילים… איזה בזבוז זמן.
מה כבר ביקשתם למען השם? איזו פלטפורמה אנטרנטית להתלונן בה?
בשביל זה ללמוד פייתון?! ים הזה והרעיונות המוזרים שלו…

אז החלטתי להקים פרויקט חדש!
קורס תלונות להמונים, ועוד בחינם!

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

יאללה לעבודה:

  1. כתבו פונקציה register שתנהל את החניכים בקורס. הפונקציה תקבל את שם המשתמש המבוקש כקלט.

    • במידה ושם המשתמש לא תפוס הפוקנציה תוסיף את המשתמש לקובץ users.txt יחד עם מספר התלונות עד כה (אפס) ותדפיס הודעה מתאימה למשתמש.
    • אם המשתמש כבר קיים, הפונקציה תתלונן על כך (תדפיסו הודעה משעשעת) ותאפשר למשתמש להרשם בשם אחר.
    • במידה והמשתמש רוצה להתלונן על תהליך ההרשמה, הוא יכניס בתור שם משתמש ״why do I even need to register?״ במקרה כזה, הפונקציה תבחר עבורו שם משתמש כלשהו (נניח rude_user_1) שלא קיים עד כה במערכת, תוסיף את שם משתמש הזה לקובץ יחד עם מספר התלונות כמו (בסעיף 1.1) ותדפיס למשתמש את שם המשתמש שהיא בחרה עבורו.
  2. כתבו פונקציה complain שתאפשר לחניכים להתלונן על מה שרק ירצו. הפונקציה תקבל את שם המשתמש ואת התלונה כקלט.

    • הפונציה תבדוק האם משתמש קיים בקובץ המשתמשים. במידה ולא, היא תתלונן שעליו להרשם קודם.
    • במידה והמשתמש קיים, הפונקציה תתלונן על התלונה (תדפיס הודעה משעשעת) ותקדם את כמות התלונות של המשתמש באחד (תעדכן את הקובץ).
    • במידה והתלונה של המשתמש היא "why do I need to complain so many times?״ הפונקציה תקדם את מספר התלונות של המשתמש ב-10, אבל כמובן שתדפיס תלונה על כך.
  3. כתבו פונקציה enough_is_enough שתאפשר לבדוק בכל רגע נתון מי המשתמשים שהתלוננו יותר מ-10 פעמים וזכאיים לקבל תעודה של מתלונן מקצועי.

    • הפונקציה תבדוק בקובץ המשתמשים איזה משתמשים התלוננו 10 או יותר פעמים ותדפיס את שמותיהם בגאון.

תשובה כאן
https://bitbucket.org/yuntrax/pythonic/src/master/week3/ex2.py

9 לייקים

מבריק :joy: :joy: :joy:

3 לייקים

תרגיל 2 - EPIC ! חחחח

אולי לא קשור, אבל…

בהשראת “איקס-עיגול” ובהשראת המצב (הילדים בבית*) חשבתי על זה:

“משחק” תרגילים בחשבון: הקוד ייצר תרגיל בחשבון ע’י בחירה של שני מספרים באופן רנדומלי, וכן אופרטור באופן רנדומלי. יש לשים לב שבחירת המספרים ובחירת האופרטור תעשה מתוך הגדרה שמתאימה לגיל הילד. (לדוגמא, עבור הבת שלי - כיתה א’ - המספרים יבחרו מ 1-100 והפעולות: חיבור וחיסור בלבד, לילדים גדולים יותר ניתן להגדיל את טווח המספרים ואת רשימת פעולות החשבון המותרות - כבונוס, ניתן להוסיף אפשרויות אלו כקלט) (יש לשים לב, שיתכן שבדיקות נוספות לאישרור התרגיל נחוצות - לדוגמא, בתי לא מכירה עדיין “מספרים שליליים” ולכן לא אאפשר תרגיל שזוהי תוצאתו)
לאחר הצגת התרגיל, בקוד יבקש קלט מהמשתמש - את פתרון התרגיל. אם הפתרון לא נכון, יש להמשיך לנסות לפתור עד שתתקבל תוצאה נכונה. (בונוסים: ניתן לשכלל ע"י הגבלת מספר הניסיונות ו/או הצגת הפתרון הנכון אחרי מספר ניסיונות לא נכונים, ניתן גם להכניס הערות כגון “לא לנחש! לחשב!” אחרי 3 ניסיונות לא נכונים וכן הלאה)
אם הפתרון נכון, הקוד ישלוף מחמאה מקובץ מחמאות שהוכן מראש, ישאל אם רוצים עוד תרגיל ובהתאם יציג את התרגיל הבא או יסיים.
בונוס סיום: עם סיום הקוד יוצגו הסטטיסטיקות הבאות: מספר תרגילים שבוצע, מספר ניסיונות נכונים, מספר ניסיונות לא נכונים, מספר ניסיונות ממוצע לכל תרגיל ובונוס-בונוס - לכתוב מידע זה בקובץ שישמר לפי שם המשתמש (ויוכל לשמש להשוואה בין רמת הצלחת המשתמש בימים שונים)

לדעתי בסוף שבוע 3 יש לנו את כל הכלים לכתוב את זהת אולי חוץ מהבחירה הרנדומלית - אבל ראיתי שים השתמש בזה לבדיקת מאחד מתרגילי האתגר ובטח אפשר גם למצוא אונליין.

*ההערה שקיבלתי בבית על איקס עיגול היתה שאם השנה היתה 1973 אז הילדים היו מתלהבים יותר :stuck_out_tongue:

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

לייק 1

נשמע כמו משחק מגניב ממש!
random לא נמצא בחומר של שבוע 4, אבל אני מאמין שהדרך הכי טובה ללמוד היא לרצות להשיג משהו.
אז הנה, זורק לך כיוון לשני הדברים שאמרת
ואם תכתבי את המשחק הזה אני מבטיח לבדוק ולתת הערות לשיפור :slight_smile:


לגבי האיקס עיגול. את תקבלי על זה פידבק במערכת הבדיקה. יהיה בסדר, בלי לחץ.

4 לייקים

מעולה! אעבוד על זה. לגבי הרנדום מרשימה - תכננתי לכתוב את הרנדום מספר ולהשתמש בזה לבחור את אחד התאים מהרשימה :wink:

תודה רבה,
זה עוזר ומועיל

מי כתב את התרגיל השני?
נגה? :joy::heart:

היי,
וואו תודה על כל ההשקעה וכמות התרגילים!
אשמח רגע אם מישהו יוכל לעשות לי סדר כי אני מתחילה להתבלבל :crazy_face:
בכל שבוע יש:
מחברת תרגילים להגשה
תרגילים נוספים לא להגשה
תרגיל קשה להשלמה על חוסר הגשה
החדר הסגלגל

פיספתי משהו?
תודה מראש!

את די על זה :slight_smile:

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

לייק 1

אליפות! תודה רבה !!!

כן, בול. מדגיש שהתרגילים כאן הם ללא הגשה

רעיון נפלא ! תודה רבה ! :smiley:

גאוני!!!
דרך אגב, יזהר כהן שר את אבניבי אבל מספיק קרוב לזוהר לדעתי

לייק 1

האם בשלב זה כבר למדנו
break ו continue?

לא…

לייק 1

:sleepy:
מתחילים מהתחלה את הקוד…
:slight_smile:

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

2 לייקים

אני רק רוצה להגיד שכלמדנו על דילוג ומרווחים ברשימות אני עשיתי בתור דוגמה את אבניבי… היה כיף