در حال بارگذاری...

مقدار برگشتی

cups_left(3, 1) یعنی عدد 2. تابع started و drank را می‌گیرد و با return حاصل started - drank را برمی‌گرداند. این 2 چاپ داخل تابع نیست. حاصل خود عبارت است.

print بیرون تابع نوشته شده و حاصل cups_left را چاپ می‌کند. داخل cups_left اصلاً print نیست.

حاصل cups_left(3, 1) عدد 2 است

python
def cups_left(started, drank):
    return started - drank

print(cups_left(3, 1))

روی صفحه 2 می‌بینید. خود cups_left این خط را ننوشته. print نوشته، چون حاصل تابع 2 بوده. cups_left(3, 3) می‌شود 0، چون 3 منهای 3 صفر است.

خط زیر return تورفته است و جزو تابع است، ولی اجرا نمی‌شود. return که برسد، تابع تمام می‌شود و Python سراغ خط بعدی داخل تابع نمی‌رود.

خط زیر return اجرا نمی‌شود

python
def cups_left(started, drank):
    return started - drank
    print("done")

print(cups_left(3, 1))

صفحه فقط 2 را نشان می‌دهد. done نمی‌آید. print("done") تورفته است، اما return زودتر تابع را تمام کرده.

اگر return ننویسید، حاصل تابع None است. None یعنی نتیجه‌ای در کار نیست. greet نام را چاپ می‌کند و چیزی برنمی‌گرداند. lida را خود greet چاپ کرده. حاصل greet("lida") برابر None است.

چاپ داخل تابع، حاصل تابع نیست

python
def greet(name):
    print(name)

print(greet("lida"))

اول lida می‌آید، بعد None. lida را greet نوشته. None را print بیرونی نوشته، چون greet چیزی برنگردانده.

سه عبارت، و حاصل هر کدام. ردیف greet برابر None است، هرچند روی صفحه lida هم هست. آن lida چاپ خود greet است، نه حاصل تابع.

📊 حاصل هر عبارت

عبارت حاصل
cups_left(3, 1) 2
cups_left(3, 3) 0
greet("lida") بدون return None

صفحهٔ بعد می‌گوید هر اسم تا کجا دیده می‌شود. اینجا فقط حاصل تابع را جدا کردیم.

پیش از جواب

  1. print(cups_left(3, 1)) چه چاپ می‌کند؟
  2. cups_left(3, 3) چیست؟
  3. print("done") زیر return است. done می‌آید؟
  4. greet فقط چاپ می‌کند. print(greet("lida")) کدام دو خط را نشان می‌دهد؟

حاصل تابع

return started - drank حاصل را همان عدد می‌کند. print(cups_left(3, 1)) عدد 2 را چاپ می‌کند و cups_left(3, 3) برابر 0 است. خط زیر return اجرا نمی‌شود، پس done نمی‌آید. بدون return، print(greet("lida")) اول lida و بعد None را نشان می‌دهد.

🧠 دانش خود را بیازمایید

آماده شروع

دانش خود را بیازمایید

خود را با این آزمون تعاملی به چالش بکشید و ببینید موضوع را چقدر خوب درک کرده‌اید

❓
5
سوالات
🎯
70%
برای قبولی
♾️
∞
زمان
🔄
∞
تلاش‌ها

📝 دستورالعمل‌ها

  • هر سوال را با دقت بخوانید
  • بهترین پاسخ را برای هر سوال انتخاب کنید
  • می‌توانید آزمون را هر چند بار که می‌خواهید تکرار کنید
  • پیشرفت شما در بالا نمایش داده می‌شود