🧩 توابع

آرگومان‌ها: مقدار پیش‌فرض و آرگومان کلیدی

۳ گام

دو راه برای دادن مقدار به تابع

وقتی تابعی چند پارامتر دارد، پایتون از کجا می‌فهمد کدام مقدار مال کدام پارامتر است؟ دو راه: ترتیب و اسم.

def greet(name, age=20, title="sir"):
    print(f"Hello dear {title} {name}, you are {age} years old.")

greet("Ali")              # آرگومان موقعیتی: Ali به name می‌رود، بقیه پیش‌فرض
greet("Ali", 33)          # 33 به age می‌رود (به همان ترتیب)
greet("Ali", title="Dr.") # آرگومان کلیدی: فقط title عوض می‌شود
  • مقدار پیش‌فرض یعنی «اگر صداکننده نداد، این را بگذار»: def power(base, exp=2):. پارامترهای با پیش‌فرض باید بعد از پارامترهای بدون پیش‌فرض بیایند.
  • آرگومان کلیدی یعنی هنگام صدا زدن اسم پارامتر را بنویسی: power(exp=3, base=2). ترتیب مهم نمی‌شود و کد خواناتر است؛ مقایسه کن print_name("Eric", "Grimson", False) با print_name("Eric", "Grimson", reverse=False).
  • قانون ترتیب هنگام ترکیب: اول موقعیتی‌ها، بعد کلیدی‌ها؛ وگرنه SyntaxError می‌گیری.

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

  1. ۱گام ۱

    تابعی به اسم power بنویس که دو پارامتر دارد: base و exp. پارامتر exp باید مقدار پیش‌فرض 2 داشته باشد، یعنی در تعریف بنویسی exp=2.

    تابع باید base به توان exp را برگرداند (عملگر توان **). اگر صداکننده exp را نداد، یعنی مربع می‌خواهد.

  2. ۲گام ۲

    حالا تابع را با آرگومان کلیدی صدا بزن و نتیجه را چاپ کن: print(power(exp=3, base=2)).

    وقتی هنگام صدا زدن اسم پارامتر را بنویسی (exp=3، base=2)، دیگر ترتیب مهم نیست. خروجی باید 8 باشد.

  3. ۳گام ۳

    گام آخر: خروجی یک تابع می‌تواند مستقیم آرگومان تابع دیگر شود. با یک خط و بدون متغیر کمکی، (3²)³ را حساب و چاپ کن: power(power(3), 3).

    پایتون از داخلی‌ترین پرانتز شروع می‌کند: اول power(3) می‌شود 9، بعد power(9, 3) می‌شود 729. خروجی باید 729 باشد.

در حال آماده‌سازی ویرایشگر…