שאלה בעניין פונקציות

כנראה שלא שמתי לב לכך עד עכשיו, אבל מדוע כשאני נותנת הוראה להדפסת פונקציה (כלומר הערך המוחזר) היא מריצה לי את הפונקציה שוב?

הכוונה שאם רשמתי כך, זה רץ פעמיים:
Function(number)
print(Function(number))

היי,
פייתון היא שפה מאוד חכמה, אבל היא בכל זאת שפה של מחשבים. מחשבים עושים בדיוק מה שאומרים להם ולא שואלים שאלות כמו ״רגע, אבל כבר הרצתי את זה, למה לי להריץ שוב?״ :wink:

בקוד שכתבת יש שתי שורות, וכל אחת מהם תרוץ אחת אחרי השניה.

בשורה הראשונה Function(number) אמרת בעצם:
תריץ בבקשה את Function ותן לה את: number, אם Function מחזירה משהו תשם את זה ב: שום מקום
בשורה השניה print(Function(number)) אמרת בעצם:
תריץ בבקשה את Function ותן לה number אם Function מחזירה משהו, תן את המשהו הזה לprint ותריץ את print עם המשהו הזה.

זה באמת לא יעיל! חבל להריץ את הפונקציה הזאת פעמיים נכון?
אז הפתרון הוא לשמור את מה שFunction מחזירה במשתנה, ואז להדפיס את מה שיש במשתנה הזה. ככה לא נצטרך לקרוא לפונקציה פעמים.
דוגמא:
results = Function(nunber)
print(results)

אגב, נהוג לתת לפונקציות שמות באות קטנה function ולא Function

3 לייקים

תודה רבה על התגובה! עשה לי סדר בראש, כנראה שהתפספס לי בשבוע שעבר העניין הזה…

לייק 1

היי
האם נלמד על התנאי : if name = ‘main’?
והאם נלמד לכתוב קוד כמו ש@ים כתב לבדיקת המקסימום הרקורסיבי?