30 תשובות
בעצם זה מחזיר את הפונקציה, די דומה לפרינט
מחזיר ערך

נניח הפונקציה שלך זה:

def pahot (x, y):
return x-y
(מקבלת שני מספרים x ו-y ומחזירה (return) את תוצאת החיסור שלהם)

וב-main אתה עושה
totsaa = pahot(3, 1)

אז עכשיו למשתנה totsaa ייכנס הערך 2 (התוצאה של 3-1)

סורי אם לא כותבים ככה בפייתון אבל נראה לי שכן (אני רגילה לג'אווה)
שואל השאלה:
אני עשיתי רנדום בתוך פונקציה ואז עשיתי ריטורן לערך הרמדומלי וזה לא נתן לי כלום
אנונימי
שואל השאלה:
אה יש לי עוד שאלה, איך אני שומר משתנה שנוצר בפונקציה כמו הרנדום כי תמיד מתי שהוא נוצר בתוך פונקציה הוא לא נשמר לי אם אני עושה פרינט מיחוץ לפונקציה...
אנונימי
תשלח לי מה כתבת
שואל השאלה:
קיי דקה
אנונימי
נכון הם לא נשמרים, מחוץ לפונקציה הם "מתים", אתה צריך לעשות להם ריטרן
אני מקווה שאוכל לעזור
שואל השאלה:
..
אנונימי
כי אתה צריך לשמור את זה למשתנה
למשל
random_number = num_chooser()
או להדפיס את זה
print(num_chooser)
שואל השאלה:
חכי אני אנסה
אנונימי
תחשוב על פונקציה כקופסא:
אתה מכניס אליה בצד אחד קלט,
הקופסא עושה משהו
ואז מוציאה פלט.

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

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

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

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

print(mishtane)
mishtane = shem_hafunczia()

(הסוגריים באים אחרי שם הפונקציה)
שואל השאלה:
לא הנבנתי איך אני שומר למשתנה..
אנונימי