تابع یکی از مهمترین مفهومات در ریاضیات است. تابع ساده زیر را در نظر بگیرید:
y=x+1
function(x)=x+1
x به عنوان ورودی (پارامتر) و y به عنوان خروجی در نظر گرفته میشود.
تابع در برنامه نویسی هم بر گرفته ازهمین مفهوم است. در واقع ما وقتی یک برنامه چند خطی ساده مینویسیم متوجه اهمیت تابع نمیشویم ولی وقتی تعداد خطوط زیاد شد همچنین تکرار برخی خطوط بالا رفت، این کدهای تکراری را با عنوان یک تابع با نام خاص میسازیم. و هر کجای برنامه و به هر تعداد که خواستیم استفاده میکنیم، همچنین به برنامه نویسان اجازه اشتراک گذاشتن کد ها را می دهد. سپس متوجه اهمیت آن میشویم.
توابع تحت نام های مختلف در زبان های برنامه نویسی شناخته می شوند، برای مثال : زیرمجموعه ها(subroutines)، روال ها(routines)، روش ها(procedures)، روش ها(methods) یا زیر برنامه ها(subprograms).
تابع در پایتون با با کلمه کلیدی def تعریف و بعد فراخوانی میشود. تابع از سه بخش تشکیل میشود:
>>> def add(x,y): return x+y >>> add(2,3) ۵ >>>
تابعی برای جمع دو عدد تعریف میکنیم:
در خط اول توسط def نامی برای تابع انتخاب و تعریف شده است. سپس دو پارامتر به عنوان ورودی تعریف میکنیم . : را میگذاریم و اینتر را میزنیم. سپس تابع را توسط نام آن و انتخاب دو آرگومان فراخوانی میکنیم. اینتر را زده و نتیجه را مشاهده میکنیم.
وقتی کد زیر اجرا میشود پنجره ای حاوی باتن را مشاهده میکنیم که قراره با کلیک روی آن رویدای که نمایش پیام است را ببینیم و این رویداد توسط فراخوانی تابع انجام میگیرد.
import tkinter.messagebox from tkinter import * top = Tk() def helloCallBack(): messagebox.showinfo( "Hello Python", "Hello World") B = Button(top, text ="Hello", command = helloCallBack,bg='red', fg='white') B.pack() top.mainloop()
import tkinter.messagebox import sys from tkinter import * top = Tk() top.configure( bg = 'yellow' ) def sum(): arg1= a.get() arg2 = b.get() t=arg1+arg2 messagebox.showinfo("مجموع ۲ عدد",t ) a=IntVar() b=IntVar() Label(top, text="عدد اول",bg='yellow').grid(row=0) Label(top, text="عدد دوم ",bg='yellow').grid(row=1) e1 = Entry(top,textvariable = a).grid(row=0, column=1) e2 = Entry(top,textvariable = b).grid(row=1, column=1) B = Button(top, text ="نتیجه", command = sum,bg='red', fg='white').grid(row=2, column=1) top.mainloop()