תרגול מיוחד - Ask Us Anything

היי כולם,
אני ו- @itamaraviv רוצים לעשות לכם תרגול מיוחד, שיכלול מענה על כמה שיותר דברים שלא ברורים לכם מהחומר שנלמד עד כה, או שמתקשרים לחומר הנלמד.

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

כמה תנאים:

  1. השאלות צריכות להיות קשורות לפייתון (לא מנהלתיות ולא אישיות), ולחומר שנלמד עד כה.
  2. שימו לב לקרוא קודם את השאלות שכבר התפרסמו ולעשות לייק לאלה שמעניינות אתכן - הקדימות לשאלות שעליהן נענה תהיה לפי מספר הלייקים. לכן אל תפרסמו שאלות שלכם אם הן כבר פורסמו בשרשור.

נשמח להשתתפותכם - תעזרו לנו לעזור לכם לדעת פייתון טוב יותר.
תודה! מחכים לשמוע מכם

3 לייקים

**עריכה, ים התייחס להבדל בתשובה תחת נושא אחר, פה:

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

6 לייקים

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

תודה!

10 לייקים

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

12 לייקים

שאלה קצת דומה ולכן אכתוב אותה בהמשך למה @zangizon כתב.
אני מרגישה שלא לחלוטין הבנתי מתי להשתמש בprint ומתי בreturn, למרות שאני מבינה את השוני בהגדרה, כי בתרגילים זה לא עובד כמו שחשבתי.

קצת קשה לי להסביר בלי להראות את הקוד אבל אנסה לתת דוגמאות-

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

  • באותו תרגיל הייתה לי פונקציה שבתוכה כתבתי תנאי, ואז ביקשתי print אם התנאי נכון. כשהרצתי את זה והתנאי לא היה נכון זה הדפיס לי none, ואני לא מבינה למה. בסוף החלפתי את זה ב-return שכנראה יותר נכון לתרגיל, והבעיה נפתרה אבל אני עדין אשמח להסבר ללמה זה לא היה נכון…

-אם אני צריכה להדפיס כמה שורות, אבל זה משהו שאני רוצה שפונקציה תחזיר, איך עושים את זה?

תודה רבה מראש, מקווה שהצלחתי להסביר את עצמי

10 לייקים

היי,
הייתי שמחה להבין איך ניגשים נכון משימת קוד מבחינת המחשבה על איפה היוזר יכול להזין משהו שגוי.
כרגע יש בידנו מעט מאוד כלים ואני תוהה כמה חשוב ונכון בשלב הזה לוודא תוך כדי כתיבת הקוד שהמידע שמוזן הוא נכון ולא יפיל את התוכנית או לחילופין יוביל לקבלת ערך לא נכון.
לדוגמא - אפילו התרגיל הכי פשוט בחוברת 5 של קבלת נתיב לקובץ docx. יכולה מאוד להסתבך כתלות בכמה כוננים יש ליוזר, האם הוא הכניס את הכונן עם אות גדולה או קטנה וכדומה.
מאוד קל להשאב לזה וזה כנראה רק יסתבך בהמשך…
איפה עובר הגבול בכלליות - ואיפה הוא עובר כרגע?

8 לייקים

אני קצת הלכתי לאיבוד עם הביטויים בוליאניים בכניסה ל IF או ל WHILE

הגעתי למצב שכתבתי if (book_cat.isdecimal == True)== True

ברור לי שזה לא יעיל, לא יודעת איך לתקן על מנת שיעבוד

לייק 1

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

  1. איך ניגשים לשאלה מפוצצת יחסית כמו “מפענח הצפנים” או “מרתון” ולעוד חלק מהשאלות שהיו במחברת של הפונקציות :
    א.ראשית צורת מחשבה וכיוון - מה כן חשוב לשים בתוך פונקציה ומה לא - מכיוון שלמדנו שקטע קוד של פונקציה אמורה להיות יחסית קצרה וקולעת - האם עדיך שהifים יהיו בתוכה? איך השיקול דעת עובד?
    האם אפשר אולי לתת לנו מס’ תרגילים ברמת התרגילים שהיו במחברת ולכתוב לנו איך אתם הייתם ניגשים אל התרגיל לפי סדר החשיבה שלכם ובמילים שלכם.
    ב. מכיון שאין אפשרות ל"השתמש" כרגע בחומר המתקדם יותר קשה לי אישית להגיע לפתרון בנושא הפונקציות - איך מתגברים על זה? מרגיש שצריך לפרק הכל לגורמים אבל אין לי ממש את הכלים וגם בחיפוש בגוגל אין הסברים ממש טובים לדרך למידה הזאת.

ותודה רבה על תרגילים נהדרים!

19 לייקים

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

3 לייקים

הייתי שמח לקצת יותר הבהרה בנושא הפעולות
isdecimal לעומת isdigit
ובכלל על פעולות IS ומה כל אחד מהן עושה.
תודה!

4 לייקים

בבדיקת התרגיל שבתמונה כתבת את ההארה הזו.

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

לייק 1

שוב היי :slight_smile:
אשמח אם תוכלו להרחיב על string formatting - שיטות נוספות לממש את זה, יתרונות וחסרונות לכל אחת ומתי כדאי להשתמש בכל אחת מהן.

דוגמאות

למשל, מדוע להשתמש/לא ב .format במקום רק סוגריים מסולסלים; ב %d או %s וכו׳
תודה!

תודה!

5 לייקים

את התוצאה של כל מקרה אתה שומר בתוך משתנה שנקרא result ובסוף התנאים אתה רושם פקודת print למשתנה result.

לייק 1

בהמשך למה ש @zoharit77 כתבה, אשמח קצת לתרגול נוסף על כל נושא הפונקציה, מבנה שלה ומה אפשר או אי אפשר לעשות עם פונקציות:

  1. הבנתי שישנו מושג שנקרא “רקורסיביות”, שמאפשר לפתור תרגילים כמו “סכום מספרים” או “מפענח הצפנים” בצורה הרבה יותר נוחה ומהירה.
  2. שימוש בפונקציות לטובת ספירה של דברים, יצירה של רשימות, שינוי של רשימות וכו’…
לייק 1

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

למי שפספס אותו:

לייק 1

תודה רבה רבה על הסרטון וההשקעה!
רציתי לשאול לגבי הsplit, אני חושב שזה כלי שעוד לא למדנו בחומר…
האם חובה להשתמש בכלי כדי לפתור את מפענח הצפנים?

נלמד בהחלט (מחברת מחרוזות) אבל לא חובה, יש כמה דרכים לפתור כל בעיה.

א. הנושא יותר ברור עכשיו, תודה.
ב. ניסיתי להריץ את מה שכתבנו על המרק.
לא עבד.
פספסתי משהו?

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