از پوسته بزرگ آموزش آنلاین دیجی اکادمی رونمایی شد ...

عضویت

توابع در پایتون

توابع در پایتون

🧩 درس چهارم: توابع در پایتون

🎯 هدف این درس: آشنایی با توابع، نحوه تعریف، فراخوانی و استفاده از آنها در پایتون


قسمت 1: تابع چیست و چرا به آن نیاز داریم؟

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

💡 مثال در زندگی واقعی:

• یک دستور پخت غذا (تابع) را یک بار یاد می‌گیریم و هر بار که می‌خواهیم غذا بپزیم، آن را اجرا می‌کنیم.
• یک فرمول ریاضی را یک بار می‌نویسیم و هر بار که نیاز به محاسبه داریم، از آن استفاده می‌کنیم.

مزایای استفاده از توابع:

  • کاهش تکرار کد (DRY – Don’t Repeat Yourself)
  • خوانایی بیشتر کد
  • تست و خطایابی آسان‌تر
  • قابلیت استفاده مجدد در پروژه‌های مختلف

قسمت 2: تعریف و فراخوانی تابع

در پایتون برای تعریف تابع از کلمه کلیدی def استفاده می‌کنیم.

ساختار کلی:

🐍 ساختار تابع PYTHON v3.12 🔒 RAW
def نام_تابع(پارامترها):

    # بدنه تابع

    return نتیجه

مثال: تابع ساده بدون پارامتر

🐍 تابع سلام PYTHON v3.12 🔒 RAW
# تعریف تابع

def say_hello():

    print("سلام دنیا!")

    print("به رجستری آکادمی خوش آمدید!")
# فراخوانی تابع

say_hello()

💡 نکته: برای اجرای تابع، باید آن را فراخوانی کنید. فقط تعریف کردن تابع، آن را اجرا نمی‌کند.


قسمت 3: توابع با پارامتر

پارامترها به تابع اجازه می‌دهند با داده‌های مختلف کار کند.

مثال 1: تابع با یک پارامتر

🐍 تابع با پارامتر PYTHON v3.12 🔒 RAW
# تعریف تابع با پارامتر

def greet(name):

    print(f"سلام {name} عزیز!")

    print("خوش آمدید!")
# فراخوانی با مقادیر مختلف

greet("یونس")

greet("علی")

مثال 2: تابع با چند پارامتر

🐍 تابع با چند پارامتر PYTHON v3.12 🔒 RAW
# تعریف تابع با دو پارامتر

def introduce(name, age):

    print(f"نام: {name}")

    print(f"سن: {age} سال")

    print("-" * 20)
# فراخوانی تابع

introduce("یونس", 28)

introduce("مریم", 25)

قسمت 4: توابع با مقدار بازگشتی (return)

بعضی توابع یک مقدار را به عنوان نتیجه برمی‌گردانند تا بتوانیم از آن در جاهای دیگر استفاده کنیم.

🐍 تابع با return PYTHON v3.12 🔒 RAW
# تعریف تابع با مقدار بازگشتی

def add(a, b):

    result = a + b

    return result
# استفاده از مقدار بازگشتی

sum1 = add(5, 3)

sum2 = add(10, 20)
print(f"جمع اول: {sum1}")

print(f"جمع دوم: {sum2}")

print(f"جمع کل: {add(sum1, sum2)}")

💡 نکته: اگر تابع return نداشته باشد، مقدار None را برمی‌گرداند.


قسمت 5: پارامترهای پیش‌فرض

در پایتون می‌توانیم برای پارامترها مقدار پیش‌فرض تعیین کنیم. در صورتی که کاربر مقداری ارسال نکند، از مقدار پیش‌فرض استفاده می‌شود.

🐍 پارامترهای پیش‌فرض PYTHON v3.12 🔒 RAW
# تعریف تابع با پارامترهای پیش‌فرض

def introduce(name, age=18, city="تهران"):

    print(f"نام: {name}")

    print(f"سن: {age} سال")

    print(f"شهر: {city}")

    print("-" * 20)
# فراخوانی با پارامترهای مختلف

introduce("یونس", 28, "اصفهان")

introduce("علی")  # استفاده از مقادیر پیش‌فرض

introduce("مریم", 25)  # استفاده از شهر پیش‌فرض

قسمت 6: توابع با تعداد پارامتر متغیر

گاهی نمی‌دانیم کاربر چند پارامتر به تابع ارسال می‌کند. برای این کار از *args و **kwargs استفاده می‌کنیم.

1️⃣ استفاده از *args (برای آرگومان‌های موقعیتی)

🐍 استفاده از *args PYTHON v3.12 🔒 RAW
# تعریف تابع با *args

def sum_all(*numbers):

    total = 0

    for num in numbers:

        total += num

    return total
# فراخوانی با تعداد مختلف پارامتر

print(f"جمع: {sum_all(1, 2, 3)}")

print(f"جمع: {sum_all(10, 20, 30, 40)}")

print(f"جمع: {sum_all(5)}")

2️⃣ استفاده از **kwargs (برای آرگومان‌های نام‌دار)

🐍 استفاده از **kwargs PYTHON v3.12 🔒 RAW
# تعریف تابع با **kwargs

def print_info(**info):

    for key, value in info.items():

        print(f"{key}: {value}")
# فراخوانی با پارامترهای نام‌دار

print_info(name="یونس", age=28, city="اصفهان")

print("-" * 20)

print_info(first_name="علی", last_name="محمدی", job="برنامه‌نویس")

قسمت 7: توابع داخلی (Built-in Functions)

