نوشته‌ها

ماشین حساب ساده با پایتون

کاربرد elif

 

import math
from tkinter import *
from tkinter import messagebox
sufra= Tk()
sufra.configure(background='#FF339F')
sufra.title("ماشين حساب")

def show():
 try: 
 a =asq .get() 
 b = bsq.get()
 o = op.get()
 if o == '+':
 csq = a + b
 messagebox.showinfo("جواب ", csq)
 elif o == '-':
 csq = a - b
 messagebox.showinfo("جواب ", csq)
 elif o == '*':
 csq = a * b
 messagebox.showinfo("جواب", csq)
 elif o == '/':
 csq = a / b
 messagebox.showinfo("جواب", csq) 
 else:
 print('بيشتر')
 except ValueError:
 tkMessageBox.showinfo("خطا!") 
asq=IntVar()
bsq=IntVar()
op=StringVar ()
k= Label(sufra, text="ماشين حساب ساده",background='#FF339F').grid(row=0, column=1)
E1 = Entry(sufra, bd =5,textvariable = asq).grid(row=1, column=0)
L1 = Label(sufra, text="عدد اول ",background='#FF339F').grid(row=1, column=1)
E3 = Entry(sufra, bd =5,textvariable = op).grid(row=2, column=0)
L2 = Label(sufra, text="(*/-+) ",background='#FF339F').grid(row=2, column=1)
E2 = Entry(sufra, bd =5,textvariable = bsq).grid(row=3, column=0)
L3 = Label(sufra, text="عدد دوم ",background='#FF339F').grid(row=3, column=1)

B1 = Button(sufra, text="لطفا حاصل را نمايش بده",background='#FFDA33' ,command = show).grid(row=4, column=0)
sufra.mainloop()

44

ماشین حساب ساده با tkinter-python

ماشین حساب ساده با tkinter-python

from tkinter import *
import math

def calculate():
    try:
        num1 = float(enter1.get())
        num2 = float(enter2.get())
        result = num1 * num2
        label3.config(text=str(result))
    except ValueError:
        label3.config(text='Enter numeric values!')
def calculate2():
    try:
        num1 = float(enter1.get())
        num2 = float(enter2.get())
        result = num1 / num2
        label3.config(text=str(result))
    except ValueError:
        label3.config(text='Enter numeric values!')
def calculate3():
    try:
        num1 = float(enter1.get())
        num2 = float(enter2.get())
        result = num1 + num2
        label3.config(text=str(result))
    except ValueError:
        label3.config(text='Enter numeric values!')
def calculate4():
    try:
        num1 = float(enter1.get())
        num2 = float(enter2.get())
        result = num1 - num2
        label3.config(text=str(result))
    except ValueError:
        label3.config(text='Enter numeric values!',fg="white")
def calculate5():
    try:
        num1 = float(enter1.get())
        result = num1**2
        label3.config(text=str(result))
    except ValueError:
        label3.config(text='Enter numeric values!',fg="white")
def calculate6():
    try:
        num1 = float(enter1.get())
        result = math.sqrt(num1)
        label3.config(text=str(result))
    except ValueError:
        label3.config(text='Enter numeric values!',fg="white")
root = Tk()
root.configure(background='black')
label1 = Label(root, text='عدد اول',bg="black", fg="white")
label1.grid(row=0, column=0,columnspan=2)
enter1 = Entry(root, bg='white')
enter1.grid(row=1, column=0,columnspan=2)
label2 = Label(root, text='عدد دوم',bg="black", fg="white")
label2.grid(row=2, column=0,columnspan=2)
enter2 = Entry(root, bg='white')
enter2.grid(row=3, column=0, columnspan=2)
btn1 = Button(root, text='ضرب', command=calculate,bg="black",activebackground="green", fg="white")
btn1.grid(row=4, column=0)
btn2 = Button(root, text='تقسيم', command=calculate2,bg="black",activebackground="orange", fg="white")
btn2.grid(row=5, column=0)
btn3 = Button(root, text='جمع', command=calculate3,bg="black",activebackground="purple", fg="white")
btn3.grid(row=5, column=1)
btn4 = Button(root, text='تفريق', command=calculate4,bg="black",activebackground="red", fg="white")
btn4.grid(row=4, column=1)
btn5 = Button(root, text='توان ۲ عدد اول', command=calculate5,bg="black",activebackground="cyan", fg="white")
btn5.grid(row=6, column=0, columnspan=2)
btn6 = Button(root, text='ريشه عدد اول', command=calculate6,bg="black",activebackground="yellow", fg="white")
btn6.grid(row=7, column=0, columnspan=2,)
label3 = Label(root, bg="black", fg="red")
label3.grid(row=8, column=0, columnspan=2)
enter1.focus()
enter1.bind('', func=lambda e:enter2.focus_set())
root.mainloop()

re

آموزش پایتون-توابع

تابع یکی از مهمترین مفهومات در ریاضیات است. تابع ساده زیر را در نظر بگیرید:

y=x+1

function(x)=x+1

https://www.mathsisfun.com/sets/function.html

https://www.mathsisfun.com/sets/function.html

x به عنوان ورودی (پارامتر)  و y به عنوان خروجی در نظر گرفته میشود.

