پروژه ساخت ماشین حساب با پایتون

برنامه ماشین حساب در پایتون، پروژه ماشین حساب پایتون، یکی از پروژه های ساده پایتون می باشد که برای شروع برنامه نویسی پروژه محور می توانید برای شما مفید باشد. ماشین حساب یکی از برنامه های کاربردی است که همه ما در زندگی روزمره خود از آن استفاده می کنیم. اگر می خواهید با برنامه نویسی در پایتون به صورت پروژه محور کار کنید، پروژه ساخت ماشین حساب با پایتون، پروژه ای است که در عین سادگی، بسیار کاربردی و مفید است. امروز، ما قصد داریم یک ماشین حساب پایتون با استفاده از Tkinter با مراحل آسان بسازیم.
Tkinter چیست؟
پایتون ابزارهای مختلفی را برای طراحی رابط کاربری گرافیکی wiz GUI ارائه می دهد و یکی از این ابزارها Tkinter است که بیشتر مورد استفاده قرار می گیرد. این برنامه در واقع یکی از سریع ترین و ساده ترین راه ها برای ساخت برنامه رابط کاربری گرافیکی است که ما در اینجا برای ساخت کد ماشین حساب گرافیکی در پایتون از آن استفاده خواهیم کرد. علاوه بر این، Tkinter چند پلتفرم است، از این رو همان کد ماشین حساب در پایتون، روی macOS، ویندوز و لینوکس نیز کار می کند.
قبل از اینکه آموزش ساخت ماشین حساب با پایتون را شروع کنیم، در صورتی که هنوز دوره آموزش برنامه نویسی پایتون را مشاهده نکرده اید، پیشنهاد می کنید این دوره را از سایت امیر رسولی دریافت کنید و مشاهده آن را در اولویت بگذارید.
برنامه نویسی پروژه ماشین حساب پایتون
ماشین حساب پایتون که می خواهیم بسازیم چیزی شبیه به تصویر زیر خواهد بود:
مرحله 1: وارد کردن ماژول های لازم
برای استفاده از Tkinter باید ماژول Tkinter را وارد کنیم. ما همچنین قصد داریم تابع فاکتوریل را از ماژول ریاضی وارد کنیم.
from tkinter import *
import parser
from math import factorial
مرحله 2: ایجاد یک پنجره برای ماشین حساب
اکنون میخواهیم پنجرهای را برای ماشین حساب خود پیشنویس کنیم که دکمهها را در خود جای میدهد.
root = Tk()
root.title(‘DataFlair – Calculator’)
root.mainloop()
کد بالا عنوان پنجره ماشین حساب پایتون را به عنوان “DataFlair – Calculator” تنظیم می کند. وقتی کد بالا را اجرا می کنید، پنجره ای مانند این خواهید داشت.
مرحله 3: طراحی دکمه ها
حالا بیایید به سرعت دکمه های ماشین حساب خود را طراحی کنیم و آنها را در پنجره برنامه خود قرار دهیم.
#adding the input field
display = Entry(root)
display.grid(row=1,columnspan=6,sticky=N+E+W+S)
#Code to add buttons to the Calculator
Button(root,text=”1″,command = lambda :get_variables(1)).grid(row=2,column=0, sticky=N+S+E+W)
Button(root,text=” 2″,command = lambda :get_variables(2)).grid(row=2,column=1, sticky=N+S+E+W)
Button(root,text=” 3″,command = lambda :get_variables(3)).grid(row=2,column=2, sticky=N+S+E+W)
Button(root,text=”4″,command = lambda :get_variables(4)).grid(row=3,column=0, sticky=N+S+E+W)
Button(root,text=” 5″,command = lambda :get_variables(5)).grid(row=3,column=1, sticky=N+S+E+W)
Button(root,text=” 6″,command = lambda :get_variables(6)).grid(row=3,column=2, sticky=N+S+E+W)
Button(root,text=”7″,command = lambda :get_variables(7)).grid(row=4,column=0, sticky=N+S+E+W)
Button(root,text=” 8″,command = lambda :get_variables(8)).grid(row=4,column=1, sticky=N+S+E+W)
Button(root,text=” 9″,command = lambda :get_variables(9)).grid(row=4,column=2, sticky=N+S+E+W)
#adding other buttons to the calculator
Button(root,text=”AC”,command=lambda :clear_all()).grid(row=5,column=0, sticky=N+S+E+W)
Button(root,text=” 0″,command = lambda :get_variables(0)).grid(row=5,column=1, sticky=N+S+E+W)
Button(root,text=” .”,command=lambda :get_variables(“.”)).grid(row=5, column=2, sticky=N+S+E+W)
Button(root,text=”+”,command= lambda :get_operation(“+”)).grid(row=2,column=3, sticky=N+S+E+W)
Button(root,text=”-“,command= lambda :get_operation(“-“)).grid(row=3,column=3, sticky=N+S+E+W)
Button(root,text=”*”,command= lambda :get_operation(“*”)).grid(row=4,column=3, sticky=N+S+E+W)
Button(root,text=”/”,command= lambda :get_operation(“/”)).grid(row=5,column=3, sticky=N+S+E+W)
# adding new operations
Button(root,text=”pi”,command= lambda :get_operation(“*3.14”)).grid(row=2,column=4, sticky=N+S+E+W)
Button(root,text=”%”,command= lambda :get_operation(“%”)).grid(row=3,column=4, sticky=N+S+E+W)
Button(root,text=”(“,command= lambda :get_operation(“(“)).grid(row=4,column=4, sticky=N+S+E+W)
Button(root,text=”exp”,command= lambda :get_operation(“**”)).grid(row=5,column=4, sticky=N+S+E+W)
Button(root,text=”<-“,command= lambda :undo()).grid(row=2,column=5, sticky=N+S+E+W)
Button(root,text=”x!”, command= lambda: fact()).grid(row=3,column=5, sticky=N+S+E+W)
Button(root,text=”)”,command= lambda :get_operation(“)”)).grid(row=4,column=5, sticky=N+S+E+W)
Button(root,text=”^2″,command= lambda :get_operation(“**2”)).grid(row=5,column=5, sticky=N+S+E+W)
Button(root,text=”^2″,command= lambda :get_operation(“**2”)).grid(row=5,column=5, sticky=N+S+E+W)
Button(root,text=”=”,command= lambda :calculate()).grid(columnspan=6, sticky=N+S+E+W)
توضیح:
در این کد پایتون ماشین حساب، تابع “Entry” به ایجاد یک فیلد ورودی متن کمک می کند و ما از روش .grid() برای تعیین موقعیت مرتبط با دکمه یا فیلد ورودی استفاده می کنیم. ما از روش باتن، برای نمایش یک دکمه در پنجره برنامه خود استفاده می کنیم.
- root – نامی که با آن به پنجره خود اشاره می کنیم
- text- متنی که روی دکمه نمایش داده می شود
- Row – شاخص ردیف شبکه
- Column – شاخص ستون شبکه
- columnspan – تعداد ستون ها را در بر می گیرد یا ترکیب می کند
- Sticky – اگر سلول حاصل بزرگتر از ویجت باشد، چسبنده نحوه گسترش ویجت را مشخص می کند. ترکیب ثابت های مورد استفاده S، N، E و W، یا NW، NE، SW و SE مشابه جهت های قطب نما هستند. N+E+W+S به این معنی است که ویجت باید در همه جهات گسترش یابد
وقتی کد بالا را اجرا می کنید، خروجی ماشین حساب در پایتون را به این صورت زیر، دریافت خواهید کرد.
توجه داشته باشید:
اگر متوجه خطایی مانند عدم یافتن تابع get_variable() شده اید، نگران نباشید. ما فقط یک تابع عمل مرتبط با هر دکمه را تعریف می کنیم. از آنجایی که ما به تازگی آنها را صدا زده ایم و هنوز آنها را اعلام نکردهایم، از این رو خطا وجود دارد. حال، اجازه می دهد تا آن توابع را تعریف کنیم.
برای اتصال دکمه رقمی به تابع get_variable() از پارامتر “command” استفاده می کنیم. در اینجا با فشردن دکمه 1 به عنوان آرگومان به تابع get_variable() ارسال می کنیم.
مرحله 4: ساخت دکمه های ماشین حساب پایتون
نقشه برداری ارقام
# i keeps the track of current position on the input text field
i = 0
# Receives the digit as parameter and display it on the input field
def get_variables(num):
global i
display.insert(i,num)
i+=1
تابع get_variable() رقم را به عنوان پارامتر دریافت می کند. این رقم با متد .insert() با پارامترهای ‘i’ و ‘num’ به فیلد ورودی وارد می شود. متغیر سراسری i هر بار افزایش می یابد تا با موقعیت درج رقم بعدی یا عملگر بعدی به روز شود.
- i – موقعیت درج رقم
- num – رقم
- نقشه برداری از دکمه های اپراتور
def get_operation(operator):
global i
length = len(operator)
display.insert(i,operator)
i+=length
توضیح:
تابع get_operation() عملگر را به عنوان پارامتر دریافت می کند که سپس در قسمت متنی در موقعیت ith ماشین حساب پایتون درج می شود.
نگاشت دکمه AC
def clear_all():
display.delete(0,END)
توضیح:
ما از متد .delete() برای حذف کاراکترهای فیلد متنی استفاده می کنیم. موقعیت شروع و پایان را به عنوان پارامتر می پذیرد.
- 0 – موقعیت شروع
- END – موقعیت انتهایی
- نقشه برداری از دکمه لغو
def undo():
entire_string = display.get()
if len(entire_string):
new_string = entire_string[:-1]
clear_all()
display.insert(0,new_string)
else:
clear_all()
display.insert(0,”Error”)
توضیح:
ما از متد .get() برای واکشی رشته موجود در فیلد ورودی استفاده می کنیم. اگر واقعاً رشتهای وجود دارد، آخرین کاراکتر را برش میزنیم، فیلد ورودی را پاک میکنیم و رشته جدید را به فیلد ورودی که حاوی آخرین کاراکتر نیست برمیگردانیم.
نگاشت دکمه “=”.
def calculate():
entire_string = display.get()
try:
a = parser.expr(entire_string).compile()
result = eval(a)
clear_all()
display.insert(0,result)
except Exception:
clear_all()
display.insert(0,”Error”)
توضیح:
رشته موجود در فیلد ورودی را با استفاده از متد .get() واکشی می کنیم. ما اکنون از ماژول تجزیه برای اسکن رشته با کمک متد ()expr استفاده می کنیم که رشته را به عنوان پارامتر می پذیرد. ما اساسا آن را به تجزیه کننده واگذار می کنیم تا یک درخت نحو انتزاعی از رشته بسازد که با استفاده از تابع ()eval ارزیابی می شود.
پس از به دست آوردن نتیجه، آن را پس از پاک کردن به قسمت ورودی فشار می دهیم.
ساخت کلید فاکتوریل
def fact():
entire_string = display.get()
try:
result = factorial(int(entire_string))
clear_all()
display.insert(0,result)
except Exception:
clear_all()
display.insert(0,”Error”)
رشته را از فیلد ورودی واکشی می کنیم. رشته را به نوع int تبدیل می کنیم و آن را به تابع فاکتوریل که در ابتدا وارد کرده بودیم ارسال می کنیم. پس از آن فیلد ورودی را پاک می کنیم و نتیجه را به قسمت ورودی فشار می دهیم. با پاک کردن فیلد ورودی و سپس فشار دادن یک پیام خطا در فیلد ورودی، با هر استثنا برخورد می کنیم.
صفحه های نهایی ماشین حساب پایتون
هنگامی که این برنامه ماشین حساب را در پایتون اجرا می کنید، صفحه های زیر را خواهید دید:
جمع بندی
ما با موفقیت یک ماشین حساب پایتون را با tkinter طراحی کرده ایم. این بدان معنی است که شما درک بهتری از روش استفاده از tkinter برای ساخت برنامه های رابط کاربری گرافیکی دارید. جدا از این، اکنون می توانید با ایجاد یک برگه تاریخچه که محاسبات قبلی را ردیابی می کند یا اضافه کردن یک تصویر پس زمینه به ماشین حساب، یک قدم به جلو برای توسعه پروژه بردارید.
جدای از این، پیشنهاد میکنیم پروژههای مشابه دیگری مانند فهرست کارها، برنامه آزمون، بازی تیک تاک را امتحان کنید تا به نحوهای مختلف پیشنهادات tkinter دست پیدا کنید. آموزش ساخت ماشین حساب با پایتون برای افرادی که به تازگی برنامه نویسی را شروع کرده اند بسیار مناسب است. در نظر داشته باشید که کد ساخت ماشین حساب در پایتون که در اینجا مورد بررسی قرار گرفته، به صورت گرافیکی می باشد و در نهایت یک رابط قابل استفاده را در اختیار شما قرار می دهد.
- ساخت ماشین حساب با پایتون
- آموزش ساخت ماشین حساب با پایتون
- کد پایتون ماشین حساب
- کد ماشین حساب در پایتون
- کد ماشین حساب گرافیکی در پایتون
- ماشین حساب در پایتون
- کد ساخت ماشین حساب در پایتون
- کد ماشین حساب ساده در پایتون
درباره مدیریت
من عاشق برنامه نویسی و تکنولوژی هستم و 10 سال در این زمینه مشغول به فعالیت هستم و پروژه های مختلفی رو در زمینه های سایت و شبکه های کامپیوتری و امنیت اطلاعات انجام دادم و در حال حاضر مدیر و موسس شرکت انفورماتیک طراحی پایا آنوش هستم که در زمینه ی طراحی سایت و سیستم های هوشمند و برقراری امنیت اطلاعات سیستم های کامپیوتری و همچنین آموزش فعالیت دارد و میخواهم هر آنچه که در طی این 10 سال یاد گرفتم و تجربه کردم رو با شما به اشتراک بگذارم.
نوشته های بیشتر از مدیریتمطالب زیر را حتما مطالعه کنید
طراح وب کیست؟
ایندکس چیست؟
کانفیگ چیست؟
یو ایکس رایتینگ چیست؟
فونت چیست؟
اینماد چیست؟
2 دیدگاه
به گفتگوی ما بپیوندید و دیدگاه خود را با ما در میان بگذارید.
بسیار عالی بود، تقریبا همه کد ماشین حساب ساده در پایتون که توی اینترنت هست، صرفا کد هستن و کسی رابط گرافیکی رو کد نویسی نکرده. بسیار مفید بود.
با سلام، خوشحالیم که مطلب “ساخت ماشین حساب با پایتون” برای شما مفید بود.