چالش روزانه · ۲۲ مهر ۱۴۰۵

چالش پایتون ۸: کدی که بعد از return می‌آید

قبل از اجرای کد، خروجی آن را پیش‌بینی کن. حدس نزن؛ خط به خط فکر کن پایتون چه می‌کند.

def f():
    print("A", end=" ")
    return "B"
    print("C", end=" ")

r = f()
print(r)
خروجی کدام است؟

نمایش پاسخ و توضیح

پاسخ درست: گزینهٔ الف — A B

خط به خط

  1. r = f() تابع را صدا می‌زند.
  2. print("A", end=" ") ← روی صفحه A چاپ می‌شود (با یک فاصله به‌جای رفتن به خط بعد).
  3. return "B" ← تابع همین‌جا تمام می‌شود و "B" به صداکننده برمی‌گردد.
  4. print("C") هرگز اجرا نمی‌شود. به آن «کد مرده» (dead code) می‌گویند.
  5. r حالا "B" است و print(r) آن را چاپ می‌کند.

خروجی: A B

یادتان باشد

  • فقط یک return در هر اجرای تابع اجرا می‌شود و بعد از آن تابع تمام است.
  • print چیزی را روی صفحه نشان می‌دهد؛ return مقداری را به صداکننده تحویل می‌دهد.

حالا خودت اجرا کن و تغییرش بده

def f():
    print("A", end=" ")
    return "B"
    print("C", end=" ")

r = f()
print(r)