خانه / درس ۴ مقدماتی: توابع در پایتون – کدهای تمیز و قابلاستفاده مجدد درس ۴ مقدماتی: توابع در پایتون – کدهای تمیز و قابلاستفاده مجدد 📅 ۱۴۰۴/۰۸/۱۱ ✍️ سجاد ⌛ 5 دقیقه مطالعه 👁️ 24 پایتون | Python مقدماتی 🗨️ 🤍 0 📤 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("علی") تمرینها: مهارتت رو تست کن! 📝 برای تسلط، این ۱۲ تمرین رو حل کن: تابعی بنویس که مربع یه عدد رو برگردونه. تابع محاسبه فاکتوریل با حلقه. تابعی که بررسی کنه عدد زوجه یا فرد. تابعی که بزرگترین عدد در یه لیست رو پیدا کنه. تابع تبدیل متر به سانتیمتر. تابعی که تعداد حروف یه رشته رو بشماره. تابع بررسی وجود یه کلمه در لیست. تابعی که معکوس یه رشته رو برگردونه. تابع محاسبه مساحت دایره (شعاع ورودی). تابعی که یه دیکشنری رو چاپ کنه (کلید:مقدار). تابع محاسبه مالیات (مبلغ و درصد). تابعی که میانگین یه لیست رو برگردونه. 💡 نکته: هر تمرین رو توی فایل جدا (ex1.py، ex2.py) ذخیره کن. پروژه کوچک: ماشین حساب با توابع 🧮 برای مثال، بیایم ماشین حساب درس ۲ رو با توابع ارتقا بدیم: توابع جدا برای هر عملیات. حلقه برای تکرار. ذخیره در 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 آپلود کن تا پیشرفتت رو نشون بدی! 😎 ← درس قبلی: درس ۳ مقدماتی: دادهساختارها – لیست، تاپل و دیکشنری در پایتون درس بعدی: درس ۵ مقدماتی: مدیریت خطاها و کار با فایلها در پایتون → برچسبها: functions pythonpythonبرنامهنویسی مبتدیپارامتر تابعپایتونتابع پایتونمقدار بازگشتی ارسال نظر جدید لغو پاسخ ذخیره نام، ایمیل و وبسایت من در مرورگر برای زمانی که دوباره دیدگاهی مینویسم.
تا حالا حس کردی کدهات دارن شلوغ میشن؟ 🧹 توابع مثل جعبههای مرتبکننده هستن که کدهات رو تمیز، خوانا و قابلاستفاده مجدد میکنن! برای مثال، به جای نوشتن چندبار یه محاسبه، میتونی یه تابع بسازی و هرجا لازم بود صداش کنی. تو این درس، با توابع در پایتون آشنا میشی: چطور تعریفشون کنی، پارامتر بدی و نتیجه بگیری. بنابراین، اگر درسهای ۱ (متغیرها)، ۲ (شرطها و حلقهها) و ۳ (دادهساختارها) رو یاد گرفتی، حالا آمادهای که کدت رو حرفهایتر کنی! 🚀 با مثالهای واقعی، جداول مقایسه، ۱۲ تمرین و یه پروژه جذاب، این درس تو رو برای ساخت برنامههای منظم آماده میکنه. بریم شروع کنیم! 🎉 توابع چیه و چرا مهمه؟ 🧠 تابع یه بلوک کد با نامی مشخصه که یه کار خاص انجام میده. برای مثال، تابع 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("علی") تمرینها: مهارتت رو تست کن! 📝 برای تسلط، این ۱۲ تمرین رو حل کن: تابعی بنویس که مربع یه عدد رو برگردونه. تابع محاسبه فاکتوریل با حلقه. تابعی که بررسی کنه عدد زوجه یا فرد. تابعی که بزرگترین عدد در یه لیست رو پیدا کنه. تابع تبدیل متر به سانتیمتر. تابعی که تعداد حروف یه رشته رو بشماره. تابع بررسی وجود یه کلمه در لیست. تابعی که معکوس یه رشته رو برگردونه. تابع محاسبه مساحت دایره (شعاع ورودی). تابعی که یه دیکشنری رو چاپ کنه (کلید:مقدار). تابع محاسبه مالیات (مبلغ و درصد). تابعی که میانگین یه لیست رو برگردونه. 💡 نکته: هر تمرین رو توی فایل جدا (ex1.py، ex2.py) ذخیره کن. پروژه کوچک: ماشین حساب با توابع 🧮 برای مثال، بیایم ماشین حساب درس ۲ رو با توابع ارتقا بدیم: توابع جدا برای هر عملیات. حلقه برای تکرار. ذخیره در 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 آپلود کن تا پیشرفتت رو نشون بدی! 😎 ← درس قبلی: درس ۳ مقدماتی: دادهساختارها – لیست، تاپل و دیکشنری در پایتون درس بعدی: درس ۵ مقدماتی: مدیریت خطاها و کار با فایلها در پایتون → برچسبها: functions pythonpythonبرنامهنویسی مبتدیپارامتر تابعپایتونتابع پایتونمقدار بازگشتی