در شکل زیر برنامهٔ یک ماشین حساب ساده نوشته شده است. در گروه خود عملکرد هر یک از خطوط برنامه را بررسی کنید. نتیجه را به کلاس ارائه دهید.

عملکرد هر بخش از کد بهصورت گروهبندی و خطبهخط در زیر توضیح داده شده است:
بخش ۱: وارد کردن کتابخانه
from tkinter import *
این خط کتابخانهی Tkinter را وارد میکند تا بتوانیم رابط گرافیکی (GUI) بسازیم.
بخش ۲: تعریف متغیر و توابع اصلی
expression = ""
متغیر سراسری برای ذخیرهی عبارت ریاضی که کاربر وارد میکند.
تابع press
def press(num):
global expression
expression = expression + str(num)
equation.set(expression)
هر بار که کاربر دکمهای را فشار میدهد (مثلاً عدد یا عملگر)،این تابع عدد را به رشتهی expression اضافه میکند و متن نمایشگر را بهروز میکند.
تابع equalpress
def equalpress():
try:
global expression
total = str(eval(expression))
equation.set(total)
expression = ""
except:
equation.set(" error ")
expression = ""
زمانی که کاربر دکمهی “=” را میزند، عبارت با دستور eval() محاسبه میشود.
اگر اشتباهی باشد (مثلاً تقسیم بر صفر)، خطا نمایش داده میشود.
تابع clear
def clear():
global expression
expression = ""
equation.set("")
این تابع نمایشگر ماشینحساب را پاک میکند (دکمهی “Clear”).
بخش ۳: تنظیمات رابط کاربری (GUI)
gui = Tk()
gui.configure(background="light green")
gui.title("Simple Calculator")
gui.geometry("270x150")
ایجاد پنجره اصلی برنامه با رنگ زمینه، عنوان و اندازهٔ مشخص.
تنظیم بخش نمایش معادله
equation = StringVar()
expression_field = Entry(gui, textvariable=equation)
expression_field.grid(columnspan=4, ipadx=70)
ایجاد فیلد متنی برای نمایش عبارت ریاضی جاری.
از StringVar() برای اتصال داده بین برنامه و فیلد استفاده شده.
بخش ۴: دکمههای ماشینحساب
نمونه تعریف دکمهها:
button1 = Button(gui, text='1', fg='black', bg='orange',
command=lambda: press(1), height=1, width=7)
button1.grid(row=2, column=0)
هر دکمه با کلاس Button ساخته شده.
fg رنگ متن،bg رنگ پسزمینه، command تابعی است که هنگام فشردن اجرا میشود.
سپس با grid() در محل مناسب در جدول پنجره قرار میگیرد.
تمام دکمههای ۰ تا ۹، عملگرهای + , - , * , / , دکمهٔ = و Clear به همین روش ساخته شدهاند.
بخش ۵: اجرای برنامه
gui.mainloop()
این خط چرخهی اصلی برنامه را اجرا میکند تا رابط کاربری فعال بماند و به کلیکها پاسخ دهد.
جمعبندی برای ارائه در کلاس
|
بخش |
شرح عملکرد |
|
import tkinter |
اضافه کردن ابزارهای ساخت رابط گرافیکی |
|
expression |
نگهداری عبارت ورودی |
|
press(num) |
افزودن عدد یا عملگر به عبارت |
|
equalpress() |
محاسبه و نمایش نتیجه |
|
clear() |
پاک کردن صفحه |
|
|
ساخت و نمایش رابط گرافیکی با دکمهها و نمایشگر |
|
eval() |
اجرای و محاسبهٔ عبارت ریاضی واردشده |