تعریف (def)

اصلاح شده

2026-04-18

ما معمولاْ برای پیشبرد اهداف برنامه موردنظرمان، نیاز به تعریف توابع جدید خواهیم داشت. این توابع در آینده بارها و بارها می‌توانند مورد استفاده قرار گیرند.

در مثال زیر، یک تابع به نام print_lyrics تعریف می‌کنیم:

def print_lyrics():
    print("I'm a lumberjack, and I'm okay.")
    print('I sleep all night and I work all day.')

همانطور که در این مثال می‌بینید، کلمه کلیدی def برای تعریف تابع بکار برده می‌شود. با تعریف یک تابع، یک متغیر با همان نام ایجاد می‌شود. نحو فراخوانی تابع جدید مانند توابع داخلی است:

print_lyrics()
I'm a lumberjack, and I'm okay.
I sleep all night and I work all day.

ما حتی می‌توانیم یک تابع تعریف شده را درون تابع دیگر، فراخوانی کنیم.

پارامترها و آرگومان‌ها

برخی از توابع داخلی که دیده‌ایم به آرگومان نیاز دارند. برای مثال، وقتی تابع math.sin را فراخوانی می‌کنیم، باید یک عدد را به آن بدهیم. به این ورودی، آرگومان (Argument) گفته می‌شود.

توابع دارای خروجی و توابع بدون خروجی

در اجرای برخی توابع، با اتمام آخرین دستور تابع، مقداری را به عنوان نتیجه در خروجی می‌بینیم. این توابع را Fruitful می‌نامند:

import math

math.sqrt(5)
2.23606797749979

در این توابع از کلید واژه return برای ارائه خروجی استفاده می‌شود.

def get_sum(x, y):
    return x + y

get_sum(2, 3)
5

اما این اتفاق برای همه توابع رخ نمی‌دهد. درواقع این توابع کاری را انجام داده‌اند که بصورت خروجی قابل نمایش نیست. این توابع را Void می‌نامند:

def no_reult_func():
    x = math.cos(radians)

متغیرهای سراسری

برای اینکه بتوانیم متغیرهای خارج تابع را درون تابع ویرایش کنیم و مجددا در بیرون تابع استفاده کنیم باید متغیر global درون تابع تعریف کنیم

n = 0
def counter():
    global n
    n += 1

counter()
print(n)
1

تمرین

احتیاطپروژه

به بخش پروژه ماشین حساب بروید و نگاه کنید کدام قسمت از کد را می‌توانید بفهید.