ריצת 2,000 לא מצליח להבין את עניין ה format

תגיות:

היי לכולם,

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

מה הבנתי:
יש צורך להשתמש ב **kwargs וגם ב *args.

כאשר אני מבצע print ל kwargs לפי הדוגמה אני מקבל שזה מילון עם הצירוף {‘name’: ‘Bug’}
אני מבין שאני צריך לבצע איזו פעולה בדומה לתרגיל מהחוברת השניה בשבוע 5 כדי שאני אוכל להפעיל את הפונקציה על הערכים אבל אני פשוט לא מצליח להבין איזו פעולה יש לעשות.

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

תודה מראש!

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

ולעיתים מ **kargs

לייק 1

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

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

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

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

כדי להבין את זה צריך להסתכל שניה על שלושת הצורות לשימוש בפוקנציה format
1.

name = 'Yam'
f"bla bla {name} bim bam" 
"bla bla {} bim bam".format('Yam')
"bla bla {name} bim bam".format(name='Yam')

אני לא ארחיב על כל אחת כי ניתן לראות לפי הדוגמאות.
מה שאנו מבינים מזה שהוא שלפונקציה format יש אפוציה "להכניס משתנים לפי סדר ההופעה שלהם *args, אולם יש לה את האופציה לקבל “kargs” כלומר זוגות של נתונים, ואותם היא מצליבה עם הטקסט.

אין מדובר פה על מצב של משתנה אופציונאלי , כלומר בחתימת הפונקציה של format קיים **kargs אשר יודע לקבל את הזוגות האלה, והוא הופך אותם למילון (שזה מבנה הנתונים שיודע להתמודד עם זה"

במימוש של הפונקציה שלך הדבר הזה קורה פעמיים! למה ?
בפעם הראשונה כי אתה רוצה להעביר אל תוך הפונקציה שלך את הנתונים האלה, ואז הם עוברים כמילון.
לתוך הפונקציה שלך.
כלומר: name=‘bug’ יכניס לפונקציה שלך בצורה של {‘name’: ‘Bug’} .

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

מקווה שזה יותר ברור :slight_smile:

3 לייקים

כן, תודה רבה! עזר מאוד