شخص تابع Function به مجموعه ای از دستورات یکپارچه گفته میشود که جهت اجرای اعمال خاصی در برنامه یک بار نوشته میشود و به تعداد مورد نیاز در برنامه از آن استفاده شده و فراخوانی میشود. در بخش ششم از سری آموزش های پایتون با رزبری پای به بررسی تابع Function خواهیم پرداخت. در ادامه آموزش توابع و ماژولها در Python با مرجع تخصصی پایتون با رزبری پای Raspberry pi دیجی اسپارک همراه باشید.
تعریف تابع Function
تا بخش پنجم برنامه ها و مثال هایی که نوشته شد به صورت یکپارچه اجرا شدند و نیاز به تکرار و استفاده دوباره از آن ها در برنامه نبوده است! اما اگر اجرای بخشی از برنامه نیاز به تکرار داشته باشد، راه حل چیست؟ برنامه نویس ها میتوانند زمانیکه نیاز به انجام عملیات جندبار دارند، به جای نوشتن آن ها در چندین مرتبه دستورات را در یک تابع بنویسند. تابع نوشتن آزاد است! توابع سبب صرفه جویی در تعداد خط کدنویسی برنامه شده و زمان هم از این قائده مستثنی نیست! خوانایی برنامه هم افزایش پیدا میکند و به دلیل بخش بندی و لایه لایه شدن کدها رفع عیب هم ساده تر میشود. هر بخش از کدها از یکدیگر جداگانه عمل کرده و میتواند هر شخص تمرکزش را بر روی یک تابع بگذارد که تداخلی در اصل برنامه به وجود نیاورد. توابع به دو بخش کلی تقسیم بندی میشوند. یک تابع های داخلی Built in Function و توابع تعریف شده توسط برنامه نویس! توابع داخلی از قبل تعریف شده و برای زبان برنامه نویسی قابل شناسایی است و با فراخوانی آن ها عملیات خاصی را انجام میدهند. اما در حالت دوم برنامه نویس به نیاز پروژه یک تابع خاص تعریف کرده و از آن در طول برنامه به کرات استفاده میکند.
تعریف تابع
برای تعریف تابع از کلمه ی کلیدی def استفاده میکنیم. برای برگرداندن نتیجه تابع def از کلمه کلیدی return استفاده میکنیم. با نوشتن return پایان اجرای تابع را اعلام میکنیم. هر تابع از چندین بخش تشکیل شده است که باید کامل آن ها را در گوشه ی ذهن داشته باشیم. اینکه تابع چه کاری در برنامه قرار است انجام دهد. در ورودی چه مقادیری را میپذیرد. نتایج به چه صورت است.
def functionname (parameters): statements
از def برای تعریف تابع استفاده میشود. در معرفی تابع باید اول یک اسم دلخواه برای نام تابع در نظر بگیریم. منظور از پارامتر لیست پارامترهایی است که باید تابع دریافت کند. در داخل تابع باید تعدادی از دستورات اجرا شوند که با statement مشخص شده است. دستورات حتما باید از تورفتگی استفاده کنند. حتما از کولن : در انتهای سطر استفاده کنید. بعد از تعریف تابع باید فراخوانی شود. تابع میتواند در برنامه اصلی یا توسط تابع دیگر اجرا شود.
def my_function(): print("Hello from a function")
def theladypi (): print("hello ladyjaan") theladypi() result: hello ladyjaan
def functionname( parameters ): "function_docstring" function_suite return [expression]
def نام تابع (پارمترها) . . دستورات تابع . . . [خروجی تابع return]
نام تابع و پارامترهای ورودی در جلوی def نوشته میشود. سپس دستورات بدنه در خط های بعدی با رعایت تورفتگی نوشته شده و سپس به دلخواه از خروجی return استفاده میشود. پارامترها در زمان تعریف تابع مشخص میشوند و آرگومان ها مقادیری هستند که منتاظر با پارامترها در نقش ورودی وارد برنامه میشوند. برای فراخوانی تابع به صورت زیر اقدام کنید.
function_name (arguments(s))
def my_function(name): print(name + " add") my_function("a") my_function("b") my_function("c")
a add b add c add
تابع در برنامه میتواند دارای چندین پارامتر باشد و یا پارامتر نداشته باشد. پارامترها با ترتیب مکانی، کلمه کلیدی، مکانی با تعداد متغیر و یا پیشفرض در برنامه مشخص شوند.
استفاده از import
برای فراخوانی توابع و ماژول ها نیاز به استفاده از import داریم. بعضی از دستورات در پایتون جز توابع پیش فرض پایتون هستند و دسترسی به آن ها ساده است. اما در بیشتر مواقع نیاز داریم تا امکانات جدیدتری را تست کنیم. برای اینکار باید از import استفاده کنیم.
import modulename
منظور از modulename ماژولی است که میخواهیم در برنامه تعریف و فراخوانی کنیم.
from modulename import classname
در این روش فراخوانی کلاس classname را از ماژول modulename وارد برنامه میکند.
توابع بازگشتی
توابع بازگشتی به طور مستقیم یا غیرمستقیم در صورت نیاز خود را فراخوانی میکنند. بازگشتی به مفهومی گفته میشود که در آن تابعی خودش را فراخوانی میکند. توابع میتوانند به طور مستقیم یا غیرمستقیم خودشان را فراخوانی کنند.
ماژول ها Module
ماژول MODULE از مجموع چندین تابع است که به برنامه معرفی میشود و از توابع موجود در آن استفاده میشود. فایل ماژول مانند فایل برنامه در پایتون با پسوند .py ذخیره میشود. از ماژول به عنوان شی در برنامه استفاده میشود. به عنوان مثال ماژول های آماده در پایتون مانند math , os, sys, time, socket است.
از دستور import برای اتصال ماژول به برنامه استفاده میشود. در این صورت تمام توابع موجود در ماژول در برنامه قابل استفاده هستند. اما اگر بخواهید فقط یک یا چند تابع خاص از ماژول را به برنامه وارد و سپس استفاده کنید.
from module import function
# A simple module, calc.py def add(x, y): return (x+y) def subtract(x, y): return (x-y)
# importing module calc.py import calc print(calc.add(10, 2))
این مثال از ماژول های آماده و مثال های آشنا در وب نوشته شده است تا با مفهوم ماژول آشنا شوید.
def fact(x): if x!=0: return x* fact(x-1) else: return 1 m = int(input("enter positive number:")) print ("number = ", m, ", factorial =", fact(m))
جمع بندی لیدی پای
در بخش ششم توابع و ماژولها در Python از سری آموزش های پایتون با بردهای رزبری پای به معرفی تابع و ماژول پرداختیم. هر تابع دو جنبه دارد. تعریف و فراخوانی. جنبهی تعریف تابع مجموعی از دستورالعملهاست که عملکرد تابع را مشخص میکند که از def کمک میگیریم. پس از تعریف تابع نوبت به فراخوانی میرسد. تابع فراخوانی میشود تا قسمتی از مسائل را که در برنامه غیرقابل حل است را به راحتی حل کند. در مقابل ماژول از مجموع تابع ها، کلاس ها، متغیرها است که با پسوند .py در برنامه مشخص میشوند.
وسایل مورد نیاز
چنانچه در مراحل راه اندازی و انجام این پروژه با مشکل مواجه شدید، بدون هیچ نگرانی در انتهای همین پست، به صورت ثبت نظر سوالتان را مطرح کنید. من در سریعترین زمان ممکن پاسخ رفع مشکل شما را خواهم داد. همچنین اگر ایرادی در کدها و یا مراحل اجرایی وجود دارند میتوانید از همین طریق اطلاع رسانی کنید.
سلام خسته نباشید ببخشید برای برنامه نویسی رزبری پای ۴ نرم افزار Thonny و Python 2 یا Python3 باهم فرق دارن یعنی اگر بلد باشیم با یکی از اینا کار کنیم میشه با یکی دیگه هم کار کرد یا نه باید اونم جدا آموزش دید؟؟؟؟؟
با سلام
زبان مشترک همه پایتون است و تفاوتی ندارد و به راحتی میتوانید پروژه اجرا کنید.
سلام
از کدام ورژن پایتون میشه استفاده کرد
با سلام
تقاوتی ندارد اما ورژن ۳ پیشنهاد میشود.
سلام
اینطور که به نظر میرسه برای یادگیری رزبری پای باید پایتون هم بلد باشیم و کار سخت میشه
با سلام
بله نسخه os رزبری پای از پایتون ۲ و پایتون ۳ پشتیبانی میکند و برای کدزدن نیاز به دانش زبان پایتون خواهید داشت.