פונקציות
עד כה, כתבנו את כל הקוד שלנו ב-app.py, אבל ככל שהתוכניות שלנו גדלות, אנחנו צריכים דרך טובה יותר לארגן את הקוד שלנו. אנחנו צריכים לפצל את הקוד שלנו לנתחים קטנים יותר, ניתנים לניהול וניתנים יותר לתחזוקה, שאנו קוראים להם פונקציות. הפונקציה היא מיכל לכמה שורות קוד שמבצעות משימה ספציפית.
לדוגמה, כבר למדת על כמה פונקציות מובנות ב- Python print()
ו input()
. לכל פונקציה יש מטרה והיא יודעת לבצע משימה ספציפית. לכן, כאשר אנו בונים תוכניות מורכבות גדולות, עלינו לפצל את הקוד שלנו לנתחים קטנים יותר לשימוש חוזר, כלומר פונקציות.
הבה נבין את המושג הזה על ידי בניית תוכנית להדפסת הודעת ברכה.
print('Hi there!')
print('Welcome aboard!')
כאן יש לנו תוכנית פשוטה עם שתי שורות קוד בלבד. כעת, נניח, נצטרך אותם בתוכניות אחרות כדי להכניס אותם לפונקציה שנוכל לעשות בה שימוש חוזר.
הרשו לי להציג מילת מפתח שמורה def
ב-Python, שהוא קיצור של define ומשמש להגדרת פונקציה.
def greet_user():
print('Hi there!')
print('Welcome aboard!')
כעת גוש הקוד הזה יגדיר פונקציה "greet_user
" עם שורות הקודים לאחר מכן. בכל פעם שפונקציה זו נקראת, שתי השורות הללו יבוצעו. בואו נשתמש בזה:
print('start')
greet_user()
print('finish')
התוכנית מבוצעת ברצף, כלומר תצטרך להגדיר פונקציה לפני שתקרא לה בתוכנית.
פרמטרים
הפונקציות המוגדרות פועלות קצת אחרת מהפונקציות המובנות של Python. למשל, במקרה של print()
פונקציה, היא דורשת קצת מידע שאנחנו רוצים להדפיס, אבל פונקציית הברכה שלנו לא לוקחת שום מידע. לא יהיה נחמד יותר אם תוכל להעביר את שם המשתמש כאן ואז, במקום לומר "היי לך", תוכל להדפיס את שם המשתמש?
אתה יכול לעשות זאת על ידי הוספת הפרמטרים בתוך סוגריים של הפונקציה המוגדרת. תן לי להראות לך:
def greet_user(name):
print('Hi there!')
print('Welcome aboard!')
עכשיו ה "name
” בתוך סוגריים יפעל כמו משתנה מקומי ונוכל להעביר את שם המשתמש בעת קריאתו.
greet_user('Shahbaz')
כעת פרמטר השם מוגדר ל"Shahbaz
". בואו נשנה את התוכנית כדי לעשות בה שימוש.
def greet_user(name):
print(f'Hi {name}')
print('Welcome aboard!')
print('start')
greet_user('Shahbaz')
print('finish')
דבר שחשוב לציין הוא שה"שם" בשורה הראשונה נקרא פרמטר ואילו השם שסופק כלומר Shahbaz נקרא ארגומנט.
בואו נמשיך ונפעיל את התוכנית הזו.
אז עם הפרמטרים האלה, אנחנו יכולים לקבל מידע בפונקציות שלנו.
עכשיו, בואו נעשה משהו מעניין. נניח שאתה רוצה להוסיף שם נוסף להודעת הברכה. זה פשוט.
def greet_user(name):
print(f'Hi {name}')
print('Welcome aboard!')
print('start')
greet_user('Shahbaz')
greet_user('Aayush')
print('finish')
כעת שימו לב שכאשר לפונקציה יש פרמטר, אנו מחויבים להעביר ערך עבור הפרמטר הזה. אם תסיר את השם מהפונקציה ותפעיל את התוכנית, נקבל שגיאה. אתה יכול גם להשתמש במספר פרמטרים בפונקציה אחת, מופרדים בפסיק.
לדוגמה, greet_user(first_name, last_name):
. גם הטיעונים יעוצב בצורה דומה.
טיעוני מילות מפתח
עד כה, למדנו שבכל פעם שאנו מגדירים פרמטרים לפונקציות שלנו, עלינו לספק תמיד ערכים אחרת נקבל שגיאה. בתוכנית האחרונה, הטיעונים 'Shahbaz'
ו 'Bhatti'
נקראים טיעונים מיקוםיים, כלומר המיקום או הסדר שלהם חשובים בתוכנית.
ב-Python, יש לנו עוד סוג של ארגומנט שנקרא ארגומנטים של מילות מפתח, שהמיקום לא משנה עבורו. תן לי להראות לך איך הם עובדים.
תראה את התוכנית האחרונה. אנחנו יכולים לשנות את זה כך:
def greet_user(first_name, last_name):
print(f'Hi {first_name} {last_name}')
print('Welcome aboard!')
print('start')
greet_user(first_name='Shahbaz', last_name='Bhatti')
print('finish')
עכשיו ה first_name
ו last_name
הם פרמטרי מילות המפתח. אתה יכול להחליף את המקומות שלהם והתוצאה תהיה זהה.
עכשיו זה לא אומר שעלינו להשתמש תמיד בארגומנטים של מילות מפתח. רוב הזמן אנו משתמשים בארגומנטים מיקוםיים, אך במצבים מסוימים, ארגומנטים אלו של מילות מפתח עוזרים לנו לשפר את הקריאות של הקוד שלנו.
יש עוד דבר אחד שאתה צריך לדעת על ארגומנטים של מילות מפתח. ארגומנטים של מילת המפתח צריכים לבוא תמיד אחרי ארגומנטים מיקוםיים.
הצהרת החזרה
עד כה למדנו כיצד ליצור פונקציות ולשלוח להן מידע באמצעות הפרמטרים שלהן. כעת נלמד כיצד ליצור פונקציות המחזירות ערכים. זה שימושי במיוחד אם אתה עושה סוג של חישובים ואתה רוצה להחזיר את התוצאה למי שמשתמש בפונקציה שלך. תן לי להראות לך.
בוא נגדיר פונקציה שתחשב ריבוע של מספר.
def square(number):
return number*number
השתמשנו במשפט return כדי להחזיר את המספר הזה מחוץ לפונקציה. כעת, אם נקרא לפונקציה הזו, היא מחזירה ערך בדיוק כמו ה- input()
פוּנקצִיָה. בואו נדפיס אותו בטרמינל.
אתה יכול לטעון שניתן לקבל את אותה תוצאה מבלי להשתמש בהצהרת ההחזר. בוא נבדוק את זה.
אנו רואים שני דברים, המספר 9, ואף אחד. מה קורה כאן?
כאשר מתורגמן Python מבצע את הקוד הזה, תחילה הוא יקרא לפונקציה הריבועית והפקד עובר לפונקציה. כאן אנו מחשבים את הריבוע של המספר הנתון הזה ואז מדפיסים אותו על המסוף.
כעת, כברירת מחדל, כל הפונקציות מחזירות את הערך none. אז אם אין לנו כאן הצהרת return, כברירת מחדל Python מחזירה אף אחת. אף אחד אינו אובייקט המייצג את היעדר ערך. זה כמו כלום או null ב-C, C++, Java ו-Javascript.
לעטוף!
אני מקווה שהבנת את החשיבות של פונקציות.
הם מהווים היבט משמעותי של למידת Python אם אתה מתכנן לכתוב תוכניות גדולות ומורכבות במהלך קריירת הקידוד שלך.
השאירו תגובה