0%
در حال بارگذاری...

جستجو در سایت

درس ۴ مقدماتی: توابع در پایتون – کدهای تمیز و قابل‌استفاده مجدد

پایتون | Python مقدماتی

تا حالا حس کردی کدهات دارن شلوغ می‌شن؟ 🧹 توابع مثل جعبه‌های مرتب‌کننده هستن که کدهات رو تمیز، خوانا و قابل‌استفاده مجدد می‌کنن! برای مثال، به جای نوشتن چندبار یه محاسبه، می‌تونی یه تابع بسازی و هرجا لازم بود صداش کنی. تو این درس، با توابع در پایتون آشنا می‌شی: چطور تعریفشون کنی، پارامتر بدی و نتیجه بگیری. بنابراین، اگر درس‌های ۱ (متغیرها)، ۲ (شرط‌ها و حلقه‌ها) و ۳ (داده‌ساختارها) رو یاد گرفتی، حالا آماده‌ای که کدت رو حرفه‌ای‌تر کنی! 🚀 با مثال‌های واقعی، جداول مقایسه، ۱۲ تمرین و یه پروژه جذاب، این درس تو رو برای ساخت برنامه‌های منظم آماده می‌کنه. بریم شروع کنیم! 🎉

توابع چیه و چرا مهمه؟ 🧠

تابع یه بلوک کد با نامی مشخصه که یه کار خاص انجام می‌ده. برای مثال، تابع print متن رو نمایش می‌ده. علاوه بر این، توابع باعث می‌شن:

  • خوانایی: کد مرتب‌تره و راحت‌تر فهمیده می‌شه.
  • استفاده مجدد: یه بار بنویس، چندبار استفاده کن.
  • مدیریت: کدهای پیچیده رو به بخش‌های کوچیک تقسیم می‌کنه.

به همین دلیل، توابع قلب برنامه‌نویسی حرفه‌ای هستن. بیایم با یه تابع ساده شروع کنیم:

def say_hello():
    print("سلام، دنیا!")
say_hello()  # صدا زدن تابع

بنابراین، def تابع رو تعریف می‌کنه، () جای پارامترهاست و : شروع بلوک تابع رو نشون می‌ده.

توابع با پارامتر: ورودی‌های پویا 📥

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

def greet(name):
    print(f"سلام، {name}!")
greet("علی")  # سلام، علی!
greet("مریم")  # سلام، مریم!

به علاوه، می‌تونی چند پارامتر بدی:

def add(a, b):
    print(f"جمع: {a + b}")
add(5, 3)  # جمع: ۸

💡 نکته: پارامترها مثل متغیرها (درس ۱) هستن که فقط توی تابع کار می‌کنن.

مقدار بازگشتی: خروجی تابع 📤

با return می‌تونی نتیجه تابع رو برگردونی. برای مثال:

def square(num):
    return num * num
result = square(4)
print(result)  # 16

علاوه بر این، می‌تونی چند مقدار برگردونی:

def min_max(numbers):
    return min(numbers), max(numbers)
nums = [1, 5, 3]
smallest, largest = min_max(nums)
print(f"کوچک‌ترین: {smallest}, بزرگ‌ترین: {largest}")  # کوچک‌ترین: ۱, بزرگ‌ترین: ۵

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

پارامترهای پیش‌فرض و اختیاری 🎛️

می‌تونی برای پارامترها مقدار پیش‌فرض بذاری. برای مثال:

def greet(name="کاربر"):
    print(f"سلام، {name}!")
greet()  # سلام، کاربر!
greet("رضا")  # سلام، رضا!

به همین دلیل، پارامترهای پیش‌فرض وقتی کاربر چیزی نده، کار می‌کنن. به علاوه، می‌تونی با *args تعداد نامحدود ورودی بگیری:

def sum_all(*args):
    return sum(args)
print(sum_all(1, 2, 3, 4))  # 10

💡 نکته: *args یه تاپل از ورودی‌ها می‌سازه.

ترکیب با درس‌های قبلی: شرط و حلقه در توابع 🔄

برای مثال، می‌تونی شرط‌ها (درس ۲) و داده‌ساختارها (درس ۳) رو توی توابع استفاده کنی:

def check_even(numbers):
    evens = []
    for num in numbers:
        if num % 2 == 0:
            evens.append(num)
    return evens
print(check_even([1, 2, 3, 4, 5]))  # [2, 4]

بنابراین، توابع کدهای درس‌های قبلی رو منظم‌تر می‌کنن.

مثال‌های عملی: دنیای واقعی 💡

برای مثال، بیایم چند تابع کاربردی بسازیم:

۱. تبدیل دما:

def celsius_to_fahrenheit(celsius):
    return celsius * 9/5 + 32
temp = float(input("دما (سلسیوس): "))
print(f"{temp}C = {celsius_to_fahrenheit(temp)}F")

