הגדרת פונקציות
השימוש בפונקציות מוכנות הוא טוב ויפה (ואף נוח, כיון שהוא
חוסך את הצורך לממש חישובים מתמטיים כדוגמת לוגריתם או סינוס בעצמנו),
אולם מהר מאוד מתגלה הצורך בהגדרה של פונקציות חדשות. הגדרה זו יכולה
להיות לצורך ביצוע פעולות מתמטיות מורכבות חדשות, או לצורך יצירת קבוצת
פעולות קבועה שחוזרת על עצמה. יצירת פונקציה המבצעת את אותה סדרת
פעולות קבועה מקלה על כתיבת תכניות – כפי שנראה בהמשך.
הגדרת פונקציה מתבצעת בדרך הבאה:
def NAME( LIST OF
PARAMETERS ):
STATEMENTS
Name - ניתן
להשתמש כמעט בכל שם עבור פונקציה חדשה, מלבד המלים השמורות של
פייתון.
Parameters
- רשימת הפרמטרים מציינת
מהם הארגומנטים שהפונקציה מעוניינת לקבל (רשימה זו יכולה להיות ריקה,
אם הפונקציה אינה זקוקה לארגומנטים).
Statements - לאחר שם הפונקציה
מופיעות שורות הקוד שלה. אלו הן רשימה של ביטויים שמבוצעים בכל פעם שהפונקציה נקראת. מספר שורות הקוד
שמכילה פונקציה אינו מוגבל. כל שורות הקוד של פונקציה חייבות
להיות מוסחות ימינה, במרווח אחיד (אלא אם כן מקוננים בתוכה בלוקים
נוספים). רוב ממשקי הכתיבה בפייתון יסיחו את השורות ימינה עמודה
(tab) אחת, אולם גם הסחה של רווח
(space) אחד מספיקה.
בתור התחלה,
נכתוב פונקציה פשוטה שאינה מקבלת פרמטרים:
>>>def
hello():
print "hello world."
שם הפונקציה הוא hello. היא אינה מקבלת
ארגומנטים, ומדפיסה את השורה hello
world.
כשנרצה לקרוא לפונקציה שלנו, נעשה זאת על-ידי ציון שמה והוספת סוגריים
(ריקים, כיוון שאינה מצפה לקבל ארגומנטים):
>>>
hello() hello
world
מה אם
היינו רוצים לקרוא לפונקציה שלנו מספר רב של פעמים? יכולנו לקרוא לה
שוב ושוב:
>>>
hello() hello
world >>>
hello() hello
world >>>
hello() hello
world
או
לכתוב פונקציה חדשה, שתקרא לפונקציה הראשונה מספר פעמים:
>>> def
three_hello():
hello()
hello()
hello()
>>>
three_hello() hello
world hello
world hello
world
בדוגמה
זו יש לפונקציה שלוש שורות קוד. השורה האחרונה (שורת הרווח) אינה מוסחת
ימינה, וכך פייתון יודעת כי זהו סוף הפונקציה. יש לשים לב כי ניתן
לקרוא לפונקציה אחת מתוך שורות קוד של פונקציה אחרת. יכולת זו היא
הנותנות לנו את האפשרות לבנות פונקציות יותר ויותר מורכבות.
|