50 ตวั อยา่ งท่ี 2.7
การเชอื่ มโยงข้อมลู จากไฟล์ 2 ไฟล์
การเชื่อมโยงข้อมูลแบบพื้นฐานตามตัวอย่างท่ี
2.7 นั้ น Pandasสามารถทาได้โดยอัตโนมัติหากว่า
ไ ฟ ล์ ข้ อ มู ล ทั้ ง ส อ ง ท่ี น า ม า เ ช่ื อ ม โ ย ง กั น ด้ ว ย ฟั ง ก์ ชั น
merge () มีช่ือคอลัมน์ ทต่ี รงกันจานวน 1 คอลัมน์ โดย
บรรทดั ทมี่ ีข้อมูลเลขประจาตวั ตรงกนั ในทงั้ สองไฟลจ์ ะ
ถูกนามาเชอื่ มโยงกนั
51 ตวั อยา่ งที่ 2.7
การเชอื่ มโยงข้อมูลจากไฟล์ 2 ไฟล์
แต่ถ้าหากว่าไฟล์ทั้งสองที่
ตอ้ งการเชอื่ มโยง มชี อ่ื คอลัมน์ ทจ่ี ะ
ใช้เป็นหลักไม่ตรงกันแล้ว เราต้อง
ระบุช่ือคอลัมน์ ของทั้งสองไฟล์
ดว้ ย
52 ตัวอย่างท่ี 2.8 การเชือ่ มโยงข้อมูล
กรณีท่ีชื่อคอลมั น์หลกั ไมต่ รงกัน
ก า ร เ ชื่ อ ม โ ย ง ข้ อ มู ล จ า ก 2 ไ ฟ ล์ ท่ี มี ชื่ อ
คอลัมน์ ใน DataFrame ไม่ตรงกันด้วยฟังก์ชัน
merge() สามารถระบุอาร์กิวเมนต์ left_on และ
right_on เพื่อระบุถึงชื่อคอลัมน์ จาก DataFrame
หลกั และ DataFrame ทนี่ ามาเชอ่ื มโยงไดด้ งั น้ี
53 ตัวอย่างท่ี 2.8 การเชอื่ มโยงข้อมูล
กรณีท่ีชอ่ื คอลมั น์หลักไมต่ รงกนั
54 ตัวอยา่ งท่ี 2.8 การเช่ือมโยงข้อมูล
กรณีท่ีชอื่ คอลัมน์หลักไมต่ รงกัน
ผลลัพธท์ ไ่ี ดค้ ือ
55 เกรด็ ความรู้
การอา่ นไฟลจ์ ากโปรแกรมเอก็ ซเ์ ซล (Excel )
หากไฟล์ studentData เป็นไฟล์โปรแกรมเอ็กซ์เซลท่ีมี
นามสกลุ .xlsx และข้อมลู ในแผน่ งานที่ชื่อ 'Student Data'
นั กเรยี นสามารถใช้คาสั่งในการอ่านไฟล์ดงั นี้
df=pd.read_excel(‘studentData.xlsx’,sheet_name=‘StudentData’)
โดยต้องเพ่ิมโมดูล xlrd ใน PyCharm EDU แล้ว
รนั คาสั่ง import xlrd กอ่ นดว้ ย
56 การทาข้อมูลให้เป็นภาพ
ก า ร ท า ข้ อ มู ล เ ป็ น ภ า พ ( data
visualization) เ ป็ น ขั้ น ต อ น ห น่ึ ง ข อ ง ก า ร
ประมวลผลข้อมูลขนาดใหญ่ เพื่อให้การนาเสนอ
ข้อมูลจานวนมากในรู ปแบบตารางที่เข้าใจได้
ยากสามารถเข้าใจไดง้ า่ ยข้ึน พรอ้ มกบั นาสรุปผล
ทไ่ี ดไ้ ปใช้ประโยชน์ ไดอ้ ยา่ งชัดเจน
57 การทาข้อมูลให้เป็นภาพ
ซ่ึ ง อ า จ น า เ ส น อ แ บ บ ง่ า ย ไ ด้ ด้ ว ย รู ป ห รื อ
แ ผ น ภู มิ ไ ป จ น ถึ ง ก า ร น า เ ส น อ แ บ บ ใ ช้ ส่ื อ ท่ี มี
ปฏิสั มพันธ์กับผู้ชมได้ (Interactive media) เช่น
คลิปวิดีโอ หรือเว็บไซต์แสดงข้อมูล ในท่ีนี้ นั กเรียน
จะได้รูจ้ ักกับการทาข้อมูลห้เป็นภาพจาก Pandas ให้
อ ยู่ ใ น รู ป แ บ บ แ ผ น ภู มิ อ ย่ า ง ง่ า ย โ ด ย ใ ช้ โ ม ดู ล
matplotlib ซ่งึ เป็นโมดลู ทางด้านการนาเสนอข้อมูล
ดว้ ยภาพทน่ี ิ ยมใช้กบั การโปรแกรมไพทอน
58 การทาข้อมูลให้เป็นภาพ
ก่ อ น ก า ร ใ ช้ ง า น
โมดูล matplotlib ผู้ใช้ต้อง
ติ ด ตั้ ง โ ม ดู ล ใ น PyCharm
ก่อน ให้ผฏิบัติตามขั้นตอน
ในหัวข้อที่ 2.1.1 โดยค้นหา
แ ล ะ ติ ด ตั้ ง โ ม ดู ล ด้ ว ย ชื่ อ
matplotlib
59 ตัวอย่างท่ี 2.9 การนาเสนอ
ผลคะแนนดว้ ยฮลิ โทแกรม
จากตัวอย่างที่ 2.8 ถ้าต้องการสร้างแผนภูมิ
ของคะแนนวิชาวิทยาการคานวณทเ่ี กบ็ อยใู่ นคอลัมน์
ScScore ทาไดด้ งั ตัวอยา่ งโปรแกรมต่อไปน้ี
60 ตวั อย่างท่ี 2.9 การนาเสนอ
ผลคะแนนด้วยฮลิ โทแกรม
ผลลัพธท์ ไี่ ดค้ ือ
61 ตวั อย่างท่ี 2.9 การนาเสนอ
ผลคะแนนดว้ ยฮิลโทแกรม
จากตวั อย่างท่ี 2.9 อธบิ ายได้ดงั น้ี
โปรแกรมตอ้ ง import โมดูล matplotlib ใน
บรรทัดท่ี 2 และบรรทัดท่ี 9 ถึง 15 เป็นการ
กาหนดให้สร้างฮิลโทแกรม โดยบรรทัดท่ี 9
กาหนดให้พล็อตท้ังหมด 21 ช่วง บรรทัดท่ี
10 ถึง 12 กาหนดช่ือแผนภูมิและช่ือแกน x
และ y บรรทัดท่ี13 กาหนดให้แสดงแกน x
ในช่วงของค่า 0-20 และแกน y ในช่วง 0-5
62 ตวั อยา่ งท่ี 2.9 การนาเสนอ
ผลคะแนนดว้ ยฮลิ โทแกรม
บรรทดั ท่ี 14 กาหนดให้ลากเส้นกรดิ
ของแกน x ตั้งแต่ 0 ถึง 20 ในทุกๆช่วง 2
คะแนน และบรรทัดท่ี 15 กาหนดให้แสดง
แผนภูมิออกทางจอภาพ สั งเกตว่าแผนภูมิท่ี
ได้จากโมดูลน้ี ผู้ใช้สามารถบันทึกเป็นไฟล์
รูปภาพได้ โดยคลกิ ท่ไี อคอนบันทึก
63 ตวั อย่างท่ี 2.10 การนาเสนอ
ผลคะแนนด้วยแผนภาพการกระจาย
จากตัวอย่างที่ 2.8 ถ้าต้องการสร้าง
แผนภาพการกระจายระหว่างคะแนนวิชา
วิทยาการคานวณและวิทยาศาสตร์ เพ่ือให้
เห็ นความสั มพันธ์ของความสามารถทาง
วิ ท ย า ก า ร ค า น ว ณ แ ล ะ วิ ท ย า ศ า ส ต ร์ ข อ ง
นั ก เ รี ย น แ ต่ ล ะ ค น ท า ไ ด้ ดั ง ตั ว อ ย่ า ง
โปรแกรมตอ่ ไปน้ี
64 ตัวอย่างท่ี 2.10 การนาเสนอ
ผลคะแนนด้วยแผนภาพการกระจาย
65 ตวั อยา่ งที่ 2.10 การนาเสนอ
ผลคะแนนดว้ ยแผนภาพการกระจาย
ผลลพั ธท์ ไ่ี ดค้ ือ
66 ตวั อยา่ งที่ 2.10 การนาเสนอ
ผลคะแนนดว้ ยแผนภาพการกระจาย
จากตวั อย่างท่ี 2.10 อธบิ ายได้ดังน้ี
โปรแกรมตอ้ ง import โมดูล matplotlib ใน
บรรทดั ท่ี 2 และบรรทดั ท่ี 10 ถึง 16 เป็นการ
ก า ห น ด ใ ห้ ส ร้ า ง แ ผ น ภ า พ ก า ร ก ร ะ จ า ย โ ด ย
บรรทัดท่ี 10 กาหนดให้พล็อตแผนภาพการ
กระจายระหว่างค่าในคอลัมน์ CsScore และ
Science1 จาก DataFrame newData
67 ตัวอยา่ งท่ี 2.10 การนาเสนอ
ผลคะแนนดว้ ยแผนภาพการกระจาย
บ ร ร ทั ด ท่ี 1 3 - 1 4 ก า ห น ด label
ให้กับจุดท้ังหมด บรรทัดท่ี 15 กาหนดชื่อ
ให้กับแผนภาพและบรรทัดท่ี 16 กาหนดให้
แสดงแผนภาพออกทางจอภาพ
1
การสรา้ งส่วนต่อประสาน
กราฟิกกับผใู้ ช้
2 การสรา้ งส่วนตอ่ ประสานกราฟิกกบั ผู้ใช้
ในการเขียนโปรแกรมท่ีมีส่ วนต่อประสานกราฟิก
กับผู้ใช้ (Graphical User Interface: GUI) จะช่วยให้เห็น
ภาพรวมของโปรแกรมได้ดี ในภาษาไพทนมีโมดูล tkinter
ท่ีช่วยให้การพัฒนาส่ วนต่อประสานกราฟิกกับผู้ใช้ทาได้
งา่ ยและรวดเรว็ ข้ึน ซ่งึ มี 4 ข้ันตอน ดังน้ี
นาเข้าโมดูล tkinter
สรา้ งหน้าต่างหลัก
(main window)
จัดวางวดิ เจ็ต
(Widget)
เช่ือมโยงเหตกุ ารณ์
(event)
3 การสรา้ งส่วนตอ่ ประสานกราฟิกกบั ผู้ใช้
ในท่ีน้ี จะให้นั กเรียนทดลองใช้โมดูล tkinter ของไพทอน
เพื่อสร้างแอปพลิเคชันเคร่ืองคิดเลขอย่างง่ายท่ีสามารถคานวณ
ผลบวก ลบ คูณ และหาร ของจานวนเต็ม โดยจะเร่ิมต้นจากการ
ทางานง่ายๆก่อน แล้วเพ่ิมเติมความสามารถเข้าไปทีละส่ วน จนได้
โปรแกรมเครอื่ งคิดเลขท่สี มบูรณ์ดงั รูป
4 ตัวอยา่ งท่ี 2.11 การสรา้ ง
หน้ าต่างหลักดว้ ย tkinter
ทดลองรนั โปรแกรมไพทอนตอ่ ไปน้ี
5 ตัวอยา่ งท่ี 2.11 การสรา้ ง
หน้ าตา่ งหลกั ดว้ ย tkinter
ผลลพั ธท์ ่ีได้คือ
6 ตวั อย่างท่ี 2.11 การสรา้ ง
หน้ าต่างหลกั ดว้ ย tkinter
ตวั อยา่ งท่ี 2.11 อธบิ ายไดด้ ังน้ี
1.บรรทัดท่ี 1 เป็นการนาโมดูล tkinter
เข้ามาในโปรแกรมแล้วจะอ้างถึงโมดูล
น้ี ดว้ ยชอื่ tk
2. บรรทัดท่ี 3 เป็นการเรยี กใช้ฟังก์ชัน
Tk() จากโมดูล tkinter ซ่ึงเป็นฟังก์ชัน
ท่ีช่วยสร้างหน้ าต่างหลักข้ึนมา โดยจะ
อ้างถึงหน้ าตา่ งน้ีดว้ ยชือ่ m
7 ตวั อยา่ งท่ี 2.11 การสรา้ ง
หน้ าต่างหลักด้วย tkinter
3. บรรทัดท่ี 4 ใช้เมท็อด title() เพื่อ
กาหนดชือ่ ให้กับหน้ าตา่ ง m
4. บรรทัดท่ี 5 ใช้เมท็อด mainloop ()
เพ่ือให้หน้ าต่าง m ถูกแสดงผลข้ึนบน
จอภาพ โดยฟังก์ชันน้ี จะรอรับคาส่ั ง
และประมวลผลโปรแกรมตาม
เหตุการณ์ ท่ีเกิดข้ึนไปจนกว่าหน้ าต่าง
หลักจะถูกปิ ดลงด้วยการคลิกปุ่ ม x
(Close) ของหน้ าต่าง
8 ตัวอย่างท่ี 2.12
การเพ่ิมปุ่มลงในหน้าตา่ งหลัก
ทดลองรนั โปรแกรมไพทอนต่อไปน้ี
ผลลัพธท์ ่ไี ดค้ ือ
9 ตวั อยา่ งท่ี 2.12
การเพ่ิมป่มุ ลงในหน้าตา่ งหลัก
ตัวอย่างท่ี 2.12 อธบิ ายไดด้ งั น้ี
1.บรรทัดท่ี 6 สร้างปุ่มชื่อ button ในหน้ าต่างหลัก โดยเรียกใช้ฟังก์ชัน
Botton() ท่ีมีการกาหนดอาร์กิวเมนต์คือตัวแปรท่ีใช้อ้างอิงถึงหน้ าต่างหลัก
ในท่ีน้ี คือ m ส่วนอารก์ ิวเมนตอ์ ื่นจะเป็นการกาหนดตวั เลอื กตา่ งๆไดแ้ ก่
10 ตัวอย่างท่ี 2.12
การเพ่ิมปุ่มลงในหน้ าต่างหลัก
• text= ‘stop’ เป็นการกาหนดข้อความหรอื ป้ายชื่อ
ทจ่ี ะปรากฏบนป่มุ
• width=25 เป็นการกาหนดความกว้างของปุ่ม ให้
เทา่ กบั 25 ตัวอักขระ
• Command=lambda: m.destroy() เป็นการกาหนด
คาสั่ งเม่ือคลิกปุ่ม เพ่ือเรียกใช้เมท็อด destroy()
ให้จบการทางานของ mainloop()
11 ตวั อย่างท่ี 2.12
การเพ่ิมป่มุ ลงในหน้าตา่ งหลัก
2. บรรทัดท่ี 7 เป็นคาส่ั งท่ีกาหนดให้มีการแสดงปุ่ม button
บนหน้ าต่างหลกั เนื่ องจากโดยปกติแล้ววิตเจ็ตท่ีสร้างข้ึนจะ
ไม่ปรากฏให้เห็นบนหน้ าต่างหลัก จนกว่าจะมีการสั่ งให้
แสดง ซ่ึงเมท็อด pack() เป็นวิธีหน่ึ งในการกาหนดให้นา
ปุ่ม button ไปจัดวางในหน้ าต่างหลัก ด้วยวิธีการตามท่ี
เมท็อด pack() ได้ออกแบบไว้ ถ้าผู้เขียนโปรแกรมไม่ระบุ
เง่ือนไขการแสดงผล เมท็อด pack() จะแสดงวิตเจ็ตเรียง
ตอ่ เน่ืองกันไปจากบนลงล่างในหน้ าตา่ งหลัก
12 ตวั อยา่ งที่ 2.13
การเพ่ิมวดิ เจ็ตลาเบลลงในหน้ าตา่ งหลัก
โปรแกรมน้ีจะสรา้ งหน้าตา่ งหลักท่ีมีลาเบล (label) แสดง
จานวนครง้ั ของการท่ีปุ่มถูกกด ให้ทดลองรนั โปรแกรม
13 ตัวอยา่ งท่ี 2.13
การเพ่ิมวิดเจต็ ลาเบลลงในหน้ าต่างหลกั
ผลลัพธท์ ่ไี ดค้ ือ
14 ตัวอยา่ งท่ี 2.13
การเพ่ิมวดิ เจต็ ลาเบลลงในหน้ าต่างหลกั
ตวั อยา่ งท่ี 2.13 อธบิ ายได้ดังน้ี
1.บรรทัดท่ี 3 ประกาศฟังก์ชัน counting () ท่ีจะ
ทาหน้ าท่ีเพ่ิมจานวนคร้ังท่ีกดปุ่มถูกกดทีละหน่ึ ง
(ค่าของตัวแปร count) แล้วแปลงเป็นข้อมูลชนิ ด
สตรงิ เพื่อนาไปแสดงผลลาเบล
2.บรรทัดท่ี 4-5 กาหนดให้ตัวแปร count และ
label1Text เป็นตัวแปรโกลบอลท่ีสามารถอ้างอิง
ถึงตัวแปร count และ label1Text ท่ีอยู่ภายนอก
ฟังก์ชัน
15 ตวั อยา่ งท่ี 2.13
การเพ่ิมวดิ เจ็ตลาเบลลงในหน้ าตา่ งหลกั
3.บรรทัดท่ี 6 เพ่ิมจานวนครงั้ ท่ีกดป่มุ ข้ึนทีละหน่ึง
4.บรรทัดท่ี 7 นาค่าของจานวนคร้ังท่ีกด ไปแสดงบนลา
เบล label1Text
5.บรรทดั ท่ี 10 การกาหนดค่าเร่มิ ต้นให้กับตัวแปร count=0
6.บรรทัดท่ี 11 สร้างตัวแปร label1Text ซ้ึงอ้างอิงไปถึงตัว
แปรสตรงิ (StringVar)
7.บรรทัดท่ี 12 แปลงค่าในตัวแปร count ให้ เป็นสตริง
แล้วนาไปเกบ็ ใน label1Text โดยใชเ้ มทอ็ ด set ()
8.บรรทัดท่ี 18 สร้างปุ่ม button2 ท่ีมีข้อความบนปุ่มว่า
‘Counting’ และเมื่อป่มุ ถูกคลิก จะเรียกฟังก์ชัน counting ()
ให้ทางาน
16 ตวั อยา่ งที่ 2.13
การเพ่ิมวิดเจ็ตลาเบลลงในหน้ าตา่ งหลัก
9.บรรทัดท่ี 22 สร้างลาเบลท่ีจะถูกอ้างถึงด้วยตัวแปร
label1 โ ด ย ใ ช้ ฟั ง ก์ ชั น Label( ) ข อ ง tkinter พ ร้อ ม กั บ
กาหนดตวั เลือกเพ่ิมเติม ได้แก่
• Borderwidth=2 กาหนดให้ลาเบลมีเส้นขอบหนา 2 พิก
เซล (pixel)
• relief=“ridge” กาหนดให้ลาเบลมลี ักษณะเป็นขอบนนู
• textvariable กาหนดให้มีข้อความบน label เป็นสตรงิ
ท่ีเกบ็ ในตัวแปร label1Text
• Width=30 กาหนดให้ label มีความกว้างเท่ากับ 30 ตัว
อกั ขระ
17
ตวั อยา่ งท่ี 2.14
การเพ่ิมปุ่มตัวเลขบนเครอื่ งคิดเลข
โปรแกรมไพทอนนี้ สร้างหน้ าต่างหลักท่ีมี
ปุ่มตัวเลข ซ่งึ เม่ือถูกคลิกจะแสดงตัวเลขบนลาเบล
โปรแกรมน้ี สามารถปรับปรุ งจากตัวอย่างท่ี 2.13
ให้เปลี่ยนจากปุ่ม ‘Counting’ เป็นปุ่มตัวเลข เม่ือ
รันโปรแกรมแล้วคลิกปุ่มตัวเลขจะแสดงตัวเลข
เพ่ิ ม ต่ อ ท้า ย ตั ว เ ล ข ท่ีป ร า กฏ อ ยู่ ใ ห้ ทด ส อ บรัน
โปรแกรมตอ่ ไปน้ี
18
ตวั อย่างท่ี 2.14
การเพ่ิมปุ่มตวั เลขบนเครอ่ื งคิดเลข
19 ตัวอย่างท่ี 2.14
การเพ่ิมป่มุ ตัวเลขบนเครอื่ งคิดเลข
ผลลัพธท์ ่ไี ดค้ ือ
20 ตัวอยา่ งท่ี 2.14
การเพ่ิมป่มุ ตัวเลขบนเครอื่ งคิดเลข
ตวั อยา่ งท่ี 2.14 อธบิ ายไดด้ ังน้ี
1.บรรทัดท่ี 3 ประกาศฟังก์ชัน press() ซ่ึงทาหน้ าท่ี
เชื่อมต่อตัวเลขท่ีผู้ใช้คลิกเข้าด้วยกันในบรรทัดท่ี 6
เก็บไว้ในตัวแปร expression แล้วนาไปแสดงผลใน
label1Text ในบรรทดั ท่ี 7
2.บรรทัดท่ี 12 กาห นดค่ าเร่ิม ต้นใ ห้ กั บตั วแป ร
expression เป็นสตรงิ ว่าง
21 ตัวอย่างท่ี 2.14
การเพ่ิมปุ่มตัวเลขบนเครอื่ งคิดเลข
3.บรรทัดท่ี 13 สร้างตัวแปร label1Text ซ่ึงจะใช้ใน
การแสดงผลของเคร่ืองคิดเลข โดยในบรรทัดท่ี 14
เป็นการกาหนดให้แสดงค่าตัวแปร expression บน
label1Text
4.บรรทัดท่ี 18 สร้างปุ่ม button1 ท่ีแสดงตัวเลข 1
บนปุ่มและเรยี กฟังก์ชนั press() ให้ทางานพรอ้ มกัน
ส่งอารก์ ิวเมนตค์ ือ สตรงิ ‘1’ ไปให้
22
การวางวดิ เจ็ตใชเ้ มท็อด grid()
จากหน้ าต่างหลักของแอปพลิเคชันที่ได้
เมื่อวางวิตเจ็ตด้วยเมท็อด pack() จะพบว่า แต่ละ
วิดเจ็ตถูกวางเรียงต่อกันในแนวตั้งจากบนลงล่าง
ห า ก ต้ อ ง กา ร จั ด เ รีย งต่ อ กัน ใ น รู ปแ บ บต า ร า ง
เพ่ือให้มีความสะดวกในการใช้งานคล้ายกับการ
วางป่มุ ของเครอ่ื งคิดเลขจรงิ
23
การวางวดิ เจ็ตใช้เมทอ็ ด grid()
โมดูล tkinter ได้มีฟังก์ชันการวางวิตเจ็ต
ลักษณะน้ี ให้เรียกใช้งาน คือ เมท็อด grid() โดย
พื้นที่หน้ าต่างหลักจะถูกแบง่ เป็นตารางในลักษณะ
ของคอลัมน์ และแถว เรียกแต่ละช่องในตารางว่า
เซล (cell) โดยอ้างอิงแต่ละเซลได้จาก หมายเลข
คอลัมน์ นั บจากซ้ายไปขวาและหมายเลขแถวจาก
บนลงลา่ ง
24
การวางวิดเจ็ตเมทอ็ ด grid()
เร่ิมต้นตั้งแต่หมายเลข 0 การวางวิดเจ็ตจะใช้
เมท็อ ด grid() ( แทนการใช้ pack()) โดยมีตัว เลือ ก
row=x และ column=y (x และ y เป็นหมายเลขประจา
แถวและคอลมั น์ ตามลาดบั ) ดงั รูป
แถวท่ี 0 คอลัมน์ท่ี 0 คอลมั น์ท่ี 2 คอลมั น์ท่ี 2
แถวท่ี 1 row=0,column=0 row=0,column=1 row=0,column=2
แถวท่ี 2 row=1,column=0 row=1,column=1 row=1,column=2
row=2,column=0 row=2,column=1 row=2,column=2
ตัวอยา่ งการอา้ งองิ หมายเลขประจาแถวและคอลมั น์
25 ตัวอย่างท่ี 2.15 การจัดวางวิดเจ็ตแบบกรดิ
ให้ทดลองรนั โปรแกรม
ไพทอนตอ่ ไปน้ี
26 ตวั อย่างท่ี 2.15 การจัดวางวดิ เจ็ตแบบกรดิ
ผลลพั ธท์ ไ่ี ด้
27 ตัวอยา่ งท่ี 2.16 การทางานของ
แอปพลิเคชนั เครอื่ งคิดเลข
เ พ่ื อ ใ ห้ เ ค รื่ อ ง คิ ด เ ล ข แ ส ด ง ผ ล ลั พ ธ์ จ า ก ก า ร
คานวณ หลังจากเพ่ิมปุ่มเคร่ืองหมาย = แล้ว นั กเรียน
ต้ อ ง เ ขี ย น ฟั ง ก์ ชั น ซ่ึ ง จ ะ ถู ก เ รี ย ก เ มื่ อ ผู้ ใ ช้ ก ด ปุ่ ม
เครอื่ งหมาย = ดงั แสดงในส่วนของโปรแกรมต่อไปน้ี
28
ตวั อย่างท่ี 2.16 การทางานของ
แอปพลิเคชันเครอื่ งคิดเลข
ตัวอยา่ งท่ี 2.16 อธบิ ายไดด้ ังน้ี
1.ฟังก์ชัน equal() น้ี จะประมวลผลสตริงของ
นิ พจน์ ท่ีเก็ บอยู่ในตัว แปร expression โดย
โครงสร้างหลักของฟั งก์ชันจะอยู่ในบล็อก
except: จะถูกข้ามไป แต่ถ้าคาสั่ งภายในบล็อก
try: เกิ ดข้ อ ผิดพ ลาด ข้ึ นอ ย่าง ใดอ ย่าง หน่ึ ง
คาส่ังภายในบลอ็ ก except: จะถูกทางาน
29
ตวั อยา่ งท่ี 2.16 การทางานของ
แอปพลเิ คชนั เครอ่ื งคิดเลข
2.ในบรรทัดท่ี 5 ข้อความท่ีเก็บอยู่ในตัวแปร
expressionจ ะ ถู ก น า ไ ป ค า น ว ณ ค่ า ด้ ว ย
ฟังก์ชัน eval() และผลท่ีได้ถูกแปลงเป็นค่า
สตรงิ เก็บไว้ในตัวแปร result
3.ในบรรทัดท่ี 6 เป็นการนาค่าสตริงในตัว
แปร result ไปเก็บไว้ในตัวแปร expression
อีกครงั้ หน่ึง เพ่ือใชใ้ นการคานวณตอ่ ไป
30
ตวั อยา่ งท่ี 2.16 การทางานของ
แอปพลิเคชนั เครอ่ื งคิดเลข
4. ในบรรทัดท่ี 7-9 หากการคานวณผลลัพธ์
เกิดข้อผิดพลาดข้ึนจากฟังก์ชัน eval() แล้ว
ตัวแปร result จะเก็บค่สตรงิ ‘ERROR’ และ
จะกาหนดค่าตัวแปร expression เป็นสตริง
ว่าง (‘’)
5.ใน บ รรทั ด ท่ี 1 0 เ ป็ น ก ารน าผ ลท่ี ได้ไ ป
แสดงบน label1Text
31
สรุ ปท้ายบท
การสร้างแอปพลิเคชั่นหรือซอฟต์แวร์
ประยุกต์ให้ผู้อ่ืนใช้งานมีหลากหลายรู ปแบบ
ไพทอนเป็นภาษาโปรแกรมท่ีเหมาะสมในการ
นามาพัฒนาเป็นแอปพลเิ คชัน่ ขนาดใหญ่
ใ น ปั จ จุ บั น มี ผู้ พั ฒ น า โ ม ดู ล ต่ า ง ๆ ที่
ส นั บ ส นุน ก า ร เ ขี ย น โ ป ร แ ก ร ม จ า น ว น ม า ก
นาไปใช้งานได้ง่ายและสะดวก เช่น โมดูล
pandasใชส้ าหรบั ประมวลผลข้อมลู ขนาดใหญ่
32
สรุปทา้ ยบท
สารสนเทศซ่งึ สามารถกาหนดข้อมูล เป็น
Series แ ล ะ DataFrame แ ล ะ น า เ ข้ า ไ ฟ ล์ จ า ก
ภายนอกมาประมวลผลโมดลู matplotlib นาเสนอ
ข้อมูลเป็นแผนภูมิ กราฟ แผนภาพโมดูล tkinter
ทาให้สร้างส่ วนต่อประสานกราฟิกกับผู้ใช้ท่ีมี
ความน่ าสนใจไดอ้ ยา่ งรวดเรว็