השמה מרובה באמצעות רשומות
ורשימות
אחד מקיצורי הדרך האלגנטיים בתכנות
בפייתון הוא השימוש ברצפים (רשומות ורשימות) לצורך השמת ערכים בכמה
משתנים בו זמנית (כלומר באותה הפקודה... בקרביי המחשב זה קורה כמובן
באופן סדרתי).
>>> v = ('a', 'b',
'e') >>> (x, y, z) =
v >>>
x 'a' >>>
y 'b' >>>
z 'e'
העבירו את הסמן מעל השורות המסומנות לקבלת
הסברים
לאחר ההשמה בשורה הראשונה, v מהווה רשומה המורכבת משלושה ערכים. (x, y, z) הוא גם כן רשומה של
שלושה משתנים. פעולת ההשמה מפעילה למעשה שלוש פעולות השמה, של כל אחד
מהערכים ב-v לתוך המשתנה המקביל
לו לפי הסדר.
לפעולה זו שימושים רבים. אחד מהם
מקביל לזה שנעשה בשפת C במבנה ה-ENUM
– הקצאת שמות לרצף של ערכים. שימוש זה נעשה אלגנטי עוד
יותר בפייתון, בתוספת הפונקציה range כפי שנראה
להל:
>>> range(7) [0, 1, 2, 3,
4, 5, 6] >>> (MONDAY,
TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY) =
range(7) >>>
MONDAY 0 >>>
TUESDAY 1 >>>
SUNDAY 6
העבירו את הסמן מעל השורות המסומנות לקבלת
הסברים
הפונקציה range מוטמעת בשפת
פייתון (ואינה שייכת למודול כלשהו). היא
מחזירה רשימה של מספרים טבעיים
– אם היא מקבלת פרמטר יחיד,
היא מחזירה רשימה עולה מ-0 ועד המספר הנתון (לא כולל). אם שנים או
שלושה מספרים נתונים, הראשון מהווה את תחילת הרצף והשני את סופו (לא
כולל). המספר השלישי, אם נתון, מהווה גודל הקפיצה בין המספרים ברשימה
(ראה למטה).
ימי השבוע הם המשתנים לתוכם מתבצעת
ההשמה. יחד הם מהווים רשומה. שימ/י לב: השמה מתבצעת מרשימה
לתוך רשומה.
כעת כל משתנה מחזיק מספר
סידורי.
ניתן גם להשתמש בהשמה מרובה כדי לכתוב
פונקציה המחזירה ערכים רבים – הפונקציה פשוט מחזירה רשומה של הערכים
הרצויים. מי שקורא לפונקציה, מבצע השמה לתוך משתנה יחיד (שיהפך לרשומה
בעצמו), או לתוך רשומה בגודל המתאים, שתכיל לאחר מכן את הערכים
המוחזרים. בטריק זה נעשה שימוש רב בספריות הסטנדרטיות של
פיתון.
>>> range
(6) [0, 1, 2, 3, 4,
5] >>>
range(6, 12) [6, 7, 8, 9, 10,
11] >>>
range(6, 12, 2) [6, 8,
10]
|