🧩 درس هفتم: توابع – کدهای قابل استفاده مجدد
🎯 هدف این درس: آشنایی با توابع و نحوه استفاده از آنها برای سازماندهی بهتر کد
سلام دوست عزیز! 👋
تا اینجا با خیلی از مباحث آشنا شدی: متغیرها، شرطها، حلقهها و لیستها. اما یه سوال مهم: وقتی کدت بزرگ میشه، چطور میتونی اون رو مرتب و قابل فهم نگه داری؟
جواب این سوال، توابع هستن. توابع به ما کمک میکنن کد رو به بخشهای کوچکتر تقسیم کنیم و از تکرار کد جلوگیری کنیم.
توی این درس، با هم یاد میگیریم:
- ✅ تابع چیه و چرا بهش نیاز داریم
- ✅ چطور یه تابع تعریف کنیم
- ✅ پارامترها و مقدار بازگشتی
- ✅ پارامترهای پیشفرض
- ✅ پروژه عملی: ماشین حساب با توابع
🎯 بخش ۱: تابع چیست و چرا به آن نیاز داریم؟
تابع یه بلوک کد مستقل هست که یه کار مشخص رو انجام میده. وقتی تابعی رو تعریف میکنیم، بهش یه نام میدیم و هر وقت به اون کار نیاز داشتیم، تابع رو با نامش صدا میزنیم.
💡 مثال در زندگی واقعی:
یه دستور پخت غذا رو یک بار یاد میگیری و هر بار که میخوای اون غذا رو بپزی، همون دستور رو اجرا میکنی. تابع هم دقیقاً همینه!
مزایای استفاده از توابع:
- ✅ کاهش تکرار کد: یه کد رو یک بار مینویسی و هر جا که نیاز باشه استفاده میکنی
- ✅ خوانایی بیشتر: کدت تمیزتر و قابل فهمتر میشه
- ✅ تست آسانتر: هر تابع رو جداگانه میتونی تست کنی
- ✅ استفاده مجدد: توابع رو توی پروژههای دیگه هم میتونی استفاده کنی
ساختار کلی تابع:
ساختار تابع
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برای پارامترهای متغیر - ✅ پروژه عملی: ماشین حساب با توابع
در درس بعدی و آخر این دوره، یه پروژه نهایی با هم میسازیم و همه چیزهایی که تا الان یاد گرفتی رو توی یه برنامه کاربردی جمع میکنیم.




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