כמתכנת, לעתים קרובות תמצא את עצמך מבצע פעולה או משימה שוב ושוב. זה יכול להיות מייגע וגוזל זמן, במיוחד כאשר עובדים עם בסיס קוד גדול או מורכב. אוטומציה שלהם עם פונקציות היא גישה יעילה יותר לביצוע משימות כאלה. פונקציות מאפשרות לך לכתוב את הלוגיקה של הקוד פעם אחת ולהשתמש בה בכל מקום בתוכנית שלך.
מהי פונקציית Python?
בפייתון, פונקציה היא גוש קוד המשמש לביצוע משימה מסוימת. אתה צריך לכתוב פונקציה רק פעם אחת, אבל אתה יכול להשתמש בה מספר פעמים בקוד שלך. פונקציה יכולה לקלוט ארגומנטים בתור ערכי קלט והחזרה. תוכנית פשוטה זו מציגה פונקציה שמחשבת סכום של שלושה מספרים:
# פונקציית Python לחישוב סכום של שלושה מספרים
defחשב_סכום(א ב ג):
לַחֲזוֹר a+b+c
print (calculate_sum(1,2,3)) # מחזיר 6
print (calculate_sum(1000, 300,44)) # מחזיר 1344
print (calculate_sum(12, 4,78)) # מחזיר 94
בתוכנית למעלה, הפונקציה מחזירה את הסכום של שלושה ארגומנטים. כאשר הפונקציה נקראת מספר פעמים, היא מחזירה פלט שונה עבור כל מקרה. אפליקציה שימושית לפונקציה זו תהיה אפליקציית מחשבון.
הגדרת פונקציה ב- Python
לפייתון יש הרבה פונקציות מובנות זמין עבור מפתחים לשימוש. עם זאת, הפונקציות המובנות הללו לא תמיד מספיקות כדי לעמוד בדרישות של רוב הפרויקטים. כדי לעמוד בדרישות מותאמות אישית, עליך להגדיר את הפונקציות המותאמות אישית שלך. הגדרת פונקציות מותאמות אישית היא נוהג נפוץ בתכנות.
ב-Python, אתה יכול להגדיר פונקציה מותאמת אישית באמצעות ה- def מילת מפתח ואחריה שם הפונקציה שלך עם סוגריים לפניה. הנה דוגמא:
deffunction_name()
עליך לשים לב לכללים הבאים בעת הקצאת שם פונקציה ב-Python:
- שמות הפונקציות צריכים להיות באותיות קטנות.
- שמות הפונקציות צריכים להיות תיאוריים.
- השתמש בקו תחתון כדי להפריד בין מילים בשם פונקציה.
לאחר הגדרת הפונקציה, עליך לכתוב את ההיגיון לביצוע המשימה הרצויה. לדוגמה, פונקציה זו מחשבת את השטח של משולש:
# פונקציית Python לחישוב שטח משולש
defחשב_שטח_משולש(בסיס, גובה):
שטח = (בסיס * גובה)/2
לַחֲזוֹר אֵזוֹר
print (calculate_triangle_area(12, 3))
הפונקציה למעלה מגדירה שני פרמטרים: בסיס ו גוֹבַה, מחלק את המוצר שלהם בשניים, ומחזיר את התוצאה בתור הפלט. אתה יכול לכתוב כל היגיון שאתה רוצה שהפונקציה שלך תבצע.
הבנת טיעוני פונקציה
בדוגמאות קודמות, הפונקציות לקחו ארגומנטים לביצוע פעולות. הטיעונים בדוגמאות אלו ידועים כטיעונים נדרשים או מיקוםיים. ב-Python, הטיעונים שלך יכולים להיות אחד מהבאים:
- טיעוני עמדה
- ארגומנטים של מילות מפתח
טיעונים מיקוםיים
טיעוני עמדה צריכים לעבור בסדר ההגדרה הנכון. לדוגמה, אם אתה מגדיר פונקציה עם פרמטרים א, ב, ו ג, עליך להעביר ערכים עבור פרמטרים אלה בהתאם כאשר אתה קורא להם. הבה נבחן דוגמה קודמת:
# פונקציית Python לחישוב סכום של שלושה מספרים
defחשב_סכום(א ב ג):
לַחֲזוֹר a+b+c
print (calculate_sum(1,2,3)) # מחזיר 6
print (calculate_sum(1000, 300,44)) # מחזיר 1344
print (calculate_sum(12, 4,78)) # מחזיר 94
בתוכנית לעיל, ה calculate_sum() הפונקציה לוקחת שלושה ארגומנטים בכל פעם שאנו קוראים לה. כל ארגומנט מייצג פרמטר מתאים. בשיחת הפונקציה הראשונה, מספרים 1, 2, ו 3 לְיַצֵג א, ב, ו ג בהתאם לכך.
פרמטר מוצהר בהגדרה של פונקציה, בעוד ארגומנט הוא הערך המועבר כאשר אתה קורא לפונקציה ערך זה הוא ייצוג של הפרמטר המתאים לה.
טיעוני עמדה הם חובה. אם לא תוסיף אותם, תקבל א טעות הקלדה. הדוגמה הבאה מדגימה זאת:
defחשב_סכום(א ב ג):
לַחֲזוֹר a+b+c
print (calculate_sum(1,2)) # מעלה את TypeError
כאשר אתה מפעיל את התוכנית לעיל במחשב שלך, תקבל שגיאה דומה לזו שבתמונה למטה:
טיעוני מילות מפתח
ארגומנטים של מילת מפתח לא בהכרח חייבים לעבור בכל פעם שאתה קורא לפונקציה. הם טיעונים אופציונליים ואינם צריכים לבצע סדר מסוים. Python מאפשר לנו להשתמש *ארגס ו**קווארגס כדי לציין ארגומנטים של מילות מפתח.
מלבד השימוש *טיעונים ו **קווארגס, אפשר גם לציין ערכי ברירת מחדל עבור הארגומנטים שלך. פעולה זו לא תקבל שגיאה אם תשכח להוסיף ערך בעת קריאה לפונקציה. דוגמה זו נותנת המחשה:
defחשב_סכום(a, b, c=3):
לַחֲזוֹר a+b+c
print (calculate_sum(1,2)) # מחזיר 6
בתוכנית לעיל, מתי calculate_sum() נקרא, אין שום ויכוח ג; זה לא ישפיע על התוכנית כי ג כבר יש ערך ברירת מחדל. אתה יכול לציין ערכי ברירת מחדל עבור כמה ארגומנטים שתרצה, אך הקפד לעשות זאת בחוכמה.
השתמש בפונקציות כדי לארגן את הקוד שלך
פונקציות שימושיות לארגון הקוד שלך, מה שהופך אותו לקריאה ויעיל יותר. עם פונקציות, אתה יכול לפרק את הקוד שלך לנתחים קטנים יותר ניתנים לשימוש חוזר שקל יותר להבין ולתחזק. בנוסף, אם אתה צריך לבצע שינויים בקוד שלך, אתה רק צריך לשנות את הפונקציה הדרושה ולא את בסיס הקוד כולו.