توابع با ورودی و خروجی
### داستان شانزدهم: توابع با ورودی و خروجی
آراد بعد از یادگیری نحوه ساخت دیکشنریهای پیچیده و مدیریت دادهها، تصمیم گرفت بیشتر درباره توابع در برنامهنویسی یاد بگیرد. او میخواست یک سیستم ساده برای محاسبه قیمت نهایی محصولات طراحی کند که در آن، هر محصول با قیمت پایه، مالیات و تخفیف ثبت شود و سیستم بتواند قیمت نهایی محصول را محاسبه و برگرداند.
آراد با سینا تماس گرفت و گفت: «سینا، میخوام بدونم چطور میتونم یک تابع بنویسم که قیمت نهایی محصول رو با در نظر گرفتن مالیات و تخفیف به من برگردونه. اینطوری کارم سادهتر میشه و میتونم چندین محصول مختلف رو راحتتر بررسی کنم.»
سینا پاسخ داد: «خیلی خوبه آراد! توابع برای انجام این کارها عالی هستن. میتونی تابعی تعریف کنی که پارامترهایی مثل قیمت پایه، مالیات و تخفیف رو دریافت کنه و بعد از انجام محاسبات، قیمت نهایی رو به عنوان خروجی یا مقدار بازگشتی بهت برگردونه.»
آراد با تعجب پرسید: «مقدار بازگشتی چیه؟»
سینا توضیح داد: «مقدار بازگشتی همون خروجیایه که بعد از اجرای تابع بهت برمیگرده. در اینجا قیمت نهایی محصول که تابع بعد از محاسبه بهت میده، مقدار بازگشتی تابع هست.»
برای اینکه بهتر متوجه شود، سینا کدی برای آراد نوشت و توضیح داد:
“`python
def calculate_final_price(price, tax, discount):
final_price = price + (price * tax) – discount
return final_price
“`
سینا توضیح داد: «تو این کد، تابع `calculate_final_price` سه پارامتر `price` (قیمت پایه)، `tax` (مقدار مالیات به درصد) و `discount` (تخفیف) رو به عنوان ورودی دریافت میکنه. داخل تابع، قیمت نهایی با در نظر گرفتن مالیات و تخفیف محاسبه میشه و در نهایت مقدار نهایی به کمک `return` برگردونده میشه.»
آراد پرسید: «حالا چطور از این تابع استفاده کنم؟»
سینا ادامه داد: «کافیه تابع رو با مقادیر دلخواه فراخوانی کنی و نتیجه رو ذخیره یا چاپ کنی.» آراد کد زیر رو امتحان کرد:
“`python
price = 1000
tax = 0.1 # ده درصد مالیات
discount = 50
final_price = calculate_final_price(price, tax, discount)
print(“قیمت نهایی محصول:”, final_price)
“`
نتیجه این کد به شکل زیر بود:
“`
قیمت نهایی محصول: ۱۰۵۰.۰
“`
آراد با خوشحالی گفت: «حالا میبینم که چطور با استفاده از پارامترها میتونم توابعی بسازم که روی دادههای مختلف محاسبه انجام بده و مقدار نهایی رو به عنوان خروجی برگردونه. این خیلی کارم رو راحتتر میکنه!»
سینا تایید کرد: «دقیقاً! توابع به تو اجازه میدهند که کد رو سازماندهی کنی و چندین بار ازش استفاده کنی. پارامترها مثل متغیرهایی هستن که به تابع میفرستی تا بتونه محاسبات لازم رو انجام بده و مقدار نهایی رو بهت برگردونه.»
آراد با خنده گفت: «ممنون سینا! حالا میدونم که چطور توابعی بنویسم که ورودی و خروجی داشته باشن. این خیلی کمکم میکنه که پروژههام رو حرفهایتر انجام بدم.»