Generic selectors
Exact matches only
Search in title
Search in content

קורס Python – פרק 14 – פונקציות Functions

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

כפי שראינו במהלך הקורס, שפת Python מספקת מגוון של פונקציות מובנות שנועדו לפעולות מסוימות, כמו ()print למשל, אך כמו כן אנו יכולים ליצור פונקציות בעצמנו שיקלו עלינו במהלך כתיבת הקוד.

הגדרת פונקציה

על מנת להגדיר פונקציה יש לפעול לפי הכללים הבאים:

  • קוד בלוק של פונקציה מתחיל במילת המפתח def שלאחריה שם הפונקציה וסוגריים ()
  • כל הפרמטרים והפקודות של הפונקציה צריכות להיכתב בתוך הסוגריים ()
  • המשפט הראשון בפונקציה יכול להיות אופציונלי.
  • בלוק הקוד שנמצא בתוך כל פונקציה צריך להתחיל בסמל נקודותיים (:)
  • הביטוי return גורם ליציאה מהפונקציה

לדוגמה:


def printme(str = "Hello, World!"):
    print (str)
    return

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

קריאה לפונקציה

לאחר שהגדרנו את הפונקציה, נרצה לקרוא לה בשלב כזה או אחר של התוכנית:


def printme(str = "Hello, World!"):
    print (str)
    return
   
printme()


!Hello, World

עדכון ערכים על ידי פונקציה

אם פונקציה מסוימת שיצרנו, משנה ערך מסוים, אז אותו הערך ישתנה גם בעת הקריאה לפונקציה. למשל:


def changeme( mylist ):
   "This changes a passed list into this function"
   print ("Values inside the function before change: ", mylist)
   
   mylist[0]=mylist[0] + 100
   mylist[1]= 2
   print ("Values inside the function after change: ", mylist)
   return

mylist = [1,25,714]
changeme( mylist )
print ("Values outside the function: ", mylist)

[Values inside the function before change: [1, 25, 714
[Values inside the function after change: [101, 2, 714
[Values outside the function: [101, 2, 714

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

פונקציות אנונימיות

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

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

sum = lambda arg1, arg2: arg1 + arg2

print ("Value of total : ", sum( 1, 1 ))
print ("Value of total : ", sum( 10, 10 ))

Value of total : 2
Value of total : 20

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

הביטוי return

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


def sum( arg1, arg2 ):
   total = arg1 + arg2
   print ("Inside the function : ", total)
   return total

total = sum( 4, 3 )
print ("Outside the function : ", total )

Inside the function : 7
Outside the function : 7

 

משתנים גלובליים ומשתנים מקומיים

לא כל המשתנים שיצרנו בתוכנית מסוימת יהיו נגישים לשימוש מכל מקום בתוכנית, השאלה היא איפה יצרנו אותם. בהקשר זה המשתנים שקיימים בתוכנית מתחלקים לשני קבוצות – משתנים גלובליים ומשתנים מקומיים.

משתנים שיצרנו בתוך פונקציה יחשבו כמשתנים מקומיים, כאשר אנו יכולים לגשת אליהם רק בתוך הפונקציה. למשתנים גלובליים שנוצרו מחוץ לפונקציות, נוכל להתייחס מכל מקום בתכנית, כולל מתוך פונקציות. לדוגמה:


total = 0   # This is global variable.

def sum( arg1, arg2 ):
   total = arg1 + arg2; # Here total is local variable.
   print ("Inside the function local total : ", total)
   return total


sum( 4, 3 )
print ("Outside the function global total : ", total )

Inside the function local total : 7
Outside the function global total : 0

רוצים לשתף את המדריך?

שיתוף ב facebook
שיתוף ב twitter
שיתוף ב telegram
שיתוף ב whatsapp
שיתוף ב linkedin
שיתוף ב tumblr
שיתוף ב email
שיתוף ב reddit
שיתוף ב skype
שיתוף ב vk

אהבתכם את המדריך? פתר לכם תקלה?

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

כתיבת תגובה