تابع در برنامه نویسی هم بر گرفته ازهمین مفهوم است. در واقع ما وقتی یک برنامه چند خطی ساده مینویسیم متوجه اهمیت تابع نمیشویم ولی وقتی تعداد خطوط زیاد شد،  همچنین تکرار برخی خطوط بالا رفت، این کدهای تکراری را با عنوان یک تابع با نام خاص میسازیم. و هر کجای برنامه و به هر تعداد که خواستیم استفاده میکنیم، همچنین به برنامه نویسان اجازه اشتراک گذاشتن کد ها را می دهد. سپس متوجه اهمیت آن میشویم. 

توابع تحت نام های مختلف در زبان های برنامه نویسی شناخته می شوند، برای مثال : زیرمجموعه ها(subroutines)، روال ها(routines)، روش ها(procedures)، روش ها(methods) یا زیر برنامه ها(subprograms).

تابع در پایتون با با کلمه کلیدی def تعریف و بعد فراخوانی میشود. تابع از سه بخش تشکیل میشود:

نام، پارامتر، بدنه:

 

 

>>> def add(x,y):
	return x+y
>>> add(2,3)
۵
>>>

تابعی برای جمع دو عدد تعریف میکنیم:

در خط اول توسط def نامی برای تابع انتخاب و تعریف شده است. سپس دو پارامتر به عنوان ورود ی تعریف میکنیم . : را میگذاریم و اینتر را میزنیم. سپس تابع را توسط نام آن  و انتخاب دو آرگومان فراخوانی میکنیم. اینتر را زده و نتیجه را مشاهده میکنیم.

کاربرد تابع در tkinter

وقتی کد زیر اجرا میشود پنجره ای حاوی باتن را مشاهده میکنیم که قراره با کلیک روی آن رویدای که نمایش پیام است را ببینیم و این رویداد توسط فراخوانی تابع انجام میگیرد.

 

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()

45

جمع دو عدد با ماژول tkinter

 

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()

jam

Tkinter چیست؟

معرفی (tkinter(Tk interface

 

سلام

ما آموزش پایتون را تا if پیش بردیم. مسئله ای که هست من خودم علاقمندم هر دستوری را با یک مثال شهودی پیش ببرم ولی خوب برای این کار باید تقریبا مقدمات پایتون را بلد باشید. با این حال من تصمیم گرفتم از  tkinter  که کتابخانه  واسط کاربر گرافیکی در پایتون هست استفاده کنم تا ضمن یادگیری دستورات پایه با نوشتن برنامه های تحت ویندوز هم آشنا بشیم.

یک فایل جدید باز میکنیم  و کد زیر را نوشته و اجرا میگیریم:

import tkinter
tkinter._test()

همانطور که در تصویر زیر مشاهده میکنید پنجره دارای چند برچسب و  دکمه است که یک سری اطلاعات مانند ورژن ماژول و.. میدهند  و کار خاصی انجام نمیدهند.

2

پنجره اصلی(Tk())

برای ساخت برنامه ای مطابق با نیازمندیهای خودمون  در ابتدابا کد زیر یک پنجره درست میکنیم :

from tkinter import*
root=Tk()

یا

import tkinter
root=tkinter.Tk()

 

در هر دو مورد ما یک خروجی خواهیم داشت با این تفاوت که با from tkinter import* ، ما اجازه داریم از محتویات ماژول بدون نوشتن نام،  استفاده کنیم.

در جلسات قبلی برای تعریف متغیر یک اسم به آن نسبت و مقداری را در ان قرار میدادیم x=1. در اینجا من متغیری به نام x از جنس اینتیجر دارم.

اینجا ()root=Tk  متغیری از جنس کلاس پنجره داریم. در واقع ما قسمتی از حافظه را با این کار اشغال میکنیم. نام تمام متغیرهای استفاده شده اختیاری است.

 

1

 

Widgets

Widget یا چیز،  اشیا گرافیکی هستند که میتوانند به پنجره برنامه اضافه شوند. برخی از Widgets  مهم  را بعد از معرفی در برنامه خود به کار میبریم:

Labels

از برچسب ها برای نمایش متن و عکس استفاده میکنیم:

w = Label(root, text=“Hello, sufra!”)
w.pack()

همانطور که در کد بالا مشاهده کردید برای نمایش یک متن ما باید  یک کلاس جدیدی از جنس لیبل ایجاد و در متغیر w قرار دادیم . این کلاس دارای دو آرگومان هست که اولی پنجره ای است که قراره روی آن نمایش داده شود. دومی متغیری از جنس رشته که قرار است متنی را نمایش دهد. البته آرگومانهای دیگری مثل رنگ متن و پس زمینه و… هم میگیرد.

برچسب ها مانند html  فقط به درد نمایش اطلاعات میخورند و کاربر نمیتواند با برنامه تعاملی داشته باشد. 

تا اینجا ما برچسب خودمون را ساختیم برای نمایش اون روی پنجره از متد pack استفاده میکنیم. از اونجایی که ماژول tkinter، کراس پلتفرم است، پنجره اندازه برچسب میشود. 

 

Ca 8 با geometry اندازه پنجره را به دلخواه تغییر میدهیم.