در این مقاله به آموزش ساخت انواع ماشین حساب ساده و گرافیکی با پایتون می پردازیم و همچنین کد ساخت ماشینحساب با پایتون را خط به خط بررسی میکنیم تا ببینیم چگونه این ماشین حساب ساخته شده است.
برای ساخت بازی یا اپلیکیشن در پایتون یه خصوص ساخت ماشین حساب ساده و گرافیکی در پایتون نیاز به پیشنیازهایی است که کاربران باید قبل از انجام فرآیند این پیش نیازها را رعایت کنند. این فرآیند در آموزش پایتون کودک و نوجوان به صورت کامل بررسی می شود و در این مقاله فقط یک نمونه تمرین باهم حل می کنیم.
برای ساخت ماشین حساب ساده با پایتون به یک نسخه نصب شده از پایتون 3 نیاز دارید. نصب پایتون بسیار مهم بوده و باید درست و اصولی نصب شود تا در هنگام کار با پایتون به مشکلات زیادی برنخورید.
یک کتابخانه استاندارد پایتون برای ساخت رابط گرافیکی پایتون است پس برای آموزش ساخت ماشینحساب گرافیکی با پایتون از این کتابخانه استفاده میکنیم. برای نصب tkinter میتوانید از دستور زیر در خط فرمان استفاده کنید:
pip install tkinter
بیشتر بخوانید: آموزش نصب کتابخانه در پایتون
tkinter یک کتابخانه قدرتمند و محبوب برای ساخت رابط کاربری گرافیکی (GUI) در زبان برنامهنویسی پایتون است. این کتابخانه به دلیل سادگی، انعطافپذیری و پلتفرممحور بودن، به طور گسترده توسط برنامهنویسان پایتون استفاده میشود. بنابراین شروع میکنیم به ساخت ماشین حساب با پایتون با tkinter.
سادگی: tkinter دارای API ساده و قابل فهمی است که یادگیری آن را برای مبتدیان آسان میکند.
انعطافپذیری: tkinter طیف گستردهای از ویجتها را برای ساخت رابطهای کاربری پیچیده ارائه میدهد.
پلتفرممحور: tkinter بر روی سیستمعاملهای مختلف مانند ویندوز، لینوکس و macOS قابل اجرا است.
رایگان و منبع باز: tkinter یک کتابخانه رایگان و منبع باز است که میتوانید به طور آزادانه از آن استفاده و توزیع کنید.
tkinter برای ساخت انواع مختلف برنامههای GUI مانند:
ساخت ماشین حساب با پایتون: ساخت ماشین حسابهای ساده و پیچیده با استفاده از tkinter آسان است.
ساخت بازی: tkinter میتواند برای ساخت بازیهای ساده و سرگرمکننده استفاده شود.
ساخت برنامههای کاربردی: tkinter برای ساخت برنامههای کاربردی مختلف مانند ویرایشگر متن، دفترچه یادداشت و برنامههای مدیریت فایل استفاده میشود.
بنابراین برای ساخت اپلیکیشن ماشین حساب با پایتون استفاده از کتابخانه tkinter میتواند به ما کمک کند.
مراحل ساخت:
ایجاد یک فایل جدید: یک فایل جدید با نام دلخواه خود (مثلاً calculator.py) ایجاد کنید.
وارد کردن کتابخانه tkinter: در ابتدای فایل خود، کتابخانه tkinter را با استفاده از کد زیر وارد کنید:
from tkinter import *
تعریف توابع:
در ادامه اموزش ساخت ماشین حساب گرافیکی با پایتون ، چند تابع برای انجام وظایف مختلف ماشین حساب تعریف میکنیم.
تابع click(): این تابع هنگامی که روی یک دکمه عدد کلیک میشود، فراخوانی میشود. مقدار x عددی است که روی دکمه نوشته شده است. این تابع مقدار فعلی روی صفحه نمایش (که در متغیر final ذخیره شده) را به عنوان یک رشته درنظر گرفته و عدد x را به انتهای آن اضافه میکند. در نهایت خروجی این رشته به متغیر input_text اختصاص داده میشود تا روی صفحه نمایش بهروز شود.
def click(x):
global final
final = str(final) + str(x)
input_text.set(final)
تابع equal(): این تابع زمانی که دکمه “=” کلیک شود اجرا میشود. مقدار final که یک رشته حاوی عبارت محاسباتی است، با استفاده از تابع eval ارزیابی شده و نتیجه محاسبه به عنوان یک عدد، دوباره به final اختصاص داده میشود. سپس این مقدار به input_text تخصیص داده شده تا روی صفحه نمایشگر نشان داده شود.
def equal():
global final
final = eval(final)
input_text.set(final)
تابع clear(): این تابع هنگامی که دکمه “AC” فشار داده شود، فراخوانی شده و باعث پاک شدن صفحه نمایش میشود. با مقداردهی خالی به final و input_text این کار انجام میشود.
def clear():
global final
final = ''
input_text.set('')
بیشتر بخوانید: بهترین کتابخانه های پایتون
در این قسمت از اموزش ساخت ماشینحساب با پایتون شروع به راه اندازی رابط کاربری میکنیم. با استفاده از root = Tk() پنجره اصلی برنامه ساخته میشود. عنوان پنجره با root.title ("ماشینحساب") تنظیم میشود.
سپس یک فریم (Frame) با نام frm ساخته میشود که به عنوان ظرفی برای قرار دادن عناصر دیگر رابط کاربری عمل میکند. رنگ این فریم با bg='#212529' به طوسی تیره تنظیم شده است.
برای نمایش اعداد و عبارات روی صفحه نمایش، از یک متغیر رشتهای به نام input_text استفاده میشود. متغیر دیگری به نام final تعریف میشود که در ابتدا مقدار خالی دارد و در طول برنامه برای ذخیره عبارت تایپ شده توسط کاربر استفاده میشود.
root = Tk()
root.title("Calculator")
frm = Frame(root, bg='#212529')
input_text = StringVar()
final = ''
با استفاده از ent = Entry(frm, ... ) یک عنصر Entry ساخته میشود. این عنصر یک کادر متنی است که برای نمایش خروجی ماشین حساب به کار میرود. ویژگیهای Entry مانند تعداد کاراکتر قابل نمایش، تراز متن (center) و فونت آن نیز تنظیم شده است.
ent = Entry(frm, width=30, justify='center', font=('', 20), textvariable=input_text)
بیشتر بخوانید: ساخت ماشین جساب با اسکرچ
در بخش بعدی برای ساخت ماشین حساب با پایتون باید دکمه ها ساخته شوند. برای هر دکمه از عنصر Button استفاده شده است. ویژگیهای دکمهها شامل متن، فونت، اندازه و رنگ پسزمینه (برای تمایز دکمههای عملیات) تنظیم شده است.
به هر دکمه یک فرمان (command) اختصاص داده شده است. این فرمان با استفاده از lambda تعریف میشود و تابع click(x) را برای دکمههای عددی، equal برای دکمه “=” و clear را برای دکمه “AC” فراخوانی میکند.
در نهایت با استفاده از متدهای grid و pack عناصر رابط کاربری (صفحه نمایش و دکمهها) را در جایگاه مناسب خود درون Frame قرار میدهیم.
btn7 = Button(frm, text='7', font=('', 20), width=5, height=2, command=lambda: click(7))
btn8 = Button(frm, text='8', font=('', 20), width=5, height=2, command=lambda: click(8))
btn9 = Button(frm, text='9', font=('', 20), width=5, height=2, command=lambda: click(9))
btnMulti = Button(frm, text='*', font=('', 20), width=5, height=2, bg='#aaffaa', command=lambda: click('*'))
btn4 = Button(frm, text='4', font=('', 20), width=5, height=2, command=lambda: click(4))
btn5 = Button(frm, text='5', font=('', 20), width=5, height=2, command=lambda: click(5))
btn6 = Button(frm, text='6', font=('', 20), width=5, height=2, command=lambda: click(6))
btnDiv = Button(frm, text='/', font=('', 20), width=5, height=2, bg='#aaffaa', command=lambda: click('/'))
btn1 = Button(frm, text='1', font=('', 20), width=5, height=2, command=lambda: click(1))
btn2 = Button(frm, text='2', font=('', 20), width=5, height=2, command=lambda: click(2))
btn3 = Button(frm, text='3', font=('', 20), width=5, height=2, command=lambda: click(3))
btnMinus = Button(frm, text='-', font=('', 20), width=5, height=2, bg='#aaffaa', command=lambda: click('-'))
btnAC = Button(frm, text='AC', font=('', 20), width=5, height=2, bg='#ffaaaa', command=clear)
btn0 = Button(frm, text='0', font=('', 20), width=5, height=2, command=lambda: click(0))
btnEQ = Button(frm, text='=', font=('', 20), width=5, height=2, bg='#aaffaa', command=equal)
btnPlus = Button(frm, text='+', font=('', 20), width=5, height=2, bg='#aaffaa', command=lambda: click('+'))
pack برای قرار دادن Frame در پنجره اصلی به کار رفته است.
frm.pack()
grid برای قرار دادن هر دکمه و صفحه نمایش در یک سلول مشخص از یک جدول فرضی درون Frame استفاده میشود. با تنظیمات row و column محل قرارگیری هر عنصر و با padx و pady میزان فاصله اطراف آنها مشخص میشود.
ent.grid(row= 0, column=0, columnspan=4, padx=10, pady=10)
btn7.grid(row=1, column=0, pady=10)
btn8.grid(row=1, column=1)
btn9.grid(row=1, column=2)
btnMulti.grid(row=1, column=3)
btn4.grid(row=2, column=0, pady=10)
btn5.grid(row=2, column=1)
btn6.grid(row=2, column=2)
btnDiv.grid(row=2, column=3)
btn1.grid(row=3, column=0, pady=10)
btn2.grid(row=3, column=1)
btn3.grid(row=3, column=2)
btnMinus.grid(row=3, column=3)
btnAC.grid(row=4, column=0, pady=10)
btn0.grid(row=4, column=1)
btnEQ.grid(row=4, column=2)
btnPlus.grid(row=4, column=3)
مطلب مرتبط: ساخت ماشین حساب با اپ اینونتور
در ادامه ی آموزش ساخت برنامه ماشین حساب با پایتون با فراخوانی root.mainloop() برنامه اجرا شده و منتظر رویدادهای کاربر (کلیک روی دکمهها) میماند. با اجرای این کد یک ماشین حساب گرافیکی ساده خواهید داشت که میتوانید با کلیک روی اعداد و دکمههای عملیات، محاسبات مورد نظر خود را انجام دهید.
from tkinter import *
def click(x):
global final
final = str(final) + str(x)
input_text.set(final)
def equal():
global final
final = eval(final)
input_text.set(final)
def clear():
global final
final = ''
input_text.set('')
root = Tk()
root.title("Calculator")
frm = Frame(root, bg='#212529')
input_text = StringVar()
final = ''
ent = Entry(frm, width=30, justify='center', font=('', 20), textvariable=input_text)
btn7 = Button(frm, text='7', font=('', 20), width=5, height=2, command=lambda: click(7))
btn8 = Button(frm, text='8', font=('', 20), width=5, height=2, command=lambda: click(8))
btn9 = Button(frm, text='9', font=('', 20), width=5, height=2, command=lambda: click(9))
btnMulti = Button(frm, text='*', font=('', 20), width=5, height=2, bg='#aaffaa', command=lambda: click('*'))
btn4 = Button(frm, text='4', font=('', 20), width=5, height=2, command=lambda: click(4))
btn5 = Button(frm, text='5', font=('', 20), width=5, height=2, command=lambda: click(5))
btn6 = Button(frm, text='6', font=('', 20), width=5, height=2, command=lambda: click(6))
btnDiv = Button(frm, text='/', font=('', 20), width=5, height=2, bg='#aaffaa', command=lambda: click('/'))
btn1 = Button(frm, text='1', font=('', 20), width=5, height=2, command=lambda: click(1))
btn2 = Button(frm, text='2', font=('', 20), width=5, height=2, command=lambda: click(2))
btn3 = Button(frm, text='3', font=('', 20), width=5, height=2, command=lambda: click(3))
btnMinus = Button(frm, text='-', font=('', 20), width=5, height=2, bg='#aaffaa', command=lambda: click('-'))
btnAC = Button(frm, text='AC', font=('', 20), width=5, height=2, bg='#ffaaaa', command=clear)
btn0 = Button(frm, text='0', font=('', 20), width=5, height=2, command=lambda: click(0))
btnEQ = Button(frm, text='=', font=('', 20), width=5, height=2, bg='#aaffaa', command=equal)
btnPlus = Button(frm, text='+', font=('', 20), width=5, height=2, bg='#aaffaa', command=lambda: click('+'))
frm.pack()
ent.grid(row= 0, column=0, columnspan=4, padx=10, pady=10)
btn7.grid(row=1, column=0, pady=10)
btn8.grid(row=1, column=1)
btn9.grid(row=1, column=2)
btnMulti.grid(row=1, column=3)
btn4.grid(row=2, column=0, pady=10)
btn5.grid(row=2, column=1)
btn6.grid(row=2, column=2)
btnDiv.grid(row=2, column=3)
btn1.grid(row=3, column=0, pady=10)
btn2.grid(row=3, column=1)
btn3.grid(row=3, column=2)
btnMinus.grid(row=3, column=3)
btnAC.grid(row=4, column=0, pady=10)
btn0.grid(row=4, column=1)
btnEQ.grid(row=4, column=2)
btnPlus.grid(row=4, column=3)
root.mainloop()
نتیجهگیری
در این مقاله، نحوه ساخت یک ماشین حساب گرافیکی ساده با استفاده از کتابخانه tkinter در پایتون را آموزش دادیم. با استفاده از tkinter میتوانید رابطهای کاربری گرافیکی ساده و پیچیده را به راحتی طراحی و پیادهسازی کنید.
این پروژه یک نقطه شروع عالی برای یادگیری برنامهنویسی GUI با پایتون است. با تکمیل این پروژه، شما با مفاهیم پایه GUI مانند ویجتها، چیدمان و رویدادها آشنا خواهید شد.
شما میتوانید با اضافه کردن توابع جدید، رابط کاربری و ویژگی های ماشین حساب خود را ارتقا دهید. برای مثال، میتوانید امکان انجام محاسبات پیچیدهتر، ذخیره و بازیابی نتایج، و یا استفاده از توابع ریاضی پیشرفته را به ماشین حساب خود اضافه کنید.
موسسه پل استار یک موسسه شتابدهی استعداد در حوزه برنامهنویسی کودکان و نوجوانان است. این موسسه با برگزاری دورههای آموزش برنامه نویسی کودکان، رباتیک و هوش مصنوعی مخصوص کودکان و نوجوانان باعث کشف و رشد خلاقیت کودکان و نوجوانان میشود. از این رو پیشنهاد میشود پس از مطالعه این مقاله با مشاورین این موسسه تماس حاصل فرمایید تا اطلاعات تکمیلی را دریافت نمایید.