پایتون توابع زیادی دارد که بدون نیاز به تعریف، در دسترس هستند.

🐍 توابع داخلی پایتون PYTHON v3.12 🔒 RAW
# نمونه‌هایی از توابع داخلی
# 1. تابع print

print("سلام دنیا!")
# 2. تابع len

name = "یونس رجستری"

print(f"طول نام: {len(name)} کاراکتر")
# 3. تابع type

print(f"نوع داده: {type(10)}")

print(f"نوع داده: {type("سلام")}")
# 4. تابع input

# age = int(input("سن خود را وارد کنید: "))
# 5. تابع max و min

numbers = [12, 45, 7, 89, 23]

print(f"بزرگ‌ترین عدد: {max(numbers)}")

print(f"کوچک‌ترین عدد: {min(numbers)}")
# 6. تابع sum

print(f"جمع اعداد: {sum(numbers)}")

قسمت 8: پروژه عملی – ماشین حساب

📝 پروژه: ساخت ماشین حساب با توابع

یک ماشین حساب ساده بسازید که چهار عمل اصلی (جمع، تفریق، ضرب، تقسیم) را با استفاده از توابع انجام دهد.

🔍 راه‌حل پروژه:

🐍 ماشین حساب PYTHON v3.12 🔒 RAW
# تعریف توابع برای چهار عمل اصلی

def add(a, b):

    return a + b
def subtract(a, b):

    return a - b
def multiply(a, b):

    return a * b
def divide(a, b):

    if b == 0:

        return "خطا: تقسیم بر صفر امکان‌پذیر نیست!"

    return a / b
# تابع اصلی ماشین حساب

def calculator():

    print("=" * 40)

    print("🧮 ماشین حساب")

    print("=" * 40)
    while True:

        print("\nعملیات‌های موجود:")

        print("1. جمع (+)")

        print("2. تفریق (-)")

        print("3. ضرب (*)")

        print("4. تقسیم (/)")

        print("5. خروج")
        choice = input("\nانتخاب خود را وارد کنید (1-5): ")
        if choice == "5":

            print("🙏 خداحافظ!")

            break
        if choice not in ["1", "2", "3", "4"]:

            print("❌ انتخاب نامعتبر!")

            continue
        try:

            num1 = float(input("عدد اول را وارد کنید: "))

            num2 = float(input("عدد دوم را وارد کنید: "))

        except ValueError:

            print("❌ لطفاً عدد معتبر وارد کنید!")

            continue
        # انجام عملیات با توابع

        if choice == "1":

            result = add(num1, num2)

            operation = "+"

        elif choice == "2":

            result = subtract(num1, num2)

            operation = "-"

        elif choice == "3":

            result = multiply(num1, num2)

            operation = "*"

        elif choice == "4":

            result = divide(num1, num2)

            operation = "/"
        print(f"\n✅ {num1} {operation} {num2} = {result}")

        print("-" * 40)
# اجرای ماشین حساب

if __name__ == "__main__":

    calculator()

قسمت 9: تمرین عملی

📝 تمرین شماره 1

تابعی بنویسید که یک عدد را دریافت کرده و تشخیص دهد که آیا عدد اول است یا خیر.

🔍 راه‌حل تمرین:

🐍 تشخیص عدد اول با تابع PYTHON v3.12 🔒 RAW
def is_prime(num):

    """

    تابع تشخیص عدد اول

    """

    if num < 2:

        return False
    for i in range(2, int(num ** 0.5) + 1):

        if num % i == 0:

            return False
    return True
# تست تابع

test_numbers = [2, 3, 4, 7, 10, 13, 17, 20, 23]
for n in test_numbers:

    if is_prime(n):

        print(f"✅ {n} عدد اول است.")

    else:

        print(f"❌ {n} عدد اول نیست.")

📝 تمرین شماره 2

تابعی بنویسید که یک لیست از اعداد را دریافت کرده و بزرگ‌ترین، کوچک‌ترین و میانگین آنها را محاسبه کند.

🔍 راه‌حل تمرین:

🐍 آمار اعداد PYTHON v3.12 🔒 RAW
def analyze_numbers(numbers):

    """

    تابع تحلیل اعداد

    """

    if not numbers:

        return None, None, None
    total = sum(numbers)

    count = len(numbers)

    average = total / count
    return max(numbers), min(numbers), average
# تست تابع

test_list = [12, 45, 7, 89, 23, 56, 34, 78]
maximum, minimum, avg = analyze_numbers(test_list)
print("📊 تحلیل اعداد")

print("=" * 30)

print(f"لیست: {test_list}")

print(f"بزرگ‌ترین عدد: {maximum}")

print(f"کوچک‌ترین عدد: {minimum}")

print(f"میانگین: {avg:.2f}")

📚 جمع‌بندی درس

در این درس یاد گرفتیم:

  • ✅ مفهوم تابع و مزایای استفاده از آن
  • ✅ نحوه تعریف و فراخوانی توابع
  • ✅ استفاده از پارامترها و مقدار بازگشتی
  • ✅ پارامترهای پیش‌فرض و متغیر
  • ✅ توابع داخلی پایتون
  • ✅ پروژه‌های عملی: ماشین حساب، تشخیص عدد اول و تحلیل اعداد

🎯 درس بعدی: پروژه نهایی – ساخت یک برنامه کامل


💡 برای مشاهده دوره‌های بیشتر، به صفحه دوره‌ها مراجعه کنید.

👤
نویسنده یونس رجستری
📅
تاریخ انتشار 18 مرداد 1405
🔄
آخرین بروزرسانی 18 مرداد 1405
ارسال دیدگاه

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *