Sufficiency Economy
Group Blog
 
All blogs
 
Python ทดลองเขียนโปรแกรมเครื่องคิดเลข บวก ลบ ตอนที่2

ครั้งที่แล้วเป็นการเขียนโปรแกรมให้แสดงตัวเลขที่กด
ต่อไปเรามาเขียนโปรแกรมในส่วน การกดเครื่องหมาย บวก ลบ และ เท่ากับ
เพื่อง่ายต่อการเขียนโปรแกรม เราจะบวก ลบเลข เพียง สองจำนวนเท่านั้นนะครับ
ดังนั้นจะม่ีข้อมูลตัวเลข ชุดที่1 แล้ว เครื่องหมายบวก หรือลบ และตามด้วยตัวเลขชุดที่2 เช่น
50+60 ข้อมูลจะถูกเก็บใน list1 = ['50', '+', '60']

การอ้างข้อมูลใน list ก็ใส่ index ให้มัน เช่น
list1[0] = '50'
list1[1] = '+'
list1[2] = '60'

การเพิ่มข้อมูลเข้าไปใน list จะใช้ method append เช่น
list1.append('7') จะใส่ข้อมูล '7' เข้าไปต่อท้าย list1 ผลลัพธ์ ก็จะเป็น
['50', '+', '60', '7']

การกำหนดการเริ่มต้นของ list ก็ใช้ list1 = []

อีกสิ่งที่ต้องควรรู้คือ ตัวแปรแบบ global เพราะมีการใช้ตัวแปร tmpStr และ list1 ภายใน function (def) จึงต้องประกาศตัวแปรแบบ global ดังนี้
global list1
global tmpStr

ต่อไปเรามาดูรายละเอียดของ ฟังก์ชั่นกัน
def callbackPM(str): เมื่อกดเครื่องหมาย บวก หรือลบ จะเรียกฟังก์ชั่นนี้
global list1 ประกาศตัวแปรแบบ global
global tmpStr

disp['text'] = disp['text']+str
print tmpStr
print str
list1.append(tmpStr) เก็บตัวเลขชุดที่ 1ใส่ใน list1
list1.append(str) เก็บเครื่องหมาย บวก หรือ ลบ ในlist1
print list1
tmpStr ="" clear tmpStr เพื่อเก็บค่าตัวเลข ชุดใหม่


def cal(): เมื่อกดเครื่องหมายเท่ากับ จะเรียกฟังก์ชั่นนี้
global list1 ประกาศตัวแปรแบบ global
global tmpStr
list1.append(tmpStr) เก็บตัวเลขชุดที่ 2ใส่ใน list1
result = 0
if list1[1] == '+': ตรวจสอบถ้าเป็นเครื่องหมายบวก ก็บวกกัน
result = int(list1[0])+int(list1[2])
elif list1[1] == '-': ตรวจสอบถ้าเป็นเครื่องหมายลบ ก็ลบกัน
result = int(list1[0])-int(list1[2])

disp['text'] = str(result) แสดงผลลัพธ์
list1 = []
tmpStr = str(result)

print list1
print tmpStr

code เต็มๆ download ตรงนี้ครับ


Create Date : 15 เมษายน 2554
Last Update : 15 เมษายน 2554 22:03:36 น. 0 comments
Counter : 3356 Pageviews.

ชื่อ :
Comment :
  *ใช้ code html ตกแต่งข้อความได้เฉพาะสมาชิก
 

wink99_th
Location :
พิษณุโลก Thailand

[Profile ทั้งหมด]

ฝากข้อความหลังไมค์
Rss Feed
Smember
ผู้ติดตามบล็อก : 8 คน [?]




New Comments
Friends' blogs
[Add wink99_th's blog to your web]
Links
 

 Pantip.com | PantipMarket.com | Pantown.com | © 2004 BlogGang.com allrights reserved.