RAJESTARY DIGITAL TECH • SECURITY • EDUCATION
دانش • فناوری • امنیت

دنیای تکنولوژی
از یادگیری شروع می‌شود

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

LEARN BUILD SECURE CREATE

توابع – کدهای قابل استفاده مجدد

توابع - کدهای قابل استفاده مجدد

🧩 درس هفتم: توابع – کدهای قابل استفاده مجدد

🎯 هدف این درس: آشنایی با توابع و نحوه استفاده از آنها برای سازماندهی بهتر کد

سلام دوست عزیز! 👋

تا اینجا با خیلی از مباحث آشنا شدی: متغیرها، شرط‌ها، حلقه‌ها و لیست‌ها. اما یه سوال مهم: وقتی کدت بزرگ می‌شه، چطور می‌تونی اون رو مرتب و قابل فهم نگه داری؟

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

توی این درس، با هم یاد می‌گیریم:

  • ✅ تابع چیه و چرا بهش نیاز داریم
  • ✅ چطور یه تابع تعریف کنیم
  • ✅ پارامترها و مقدار بازگشتی
  • ✅ پارامترهای پیش‌فرض
  • ✅ پروژه عملی: ماشین حساب با توابع

🎯 بخش ۱: تابع چیست و چرا به آن نیاز داریم؟

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

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

یه دستور پخت غذا رو یک بار یاد می‌گیری و هر بار که می‌خوای اون غذا رو بپزی، همون دستور رو اجرا می‌کنی. تابع هم دقیقاً همینه!

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

  • کاهش تکرار کد: یه کد رو یک بار می‌نویسی و هر جا که نیاز باشه استفاده می‌کنی
  • خوانایی بیشتر: کدت تمیزتر و قابل فهم‌تر می‌شه
  • تست آسان‌تر: هر تابع رو جداگانه می‌تونی تست کنی
  • استفاده مجدد: توابع رو توی پروژه‌های دیگه هم می‌تونی استفاده کنی

ساختار کلی تابع:



🐍
ساختار تابع

PYTHON
v3.12
🔒 RAW




def نام_تابع(پارامترها):
    # بدنه تابع
    return نتیجه

🔧 بخش ۲: تعریف و فراخوانی تابع

بیا با یه مثال ساده شروع کنیم. یه تابع بدون پارامتر می‌نویسیم که یه پیام خوش‌آمدگویی چاپ کنه.

مثال: تابع سلام



🐍
تابع سلام

PYTHON
v3.12
🔒 RAW




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

# فراخوانی تابع
say_hello()
⚠️ نکته مهم

فقط تعریف کردن تابع کافی نیست! برای اجرای تابع، باید اون رو فراخوانی کنی. اگر تابع رو فراخوانی نکنی، هیچ اتفاقی نمی‌افته.


📥 بخش ۳: توابع با پارامتر

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

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



🐍
تابع با پارامتر

PYTHON
v3.12
🔒 RAW




def greet(name):
    print(f"سلام {name} عزیز!")
    print("خوش آمدید!")

# فراخوانی با مقادیر مختلف
greet("یونس")
greet("علی")

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



🐍
تابع با چند پارامتر

PYTHON
v3.12
🔒 RAW




def introduce(name, age):
    print(f"نام: {name}")
    print(f"سن: {age} سال")
    print("-" * 20)

introduce("یونس", 28)
introduce("مریم", 25)

🔄 بخش ۴: توابع با مقدار بازگشتی (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}")
✅ به خاطر بسپارید

اگر تابع return نداشته باشه، مقدار None رو برمی‌گردونه. یعنی تابع هیچ مقداری رو به عنوان نتیجه برنمی‌گردونه.


🔧 بخش ۵: پارامترهای پیش‌فرض

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



🐍
پارامترهای پیش‌فرض

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)  # استفاده از شهر پیش‌فرض

📦 بخش ۶: توابع با تعداد پارامتر متغیر

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



🐍
*args

PYTHON
v3.12
🔒 RAW




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)}")

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

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

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

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



🐍
ماشین حساب

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 = "*"
        else:
            result = divide(num1, num2)
            operation = "/"

        print(f"\n✅ {num1} {operation} {num2} = {result}")
        print("-" * 40)

# اجرای ماشین حساب
if __name__ == "__main__":
    calculator()

📝 تمرین‌های عملی

🎯 تمرین شماره ۱: تابع تشخیص عدد اول

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

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



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

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} عدد اول نیست.")

🎯 تمرین شماره ۲: تابع تحلیل اعداد

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

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



🐍
تحلیل اعداد

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}")

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

تبریک می‌گم! 🎉 توی این درس یاد گرفتی:

  • ✅ تابع چیه و چرا بهش نیاز داریم
  • ✅ چطور یه تابع تعریف کنیم
  • ✅ پارامترها و مقدار بازگشتی
  • ✅ پارامترهای پیش‌فرض
  • ✅ استفاده از *args برای پارامترهای متغیر
  • ✅ پروژه عملی: ماشین حساب با توابع
🎯 برای درس بعدی آماده‌اید؟

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


🔗 لینک‌های مرتبط

👤
نویسنده
📅
تاریخ انتشار 19 مرداد 1405
🔄
آخرین بروزرسانی 19 مرداد 1405

نظر خود را بنویسید

با ثبت نظر، به بهبود محتوای ما کمک کنید

امتیاز شما به این مطلب (اختیاری)
برای امتیازدهی، روی ستاره‌ها کلیک کنید
نام شما در سایت نمایش داده می‌شود
ایمیل شما محفوظ می‌ماند
0 کاراکتر | حداقل ۱۰ کاراکتر
نظر سازنده و مفید بنویسید
ارسال دیدگاه: +۵ امتیاز
امتیازدهی: +۲ امتیاز
نشان شما: مبتدی
لطفاً از کلمات محترمانه استفاده کنید. دیدگاه‌های توهین‌آمیز حذف می‌شوند.
⚠️

هشدار مهم!

برای اتصال به درگاه پرداخت و انجام تراکنش، لطفاً VPN یا فیلترشکن خود را خاموش کنید.

⏳ ادامه در
5
ثانیه