Search
  • Hackend

Understand Functions with Python

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

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


נשאלת השאלה מה זאת פונקציה ?

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

דוגמה מעולה ופשוטה לפונקציה היא : f(x)=2x


מהי פונקציה בעולם התוכנה ?

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

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

דוגמה מעולה היא הפונקציה הבאה :



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

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


מתי נשתמש בפונקציות בתור מפתחי תוכנה ?

יהיו לשימוש בפונקציות שתי סיבות עיקריות:

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

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


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

דוגמה טובה לפונקציה היא קטע הקוד הבא+הסבר מה קורה כאן


מהן הדרכים הנכונות לכתוב פונקציות בפייתון ?

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


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

ניעזר בנוסחא למרחק :




שלב 1 : הגדרת המידע איתו אנו עובדים וייבוא ספריית math

באמצעות ספריית math נחשב שורש של מספר



שלב 2 : כתיבת פונקציה מסוג def



שלב 3 : קריאה לפונקציה


שלב 4: הרצת התוכנית



שלב 5 : כתיבת פונקציה מסוג lambda

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



שלב 6+7 : קריאה לפונקציה והרצת התוכנית

הדגש החשוב שצריך לראות כאן, הוא שקריאה לביטויי lambda היא שקולה לקריאה לפונקציית def


שימו לב כי התוצאות שוות בשני המקרים.

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

0 views
ABOUT
SOCIAL

office@hackend.com

Tel:

054-345-5954

052-575-7077

054-261-3395

  • White LinkedIn Icon
  • White Facebook Icon

© 2018 by Hackend. Proudly created with Wix.com