۲. بررسی عدد اول:

def is_prime(n):
    if n < 2:
        return False
    for i in range(2, n):
        if n % i == 0:
            return False
    return True
num = int(input("عدد: "))
print(f"{num} اول است؟ {is_prime(num)}")

۳. مدیریت لیست خرید:

def print_shopping_list(items):
    for i, item in enumerate(items, 1):
        print(f"{i}. {item}")
print_shopping_list(["شیر", "نان", "تخم‌مرغ"])

به همین دلیل، این توابع درس‌های قبلی رو با توابع ترکیب می‌کنن. کدها رو توی lesson4_examples.py ذخیره کن.

خطاهای رایج و راه‌حل‌ها ⚠️

به طور کلی، این خطاها تو توابع شایعن:

خطا علت راه‌حل
TypeError ورودی ناسازگار با تابع نوع ورودی رو با type() چک کن
NameError تابع یا متغیر تعریف نشده املای def یا نام تابع رو چک کن
SyntaxError فراموشی : یا فاصله‌گذاری ساختار تابع رو بازبینی کن

برای مثال:

def greet(name):
    print(name)
greet()  # خطا: TypeError (پارامتر لازم)
# حل:
greet("علی")

تمرین‌ها: مهارتت رو تست کن! 📝

برای تسلط، این ۱۲ تمرین رو حل کن:

  1. تابعی بنویس که مربع یه عدد رو برگردونه.
  2. تابع محاسبه فاکتوریل با حلقه.
  3. تابعی که بررسی کنه عدد زوجه یا فرد.
  4. تابعی که بزرگ‌ترین عدد در یه لیست رو پیدا کنه.
  5. تابع تبدیل متر به سانتیمتر.
  6. تابعی که تعداد حروف یه رشته رو بشماره.
  7. تابع بررسی وجود یه کلمه در لیست.
  8. تابعی که معکوس یه رشته رو برگردونه.
  9. تابع محاسبه مساحت دایره (شعاع ورودی).
  10. تابعی که یه دیکشنری رو چاپ کنه (کلید:مقدار).
  11. تابع محاسبه مالیات (مبلغ و درصد).
  12. تابعی که میانگین یه لیست رو برگردونه.

💡 نکته: هر تمرین رو توی فایل جدا (ex1.py، ex2.py) ذخیره کن.

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

برای مثال، بیایم ماشین حساب درس ۲ رو با توابع ارتقا بدیم:

  1. توابع جدا برای هر عملیات.
  2. حلقه برای تکرار.
  3. ذخیره در calculator_functions.py.
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):
    return a / b if b != 0 else "خطا: تقسیم بر صفر!"

while True:
    print("\n=== ماشین حساب با توابع ===")
    num1 = float(input("عدد اول: "))
    num2 = float(input("عدد دوم: "))
    op = input("عملیات (+, -, *, /): ")
    if op == "+":
        print(f"نتیجه: {add(num1, num2)}")
    elif op == "-":
        print(f"نتیجه: {subtract(num1, num2)}")
    elif op == "*":
        print(f"نتیجه: {multiply(num1, num2)}")
    elif op == "/":
        print(f"نتیجه: {divide(num1, num2)}")
    else:
        print("عملیات نامعتبر!")
    again = input("دوباره؟ (y/n): ")
    if again.lower() != "y":
        break
print("خداحافظ!")

💡 تست کن: با ورودی‌های مختلف (مثل ۱۰، ۵، +) و گزینه تکرار اجرا کن.

سؤالات متداول (FAQ) ❓

به طور کلی، این سؤالات برای مبتدی‌ها رایجه:

  • چرا از توابع استفاده کنیم؟ برای نظم و استفاده مجدد کد.
  • return لازم نیست؟ اگر فقط چاپ کنی، کافیه، ولی برای محاسبات return بهتره.
  • چطور خطای تابع رو رفع کنم؟ تعداد و نوع پارامترها رو چک کن.
  • پارامتر پیش‌فرض چیه؟ مقداری که اگر ورودی ندی، استفاده می‌شه.

جمع‌بندی و قدم بعدی ⏭️

تبریک! 🚀 تو این درس توابع، پارامترها و بازگشت مقدار رو یاد گرفتی و با بیش از ۱۲ مثال و یه پروژه، حسابی مسلط شدی. بنابراین، حالا می‌تونی کدهای تمیز و قابل‌استفاده مجدد بنویسی. علاوه بر این، درس بعدی (مدیریت خطاها و فایل‌ها) بهت یاد می‌ده چطور خطاها رو مدیریت کنی و داده‌ها رو ذخیره کنی. در نهایت، تمرین‌ها رو توی PythonLessons ذخیره کن و اگه دوست داشتی، توی GitHub آپلود کن تا پیشرفتت رو نشون بدی! 😎

ارسال نظر جدید

گزارش دیدگاه