انتقال اطّلاعات به یک تابع

با کمی تغییر، تابعِ greet_user() نه تنها به کاربر سلام می‌کند، بلکه می‌تواند نام او را هم ذکر کند. برای این که تابع چنین کند username را در پرانتزهای تعریفِ تابع در def greet_user() می‌نویسید. با افزودن username به آن‌جا، تابع را قادر می‌سازید که هر مقدار usernameای که تعیین می‌کنید، بپذیرد. اکنون پایتون انتظار دارد که در هر بار فراخوانیِ تابع، مقداری برای username ارائه دهید. هنگامی که greet_user() را فرامی‌خوانید می‌توانید در پرانتزهای آن، نامی مانند 'jesse' را به این تابع بدهید:

1
2
3
4
5
def greet_user(username):
    """Display a simple greeting."""
    print(f"Hello, {username.title()}!")

greet_user('jesse')

وارد کردن greet_user('jesse') تابع greet_user() را فراخوانی کرده و به آن اطّلاعات مورد نیاز را برای اجرا کردن تابع print() ارائه می‌دهد. این تابع نامی را که به آن داده‌اید گرفته و پیامی خطاب به او نمایش می‌دهد:

1
Hello, Jesse!

مشابه این، وارد کردن greet_user('sarah') تابع greet_user() را فراخوانده، 'sarah' را به آن منتقل کرده و Hello, Sarah! را چاپ می‌کند. می‌توانید greet_user() را هر زمان که بخواهید فرابخوانید و هر نامی را که خواستید به آن بدهید تا هر بار یک خروجی قابل پیش‌بینی تولید کند.

پارامترها و نشان‌وندها

تابع greet_user() قبلی را طوری تعریف کردیم که مقداری برای متغیّر username درخواست کند. با فراخوانی آن و ارائه‌ی اطّلاعاتی که نیاز دارد (نام فرد)، این تابع پیام مناسب را چاپ می‌کرد.

متغیّر username در تعریفِ تابع greet_user() نمونه‌ای از یک پارامتر 70 است، اطّلاعاتی که تابع برای انجام کار خود نیاز دارد. مقدار 'jesse' در greet_user('jesse') نمونه‌ای از نشان‌وند یا آرگومان است. نشان‌ون 71 د اطّلاعاتی است که هنگام فراخوانی یک تابع، به آن ارائه می‌شود. زمانی که تابع را فراخوانی می‌کنیم، مقدار مورد نظر خود را در داخل پرانتزهای آن قرار می‌دهیم. در این مورد نشان‌وند 'jesse' به تابع greet_user() منتقل شده و این مقدار به پارامتر username منسوب شده است.

نکته
افراد گاهی نشان‌وند و پارامتر را به جای هم به کار می‌برند. اگر جایی دیدید که به متغیّرهای تعریف‌شده در تعریفِ تابع نشان‌وند یا به متغیرّهای فراخوانی تابع پارامتر گفته‌اند، تعجّب نکنید.

خودآزمایی

۸-۱. پیام: تابعی به نام display_message() بنویسید که جمله‌ای چاپ کند مبنی بر این که شما در این فصل مشغولِ آموختنِ چه هستید. تابع را فراخوانی کنید و مطمئن شوید که پیام به درستی نمایش داده می‌شود.

۸-۲. کتاب دلخواه: تابعی به نام favorite_book() بنویسید که یک پارامتر به نام title بپذیرد. این تابع باید پیامی چاپ کند مانند One of my favorite books is Alice in Wonderland. تابع را فراخوانی کنید و مطمئن شوید که هنگام فراخوانی، عنوانِ کتابی را به عنوانِ نشان‌وند به آن می‌دهید.