แผนการสอนหน วยที่ 2 โครงสร...

18
1 โครงสรางและลักษณะการเขียนโปรแกรม สําราญ วานนท์ | คอมพิวเตอร์ธุรกิจ แผนการสอนหนวยที่ 2 โครงสรางและลักษณะการเขียนโปรแกรม แนวคิด การเขียนโปรแกรมดวยภาษาไพธอน จะมีรูปแบบโครงสรางและลักษณะการเขียนโปรแกรม ที่มี ลักษณะเฉพาะของภาษา จึงมีความจําเปนจะตองศึกษาโครงสรางและลักษณะการเขียนโปรแกรม รูปแบบ คําสั่งที่ใชการอางอิงโมดูลมาตรฐาน โมดูลเพิ่มเติ่มพิเศษ รูปแบบการเขียนคําสั่งโปรแกรมยอย การเขียน โปรแกรมแบบ Object Oriented การเรียกใชงาน Object การกําหนดคําสั่งหลัก คําสั่งยอย การใช เครื่องหมาย การใชเครื่องหมายคอมเมนต วัตถุประสงค เมื่อศึกษาหนวยที่ 2 จบแลวนักศึกษา 1. เขาใจรูปแบบโครงสรางและลักษณะการเขียนโปรแกรม ดวยภาษาไพธอน 2. เขาใจการใชคําสั่งอางอิงโมดูลมาตรฐาน โมดูลเพิ่มเติ่มพิเศษ 3. เขาใจการเขียนคําสั่งหลัก คําสั่งยอย การใชเครื่องหมายตาง สําหรับคําสั่งโปรแกรม กิจกรรมการเรียน 1. อานแผนการสอนประจําหนวยที่ 2 2. ศึกษาเนื้อหาและฝกปฏิบัติตาม 3. ศึกษาเพิ่มเติมจากเอกสารอื่นหรือสื่อเสริมออนไลน (ถามี) 4. ทํากิจกรรมใบงานที่กําหนดไวในเอกสารคําสอน

Transcript of แผนการสอนหน วยที่ 2 โครงสร...

Page 1: แผนการสอนหน วยที่ 2 โครงสร างและลักษณะการเขียนโปรแกรม · ภาพที่ 2.1 แสดงการเขียนโปรแกรมภาษา

1 โครงสรางและลักษณะการเขียนโปรแกรม

สําราญ วานนท์ | คอมพิวเตอร์ธุรกิจ

แผนการสอนหนวยท่ี 2

โครงสรางและลักษณะการเขียนโปรแกรม

แนวคิด

การเขียนโปรแกรมดวยภาษาไพธอน จะมีรูปแบบโครงสรางและลักษณะการเขียนโปรแกรม ที่มีลักษณะเฉพาะของภาษา จึงมีความจําเปนจะตองศึกษาโครงสรางและลักษณะการเขียนโปรแกรม รูปแบบคําสั่งที่ใชการอางอิงโมดูลมาตรฐาน โมดูลเพิ่มเติ่มพิเศษ รูปแบบการเขียนคําสั่งโปรแกรมยอย การเขียนโปรแกรมแบบ Object Oriented การเรียกใชงาน Object การกําหนดคําสั่งหลัก คําสั่งยอย การใชเครื่องหมาย การใชเครื่องหมายคอมเมนต วัตถุประสงค

เมื่อศึกษาหนวยที ่2 จบแลวนักศึกษา 1. เขาใจรูปแบบโครงสรางและลักษณะการเขียนโปรแกรม ดวยภาษาไพธอน 2. เขาใจการใชคําสั่งอางอิงโมดูลมาตรฐาน โมดูลเพิ่มเติ่มพิเศษ 3. เขาใจการเขียนคําสั่งหลัก คําสั่งยอย การใชเครื่องหมายตาง สําหรับคําสั่งโปรแกรม กิจกรรมการเรียน

1. อานแผนการสอนประจําหนวยที่ 2 2. ศกึษาเนื้อหาและฝกปฏิบัติตาม 3. ศึกษาเพ่ิมเตมิจากเอกสารอื่นหรือสื่อเสริมออนไลน (ถามี) 4. ทํากิจกรรมใบงานที่กําหนดไวในเอกสารคําสอน

Page 2: แผนการสอนหน วยที่ 2 โครงสร างและลักษณะการเขียนโปรแกรม · ภาพที่ 2.1 แสดงการเขียนโปรแกรมภาษา

2 1046419 การเขียนโปรแกรมเชิงวัตถุเบื้องตน

สําราญ วานนท์ | คอมพิวเตอร์ธุรกิจ

หนวยท่ี 2

โครงสรางและลักษณะการเขียนโปรแกรม

1. ทําความรูจักกับโมดูลมาตรฐานของไพธอน ไพธอน (Python) เปดโอกาสใหใชงานโมดูลพิเศษที่นอกเหนือจากที่ไพธอน ไดจัดเตรียมไวให ซึ่งโมดูลพิเศษเหลานี้ไดรับการพัฒนาจาก Python, c, c++, java, Dot Net หรือภาษาอื่นๆ ดวยเหตุผลบางประการที่จําเปนตองใชภาษาอื่น มาชวยเสริมรวมกับไพธอนยกตัวอยาง ถาตองการตอ Python รวมกับ My SQL ซึ่งคําสั่งเชื่อมโยงฐานขอมูลพิเศษสําหรับ My SQL ไมไดถูกสรางไวเรียกใชในโมดูลมาตรฐานของ Python เราก็จําเปนตองไปดาวนโหลด PBM Library พิเศษเฉพาะของ My SQL ที่เว็บไซต My SQL (หากฐานขอมูลสนับสนุนการเชื่อมโยงกับ Python ก็จะมีไลบรารีสําหรับเชื่อมโยงฐานขอมูลใหดาวนโหลดมาติดตั้งและใชงานเพิ่มเติม) ตารางที่ 2.1 แสดงรายชื่อโมดูลมาตรฐานของ Python กลุม ชื่อโมดูลมาตรฐานของ Python ประเภทการใชงาน ตัวเลข (Number) datetime

decimal วันที ่ตัวเลขแบบปดเศษ

การคํานวณ (Math) math cmath

การคํานวณทางคณิตศาสตร การคํานวณจํานวนเชิงซอน

อารกิวเมนต (Argument) sys การผานคาอารกิวเมนตของแตละโมดูล

เวลา (Time) time กลุมคําสั่งเกี่ยวกับวันและเวลา การสุมคา random เปนกลุมคําสั่งสุมคาตัวเลข Local Path/Directory os กลุมคําสั่งเกี่ยวกับ Path และ

Directory ของระบบปฎิบัติการ ขอมูลรูปแบบ XML xml กลุมคําสั่งจัดการดูแลขอมูล

รูปแบบ XML อีเมล smtplib, mimetypes, e-mail,

imaplib กลุมคําสั่งสําหรับดูแลการจัดการอีเมล

เครือขายกรสื่อสาร socket, socketserver กลุมคําสั่งดูแลจัดการโปรโตคอลและการสื่อสาร

ทั้งนี้ภาษา Python จัดเปนภาษาที่อยูในระดับสูงเทียบกับภาษา Visual Basic บางกรณีที่ตองการใชงานเชิงลึกในระดับ Kernel ของระบบปฎิบัติการ การเรียกใชพอรตฮารดแวรตางๆ การจัดระบบหนวยความจํา การเขียนโปรแกรมระบบเครือขายเชิงลึก ตามที่กลาวไวบางสวน ภาษา Python ไมมีความสามารถเขาไปจัดการไดเลย ตองอาศัยภาษาอื่นๆ ที่มีความสามารถในการเขียนโปรแกรมเชิงลึก เชน c, c++, java สราง

Page 3: แผนการสอนหน วยที่ 2 โครงสร างและลักษณะการเขียนโปรแกรม · ภาพที่ 2.1 แสดงการเขียนโปรแกรมภาษา

3 โครงสรางและลักษณะการเขียนโปรแกรม

สําราญ วานนท์ | คอมพิวเตอร์ธุรกิจ

เปนโมดูลพิเศษไวเชื่อมตอกับ Python ที่จะเรียกใชในลักษณะเปนฟงกชันยอยภายในของโมดูลพิเศษเหลานั้นอีกท ีคําสั่งที่เราใชในการอางอิงโมดูลมาตรฐาน หรือโมดูลเพิ่มเติมพิเศษใน Python ประกอบดวย 2 คําสั่งดังนี้ 1) คําสั่ง import และ 2) คําสั่ง from 2. คําสั่ง Import ตัวอยางท่ี 1 การเขียนคําสั่งอางอิงโมดูลที ่1 ตัวอยางท่ี 2 การเขียนคําสั่งอางอิงโมดูลมากกวา 1 โมดูล ตัวอยางที่ 3 การเขียนคําสั่งอางอิงโมดูลมากกวา 1 โมดูล แบบใชคําสั่ง import 1 คําสั่ง คําสั่ง import จะเปนตัวอางอิงโมดูลที่เราตองการใชคําสั่งขางในโมดูล การอางอิงโมดูลแบบนี้ Python จะมองเห็นกลุมคําสั่งทั้งหมดในโมดูล และพรอมนําไปใชงานไดตลอดเวลา แตบางครั้งหากเราตองการอางโมดูล และอยากจะเลือกใชเฉพาะคําสั่ง หรือกลุมคําสั่งภายในบางคําสั่ง ก็ตองใชคําสั่ง from ที่จะกลาวถึงในหัวขอตอไป 3. คําสั่ง from ตัวอยางที่ 1 รูปแบบการเขียนคําสั่ง from เพื่ออางอิงโมดูล และกลุมคําสั่งทั้งหมด

from ชื่อโมดูล import คําสั่งหรือกลุมคําสั่ง สัญลักษณ * ใชสําหรับเรียกใชงานทุกคําสั่งในโมดูล ตัวอยางที่ 2 รูปแบบการเขียนคําสั่ง from สําหรับเรียกใชบางคําสั่ง หรือกลุมคําสั่งในโมดูลที่กําลังอางอิงในปจจุบัน from ชื่อโมดูล import กลุมคําสั่งที่ 1 , กลุมคําสั่งที่ 2

import datetime

import datetime

import decimal

import os

import datetime, decimal, os

from os import *

from os import error, chdir, getcwd

Page 4: แผนการสอนหน วยที่ 2 โครงสร างและลักษณะการเขียนโปรแกรม · ภาพที่ 2.1 แสดงการเขียนโปรแกรมภาษา

4 1046419 การเขียนโปรแกรมเชิงวัตถุเบื้องตน

สําราญ วานนท์ | คอมพิวเตอร์ธุรกิจ

การเขียนโปรแกรมโดยทั่วไปดวยภาษา Python จะมีรูปแบบเปนการเขียนกลุมคําสั่งในโพรซีเจอรหรือฟงกชัน แลวทําการเรียกใชงานตามความตองการ เหมือนหลักการเขียนโปรแกรมดวยภาษาอื่นๆ เชน c, c++, java เพื่องายตอการทําความเขาใจถึงวิธีการเขียนโปรแกรม Python ดวย Editor พอสรุปไดเปน 5 วิธีดังตอไปนี ้ 1. รูปแบบการเขียนดวยวิธีที่ 1 2. รูปแบบการเขียนดวยวิธีที่ 2 3. รูปแบบการเขียนดวยวิธีที่ 3 : แบบ Object Oriented 4. รูปแบบการเขียนดวยวิธีที่ 4 : แบบสราง Object Oriented พรอมกลุมคําสั่งเรียกใชงาน Object 5. รูปแบบการเขียนดวยวิธีที่ 5 : แบบ Object Oriented ที่เกิดจากวิธีที่ 3 และ 4 มาประยุกตใชงานรวมกัน 3.1 รูปแบบการเขียนดวยวิธีที่ 1 ลําดับการ 1

ทดสอบคําสั่ง 2

จะทําจาก 3

บรรทัดแรก 4

ไปจนจบ 5

ภาพที่ 2.1 แสดงการเขียนโปรแกรมภาษา Python ดวยคําสั่งตางๆ โดยไมไดใชโพรซีเจอรหรือฟงกชั่นของ Python ตามภาพที่ 2.1 การเขียนคําสั่งตางๆ จะทําการเขียนบรรทัดตอบรรทัดจากบรรทัดแรกไปจนถึงบรรทัดสุดทาย เมื่อทําการทดสอบโปรแกรม Python จะทํางานคําสั่งในบรรทัดแรกไปเรื่อยๆ จนกระทั่งถึงบรรทัดสุดทายหรือคําสั่งสุดทาย 3.2 รูปแบบการเขียนดวยวิธีที่ 2

คําสั่ง 1

คําสั่ง 2

คําสั่ง 3

คําสั่ง 4

คําสั่ง 5

คําสั่งภายใน 1

คําสั่งภายใน 2

โพรซีเจอรที่ 1

โพรซีเจอรที่ 2

คําสั่งภายใน 1

คําสั่งภายใน 2

สวน A สวน B

จุดเริม่ตน ของคําสั่ง เรียกโพรซีเจอรที่ 1

เรียกโพรซีเจอรที่ 2

คําสั่งที่ 3

คําสั่งที่ 4

ภาพท่ี 2.2 การเขียนโปรแกรม Python ดวยการสรางโพรซีเจอรรวมกับคําสั่งปกต ิ

Page 5: แผนการสอนหน วยที่ 2 โครงสร างและลักษณะการเขียนโปรแกรม · ภาพที่ 2.1 แสดงการเขียนโปรแกรมภาษา

5 โครงสรางและลักษณะการเขียนโปรแกรม

สําราญ วานนท์ | คอมพิวเตอร์ธุรกิจ

ตามภาพที่ 2.2 เปนรูปแบบการเขียนโปรแกรมที่นิยมใชกัน เนื่องจากกลุมคําสั่งบางกลุมจําเปนตองทํางานรวมกันตามลําดับชั้นตอน เราก็นํากลุมคําสั่งเหลานั้นไปจัดสรางไวในโพรซีเจอรหรือฟงกชัน ซึ่งเพื่อความงายในการจัดสรางโพรซีเจอรหรือฟงกชัน ควรจะสรางไวในสวน A ตามภาพที่ 2.2 สวนการเรียกใชงานโพรซีเจอร ก็ใหไปเขียนในสวน B (ตามภาพที่ 2.2) วิธีเขียนตามรูปแบบนี้จะดีกับผูเขียนโปรแกรมในระยะยาว ยกตัวอยาง ถาผูพัฒนาไดสรางโปรแกรมขึ้นมาสักโปรแกรมหนึ่ง หลังจากสรางเสร็จผานไปสัก 1 ป แลวตองกลับมาแกไขเพิ่มเติมในโปรแกรม ถาจัดรูปแบบการเขียนไวดี เราก็จะหาจุดที่ตองแกไข หรือเพิ่มเติมไดอยางรวดเร็ว 3.3 รูปแบบการเขียนดวยวิธีที่ 3 : แบบ Object Oriented

ตามภาพที่ 2.3 เปนวิธีการเขียนเชิงวัตถุตามรูปแบบของ Python ซึ่งเปนวิธีการสราง Object ขึ้นมาเพื่อรอใหมีการนําไปใชงาน ดังนั้นจะเห็นวาภายใตโครงสรางแบบนี้จะไมมีสวนสําหรับเรียกทดสอบโปรแกรม 3.4 รูปแบบการเขียนดวยวิธีที่ 4 : แบบ Object Oriented พรอมกลุมคําสั่งเรียกใชงาน Object

Class Barcode

Property 1

Method 1

Method 2

ภาพที่ 2.3 แสดงการเขียนโปรแกรมเชิงวัตถุ (OO) เพื่อสราง Object ดวยภาษา Python

สวน A สวน B

จุดเริม่ตน ทดสอบ คําสั่งที่ 1

คําสั่งที่ 2

คําสั่งเกี่ยวกับ Barcode

คําสั่งที่ 3

Class Barcode

Property 1

Method 1

Method 2

ภาพที่ 2.4 แสดงวิธีการเขียนโปรแกรมแบบ Object Oriented รวมกับกลุมคําสั่งที่เรียกใชงาน Object ภายใตโครงสรางเดียวกัน

Page 6: แผนการสอนหน วยที่ 2 โครงสร างและลักษณะการเขียนโปรแกรม · ภาพที่ 2.1 แสดงการเขียนโปรแกรมภาษา

6 1046419 การเขียนโปรแกรมเชิงวัตถุเบื้องตน

สําราญ วานนท์ | คอมพิวเตอร์ธุรกิจ

ในภาพที่ 2.4 ก็จะคลายการเขียนโปรแกรมตามรูปแบบที่ 3 เพยีงแคเพ่ิมกลุมคําสั่งในสวน B (ตามภาพที่ 2.4) สําหรับเรียกใชสวน A ที่เปนการสราง Class Object มาใชงานภายใตโครงสรางเดียวกัน 3.5 รูปแบบการเขียนดวยวิธีที่ 5 : Object Oriented ที่เกิดจากวิธีที่ 3 และ 4 มาประยุกตใชรวมกัน

ภาพที่ 2.5 แสดงการเขียนโปรแกรมเชิงวัตถุโดยการเรียกใชโมดูลที่เปน Class Object จากภายนอกมาใชงานเพิ่มเติมรวมกับชุดคําสั่งปจจุบัน ในรูปที่ 2.5 ก็เปนอีกวิธีที่นิยมใชงานเชิงประยุกต สําหรับการเขียนโปรแกรมเชิงวัตถุของ Python โดยบางกรณีก็มีการสราง Class Object จัดเก็บไปเฉพาะ เมื่อไรที่ตองการนํามาใชงานก็จะทําการ import เขามาใชงานรวมกับโปรแกรมที่กําลังพัฒนาในปจจุบัน ดวยลักษณะวิธีการเขียนโปรแกรมทั้ง 5 วิธี ที่กลาวไปขางตนสําหรับภาษา Python จะทําการเก็บกลุมคําสั่ง หรือซอรสโคด (Source Code) ในรูปแบบไฟลที่ใชนามสกุล.py ซึ่งจะเปนไฟลแบบขอความ (Text File) หรืออาจแปลงใหเปนรูปแบบไฟลไบนารี (Binary File) โดยจะใชนามสกุลเปน .pyc สําหรับการเขียนซอรสโคดดวย Editor ของ Python เพื่อใหงายตอการเขียนโปรแกรม หรือการคนหา หรือทําการปรับปรุงซอรสโคดในระหวางการเขียนโปรแกรม หรือแกไขเพิ่มเติมใหกับโปรแกรมหลังปดงานโปรแกรมไปแลว ผูเขียนไดแบงโครงสรางการเขียนซอรสโคดของ Python ออกเปน 4 สวน ดังภาพที่ 2.6 ซึ่งประกอบดวย

ไฟล .py เปนไฟล Source code แบบขอความ

ไฟล .pyc เปนไฟล Source code แบบไบนาร ี

Page 7: แผนการสอนหน วยที่ 2 โครงสร างและลักษณะการเขียนโปรแกรม · ภาพที่ 2.1 แสดงการเขียนโปรแกรมภาษา

7 โครงสรางและลักษณะการเขียนโปรแกรม

สําราญ วานนท์ | คอมพิวเตอร์ธุรกิจ

ภาพที่ 2.6 แสดงการแบงพื้นที่สําหรับการใชตัวแปร, ฟงกชัน และคําสั่งภายใตโครงสรางของโมดูลที่กําลังพัฒนานี้ สวน A กรณีที่ตองการอางอิงกลุมคําสั่งอื่นๆ จากโมดูลมาตรฐานของ Python หรือโมดูลเพิ่มเติมพิเศษ เพื่อนํามาใชงานในการเขียนโปรแกรมในโมดูลนี้ เราจะใชคําสั่งสําหรับอางอิงโมดูล คือ คําสั่ง import และคําสั่ง from…import สวน B ใชในกรณีที่ตองการสรางตัวแปรที่สามารถเรียกใชงานไดในสวน C ที่เกี่ยวกับโพรซีเจอรหรือฟงกชัน และสวน D ซึ่งเปนจุดที่กลุมคําสั่งทํางาน สวน C มีไวสําหรับทําการสรางกลุมโพรซีเจอรหรือฟงกชัน เพื่อสามารถเรียกใชงานภายในโมดูลนี้ สวน D เปนจุดเริ่มตนของการทํางานโมดูลนี้ ที่นี่เราจะเขียนคําสั่งตางๆ เพื่อใชงานรวมกับตัวแปรในสวน B หรือการเรียกใชงานโพรซีเจอรหรือฟงกชันในสวน C ของโมดูลนี้ หลังจากทําความเขาใจโครงสรางของการสรางและเขียนซอรสโคดของ Python สิ่งที่ควรรูกอนในลําดับถัดไปกอนเริ่มเขียนโปรแกรม Python ไดแก การกําหนดคําสั่งกลุมยอยใหกับคําสั่งหลัก (Indenting), การทําความเขาใจการใชเครื่องหมาย ‘ หรือ ” สําหรับตัวแปรชนิดขอความ (String), การใชเครื่องหมาย () [] {} รวมกับตัวแปรหรือฟงกชันภายในของ Python (ฟงกชันภายใน ไดแก คําสั่ง format, tolower, ฯลฯ) และวิธีการทดสอบโปรแกรมภายใต Editor หรือ เครื่องมือพัฒนา (IDE) ของ Python ก็จะทําใหผูที่ตองการศึกษาสามารถทดลองหลากหลาย รวมทั้งเทคนิคการเขียนโปรแกรมแบบพิเศษอื่นๆ และประยุกตเขากับงานที่กําลังศึกษา หรือสรางเพื่อนําไปใชงานตอไป

import datetime, os from datetime

Id = 100 dbpath = ‘data.txt’

def showreport( ): print(‘No.’) cost = 100 * 0.07

print(‘Start Program’) id = id + 1 showreport( )

สวน A

สวน B

สวน C

สวน D

สําหรับการอางอิงโมดลูทั้งหลายทีใ่ชงานใน Python

กลุมตัวแปรที่ใชใน Python ประกาศไวท่ีนี่ ถาหากจะใชทุกท่ีใน Source code นี ้

ในสวนน้ีเหมาะสําหรับสรางโพรซีเจอรหรือฟงกชันที่จะใชงานในโมดูลนี ้

จุดเริม่ตนของกลุมคาํสั่งที่ทํางานในโมดลูนี ้

Page 8: แผนการสอนหน วยที่ 2 โครงสร างและลักษณะการเขียนโปรแกรม · ภาพที่ 2.1 แสดงการเขียนโปรแกรมภาษา

8 1046419 การเขียนโปรแกรมเชิงวัตถุเบื้องตน

สําราญ วานนท์ | คอมพิวเตอร์ธุรกิจ

4. การกําหนดคําสั่งกลุมยอยใหกับคําสัง่หลัก (Indenting) วิธีการจัดรูปแบบโครงสรางของกลุมยอย ภายใตคําสั่งหลักภาษา Python จะอาศัยการจัดยอหนาแทนการใชสัญลักณเหมือนภาษาอื่น ตามภาพที่ 2.7 แสดงการจัดรูปแบบโครงสรางของกลุมคําสั่งยอยของ Python เทียบกับภาษา C ภาพที่ 2.7 การเปรียบเทียบการจัดรูปแบบโครงสรางกลุมคําสั่งยอยของภาษา Python ตามภาพที่ 2.7 จะเปนการใชคําสั่ง for ซึ่งถือวาเปนคําสั่งหลัก และมีคําสั่งยอยเพื่อใหเกิดกระบวนการทํางานตามรอบการวนลูป คือคําสั่ง print และคําสั่งที่ 2 คือเรียกไปท่ีฟงกชัน test เปนคําสั่งยอย เมื่อเทียบกับภาษา C ที่ใชสัญลักษณ { เปนจุดเริ่มตน และใชสัญลักษณ } สําหรับบอกจุดสิ้นสุด ภาษา Python จะใชการยอหนา จะดวยวิธีการกดปุม Space Bar หรือกดปุม Tab ก็แลวแตผูเขียนโปรแกรมจะถนัดแบบใด (แนะนําการยอหนาของคําสั่งยอย ควรใชปุม Tab ดีกวา โอกาสเกิดขอผิดพลาดจากยอหนาจะนอยลง) ถาหากผูศึกษาเจอขอความ Error “SyntaxError: expected an indented block” ก็แสดงวาการยอหนาของคําสั่งมีปญหา ซึ่งสวนใหญจะเกิดจากการยอหนาไมเทากัน สรุป การใชยอหนาเพื่อแบงคําสั่งยอย จะใชกับกลุมคําสั่ง เชน if, for, while, def (สําหรับฟงกชันเพื่อเรียกใชในโมดูลนี้), class (สําหรับสรางโครงภายในเปนวัตถุ เชน Property, Method ฯลฯ ) เปนตน 5. การทําความเขาใจการใชเครื่องหมาย ‘ หรือ “ สําหรับขอความหรือตัวแปรชิดขอความ การใชสัญลักษณรวมกับกลุมขอความในภาษา Python มีใหเลือก 2 แบบ คือ การใชสัญลักษณ ฝนทอง หรือ ‘ (Single Quote) สัญลักษณ ? หรือ “ (Double Quote) โดยผูเขียนโปรแกรมสามารถเลือกใชสัญลักษณดังกลาวตามความถนัด สําหรับวิธีการใชงานทั้ง 2 สัญลักษณจะแบงออกเปน 2 วิธีดังนี้ 1. วิธีใชงานสัญลักษณรวมกับขอความแบบบรรทัดเดียว (In-Line) A = ‘This is my book.’ B = “วันนี้อยากทุบกระปอง”

คําสั่งยอย

คําสั่งหลัก คําสั่งหลัก

for(a=1; a>10; ++a) { print(a); test(); }

ตองกําหนดยอหนาใหเทากันมิฉะนั้น Python จะเกิด Indent Error ไมสามารถรันทดสอบโปรแกรมได

for a in range(1,10): print(a); test();

การจัดรูปแบบโครงสรางกลุมคําสั่งยอยของภาษา C ใชสัญลักษณ { } สําหรับกําหนดจุดเริ่มตนของคําสั่งยอย และกําหนดจุดสิ้นสุดภายใตคําสั่งหลัก for

การจัดรูปแบบโครงสรางกลุมคําสั่งยอยของ Python โดยอาศัยการจัดยอหนาแทนสัญลักษณ

Page 9: แผนการสอนหน วยที่ 2 โครงสร างและลักษณะการเขียนโปรแกรม · ภาพที่ 2.1 แสดงการเขียนโปรแกรมภาษา

9 โครงสรางและลักษณะการเขียนโปรแกรม

สําราญ วานนท์ | คอมพิวเตอร์ธุรกิจ

2. การใชงานสัญลักษณรวมกับขอความหลายบรรทัด (เมื่อใชสัญลัษณเพื่อกําหนดจุดเริ่มตนและจุดสิ้นสุดของขอความ ใหพิมพสัญลักษณอยางละ 3 เครื่องหมายตามตัวอยางตอไปนี ้ A = ‘’’This is my book. The cover is yellow color. Book owner write something.’’’ B = ““”นางสาวบีออกเดินทางไปเมืองที่แสนไกล ไกล แลวไกลออกไปเรื่อยๆ จนในที่สุด นางสาวบีก็ ...รออานตอฉบับตอไป””” 6. การใชเครื่องหมาย ( ), [ ], { } รวมกับตัวแปรหรือฟงกชัน Python จะการใชเครื่องหมาย ( ), [ ], { } สําหรับการเขียนผสมผสานรวมกับตัวแปร, คําสั่ง, ฟงกชันภายใน หรือบางกรณีก็ทําตัวเปนฟงกชันภายในแบบอัตโนมัติ โดยไมตองพิมพคําสั่ง ดวยความหลากหลายตอวิธีการนําไปใช และใหงายตอการทําความเขาใจ ผูเขียนจึงไดรวบรวมวิธีการเขียนสําหรับการใชงานไว 4 ประเภท ดังตอไปนี้ 1. ประเภทการใชเครื่องหมายรวมกับตัวแปร 2. ประเภทการใชเครื่องหมายรวมกับโพรซีเจอรหรือฟงกชัน 3. ประเภทการใชเครื่องหมายรวมกับคําสั่งหรือฟงกชันภายใน 4. ประเภทการใชเครื่องหมายที่ทําหนาที่เสมือนเปนฟงกชันภายในอัตโนมัต ิ 6.1 ประเภทการใชเครื่องหมายรวมกับตัวแปร โดยสวนใหญถามีการใชเครื่องหมายรวมกับตัวแปร ลักษณของตัวแปรเหลานั้นจะเปนประเภท Sequence (คลายตัวแปรอารเรยในภาษาอ่ืน) ดังตัวอยางตอไปนี ้ a = (1, 2, 3, 4) b = [‘TV’,’หลอดไฟ’,’ปลาทู’] c = {100: ’TV’, 200: ’หลอดไฟ’, 300: ’ปลาทู’} จากตัวอยางเปนการกําหนดคาตางๆ ลงในตัวแปรประเภท Sequence ซึ่งประกอบดวย 3 ชนิด ไดแก Tuple จะใชเครื่องหมาย ( ), List จะใชเครื่องหมาย [ ] และ Dictionary จะใชเครื่องหมาย { } ตัวอยางตอไปนี้เปนการใชเครื่องหมาย [ ] สําหรับการอานคาในตัวแปรประเภท Sequence ตัวอยาง print(a[2], b[1], c[300]) ผลลัพธ >>>3 หลอดไฟ ปลาทู

Page 10: แผนการสอนหน วยที่ 2 โครงสร างและลักษณะการเขียนโปรแกรม · ภาพที่ 2.1 แสดงการเขียนโปรแกรมภาษา

10 1046419 การเขียนโปรแกรมเชิงวัตถุเบื้องตน

สําราญ วานนท์ | คอมพิวเตอร์ธุรกิจ

6.2 ประเภทการใชเครื่องหมายรวมกับโพรซีเจอรหรือฟงกชัน ในการสรางโพรซีเจอรหรือฟงกชันในโมดูล จะมีการกํากับดวยเครื่องหมาย ( ) หลังชื่อโพรซีเจอรหรือฟงกชันที่สรางขึ้นมา โดยจะถูกนําไปใชสําหรับการผานคาอารกิวเมนต (Argument) ของโพรซีเจอรหรือฟงกชัน ดังแสดงตัวอยางตอไปนี ้ ตัวอยางท่ี 1 แสดงการสรางโพรซีเจอรหรือฟงกชันโดยไมมีตัวแปรอารกิวเมนต def showtime() : การสรางฟงกชัน showtime ตองมีเครื่องหมาย ( ) เสมอ a = 100 b = a + 10 กลุคําสั่งภายใน print(a, b) ตัวอยางท่ี 2 แสดงการสรางโพรซีเจอรหรือฟงกชันพรอมกับตัวแปรอารกิวเมนต def bookinfo(title, author) : a = 100 b = a + 10 print(title, a) print(b, author) นอกจากจะใชเครื่องหมาย ( ) สําหรับใชรวมกับการสรางโพรซีเจอรหรือฟงกชันแลว การเรียก โพรซีเจอรหรือฟงกชันเพื่อใชงานก็จําเปนตองมีเครื่องหมาย ( ) ตอทายชื่อขณะใชงาน ตามตัวอยางดังตอไปนี้ ตัวอยางท่ี 1 วิธีการเขียนโปรแกรมเรียกใชงานโพรซีเจอรหรือฟงกชันโดยไมมีคาอารกิวเมนต showtime ( ) ตองมีเครื่องหมาย ( ) เสมอ ตัวอยางท่ี 2 วิธีการเขียนโปรแกรมเรียกใชงานฟงกชันพรอมสงผานคาอารกิวเมนตใหกับฟงกชัน bookinfo (‘หนังสือชินจัง’, ’ชิโนก’ุ) 6.3 ประเภทการใชเครื่องหมายรวมกับคําสั่งหรือฟงกชันภายใน รูปแบบของคําสั่งหรือฟงกชันภายในภาษา Python วิธีการเขียนคําสั่งบางคําสั่งจะมีการใชเครื่องหมาย ( ), { } รวมกับคาตางๆ ที่ใชในคําสั่งนั้น ตามตัวอยางตอไปนี ้ ตัวอยางการใชเครื่องหมาย ( ) กับคําสั่ง print + คาที่ตองการแสดงบนจอภาพ print(‘My Name is Samran Wanon’) ตัวอยางการใชเครื่องหมาย ( ) กับคําสั่ง tolower + คาที่ตองการแปลงจากอักษรตัวใหญไปเปนอักษรตัวเล็ก a = tolower(‘COUNT’)

กําหนดตัวแปรอารกิวเมนตภายใน

เครื่องหมาย ( ) ของชื่อฟงกชันนี้

Page 11: แผนการสอนหน วยที่ 2 โครงสร างและลักษณะการเขียนโปรแกรม · ภาพที่ 2.1 แสดงการเขียนโปรแกรมภาษา

11 โครงสรางและลักษณะการเขียนโปรแกรม

สําราญ วานนท์ | คอมพิวเตอร์ธุรกิจ

ตัวอยางการใชเครื่องหมาย { } กับคําสั่ง format + คาที่ตองการจัดรูปแบบการแสดงคาตัวเลข print(‘{0} to {1}‘.format(100, ‘TV’)) 6.4 ประเภทการใชเครื่องหมายท่ีทําหนาที่เสมือนเปนฟงกชันภายในแบบอัตโนมัต ิ Python เปนภาษาที่ไดรับการปรับปรุงใหการเรียกใชฟงกชันภายในที่ใชงานบอยๆ งายมากขึ้น วิธีการเขียนหรือใชงานก็กระชับตอการทําความเขาใจและจดจํา ตามตัวอยางตอไปนี ้ ตัวอยางแสดงการใชเครื่องหมาย [ ] ที่ทําหนาที่แทนฟงกชันภายในรวมกับตัวแปร โดยการใชเครื่องหมาย [ ] ตอทายตัวแปรเสมือนการเรียกใชฟงกชันภายในที่ทําหนาที่ในการตัดคาหรือตัดคํา (เหมือน Sub String ในภาษาอื่น) กําหนดคาตัวแปร a = ‘This is my book’ print(a[1]) ผลลัพธที่ไดก็คือ ตัวอักษร h จะปรากฏบนจอภาพ ตัวอยางการใชเครื่องหมาย [ ] ที่ทําหนาที่แทนฟงกชันภายในรวมกับตัวแปรประเภท Sequence ผลลัพธที่ได คือ ตัวอักษร c จะปรากฏบนจอภาพ การใชเครื่องหมาย [0] ตอทาย a[1] หมายถึงการตัดตัวอักษรแรกของ a[1] ซึ่งคาใน a ตําแหนง ที่ 1 ก็คือ color 7. การใชงานเครื่องหมายคอมเมนต (Comment) การทํางานของถาษา Python ซึ่งเปนแบบ Interpreter ทําใหการประมวลผลคําสั่งทีละบรรทัดการใชคอมเมนตเพื่ออธิบายหมายเหตุตางๆ จึงตองใชเครื่องหมายคอมเมนตไดทีละบรรทัด โดยใชเครื่องหมาย # (Shape Sign) ตามตัวอยางตอไปนี ้

กําหนดตัวแปร a = [‘book’, ‘color’, ‘fan’] print(a[1][0])

0 1 2

ตัวอยางการใชเครื่องหมาย # สําหรับใสคําอธิบายหรือหมายเหตุ # sample python code บรรทัดที่จะไมทําการประมวลผลใดเนื่องจากมีการคอมเมนต a = 100 b = 20 # print(a, b) c = a * b # คูณตัวแปรทั้ง 2 ตัว print(c)

Page 12: แผนการสอนหน วยที่ 2 โครงสร างและลักษณะการเขียนโปรแกรม · ภาพที่ 2.1 แสดงการเขียนโปรแกรมภาษา

12 1046419 การเขียนโปรแกรมเชิงวัตถุเบื้องตน

สําราญ วานนท์ | คอมพิวเตอร์ธุรกิจ

8. Python กับการใชตัวอักษรตัวเล็กหรือใหญ (Case Sensitive) การเขียนโปรแกรมดวยภาษา Python จะตองใชความระมัดระวังเรื่องการใชตัวอักษรตัวเล็กหรืออักษรตัวใหญสําหรับการประกาศตัวแปร การเขียนคําสั่งภายใน การเรียกชื่อโพรซีเจอรหรือฟงกชั่น และอื่นๆ ดังนั้นจึงมีความจําเปนที่ตองใหความสนใจเมื่อมีการเรียกใชงาน มิฉะนั้นจะสงผลใหเกิดขอผิดพลาด (Error) เกี่ยวกับตัวอักษรตัวเล็กหรืออักษรตัวใหญระหวางใชงานขึ้นได 9. ทดลองเขียนโปรแกรมด้วยภาษา Python

ตัวอยางท่ี 1 ทดลองพิมพขอความลงใน Jupyter >>> “I got Python code” หลังจากพิมพขอความเสร็จสิ้นใหกดปุม Run หรือ Shift + Enter ผลลัพธที่ไดจาก ขอความดังกลาวขึ้นมาในบรรทัดถัดไป

ตัวอยางท่ี 2 ทดลองพิมพขอความหลายบรรทัดดวยเครื่องหมาย """ หรือ ''' >>> "My name is Samran Wanon"'

ตัวอยาง Case Sensitive # sample python a = 100 A = 20 ผลลัพธที่ไดก็คือ a != A

Page 13: แผนการสอนหน วยที่ 2 โครงสร างและลักษณะการเขียนโปรแกรม · ภาพที่ 2.1 แสดงการเขียนโปรแกรมภาษา

13 โครงสรางและลักษณะการเขียนโปรแกรม

สําราญ วานนท์ | คอมพิวเตอร์ธุรกิจ

ตัวอยางท่ี 3 ทดลองใชคําสั่ง print รวมกับขอความ สําหรับ windows: >>> print(‘My book is ok’) สําหรับ linux: >>> print ‘My book is ok’ โดยไมตองใสวงเล็บรวมกับฟงกชัน

ตัวอยางท่ี 4 แสดงการเชื่อมตอระหวางขอความตั้งแต 2 ขอความขึ้นไป >>> ‘Joe’ ‘Mary’ แสดงการเชื่อมตอดวยการเขียนแบบตอเนื่อง หรือ >>> ‘Joe’ + ‘ ‘ + ‘Mary’ แสดงการเชื่อมตอดวยเครื่องหมาย + กับขอความ 3 ขอความ หรือ ใชรวมกับคําสั่ง print >>> print(‘Joe’, ‘Mary’) แสดงการเชื่อมตอระหวาง 2 ขอความพรอมใชรวมกับคําสั่ง print

ตัวอยางท่ี 5 แสดงการใชคําสั่งตรวจสอบชนิดของขอมูล >>> type(100) ตรวจสอบคา 100 ใน Python ผลลัพธที่ไดจะบอกชนิดของคาท่ีตรวจสอบ <class ‘int’> >>> type(9999999) <class ‘int’> >>> type(3.143) <class ‘float’> >>> type(‘Joe’) <class ‘string’> >>> type(5+4) <class ‘complex’>

Page 14: แผนการสอนหน วยที่ 2 โครงสร างและลักษณะการเขียนโปรแกรม · ภาพที่ 2.1 แสดงการเขียนโปรแกรมภาษา

14 1046419 การเขียนโปรแกรมเชิงวัตถุเบื้องตน

สําราญ วานนท์ | คอมพิวเตอร์ธุรกิจ

ตัวอยางท่ี 6 ทดสอบการอางอิงโมดูลที่นํามาใชงาน กรณีที่ 1 การอางอิงโมดูลที่มีใชใน Python >>> import os ทดสอบการอางอิงโมดูลชื่อ os >>> จะไมปรากฏอะไรถา Python รูจักโมดุลชื่อ os

กรณีที่ 2 การอางอิงโมดูลที่ไมมีการติดตั้งใน Python >>> import mysql ทดสอบการอางอิงโมดูลชื่อ MySQL เพื่อทําการเชื่อมตอกับฐานขอมูล >>> จะมีขอความเกิด Error ปรากฏขึ้นเพื่อแจงเตือนการใชงานโมดูล

Page 15: แผนการสอนหน วยที่ 2 โครงสร างและลักษณะการเขียนโปรแกรม · ภาพที่ 2.1 แสดงการเขียนโปรแกรมภาษา

15 โครงสรางและลักษณะการเขียนโปรแกรม

สําราญ วานนท์ | คอมพิวเตอร์ธุรกิจ

ตัวอยางท่ี 7 แสดงการใชงานตัวแปรใน Python >>> a = 100 >>> b = 200 >>> c = a + b >>> print(a, b, c) พิมพคาในตัวแปร a, b, c รวมกับคําสั่ง print >>> print(‘a=%d b=%d c=%d’ %(a, b, c)) >>> type(a) <class ‘int’>

ตัวอยางท่ี 8 แสดงการใชคําสั่งลูปดวย Python >>> for a in range(1, 10): print(a) >>> 1 : : ผลลัพธที่เกิด >>> 9

สําหรับการใช Python ทดลองคําสั่งที่สามารถมีคําสั่งยอยภายในตัวของคําสั่งหลัก (สังเกตคําสั่งหลักที่สามารถมีกลุมคําสั่งยอยได มักจะนิยมใชเครื่องหมาย : (Colon) กอนจะเริ่มแบงยอหนาและกําหนดคําสั่งยอย) จะขึ้นบรรทัดใหมพรอมยอหนาใหอัตโนมัติเพื่อรอการพิมพคําสั่งยอย วิธีที่ Python จะรูวาคําสั่งยอยสิ้นสุดก็คือ บรรทัดสุดทายไมมีการพิมพใดๆ

พิมพคาในตัวแปร a, b, c พรอมกับขอความแบบผสมผสานกับคาในตัวแปรดวยคุณสมบัติของคําสั่ง print

Page 16: แผนการสอนหน วยที่ 2 โครงสร างและลักษณะการเขียนโปรแกรม · ภาพที่ 2.1 แสดงการเขียนโปรแกรมภาษา

16 1046419 การเขียนโปรแกรมเชิงวัตถุเบื้องตน

สําราญ วานนท์ | คอมพิวเตอร์ธุรกิจ

ตัวอยางท่ี 9 แสดงการใชคําสั่งแปลงชนิดของคาในตัวแปร >>> a = ‘100’ # กําหนด 100 แบบ String ใหกับตัวแปร a >>> b = int(a) # ใชคําสั่งฟงกชัน int สําหรับแปลงคาจากชนิด String ใหเปนชนิด int >>> type(b) <class ‘int’> >>> type(a) <class ‘string’>

ตัวอยางท่ี 10 แสดงการใชคําสั่งเกี่ยวกับการแปลงเลขฐาน >>> a = 255 >>> hex(a) >>> bin(a) >>> oct(a) หรือใชรวมกับคําสั่ง print >>> print(‘%x’ %a) # ใชตัวอักษร x หรือ x สําหรับเลขฐานสิบหก (hex) >>> print (‘%o’ %a) # ใชตัวอักษร o หรือ o สําหรับเลขฐานแปด (oct)

ตัวอยางท่ี 11 ทดลองเขียนคําสั่งดวยรูปแบบไฟลโปรแกรม เมื่อพูดถึงรูปแบบการเขียนโปรแกรมที่เหมาะตอการพัฒนางานจริงแลว การเขียนคําสั่งทั้งหลายควรจะอยูเปนที่เปนทาง งายตอการทํางานอยางตอเนื่องและคนหาไดงาย ซึ่งก็เปนไปตามแนวของการเขียนโปรแกรมดวยเครื่องมือพัฒนาโปรแกรม ที่จัดเก็บในรูปของไฟลซอรสโคด โดยไฟลซอรสโคดตองมีนามสกุลเปน

Page 17: แผนการสอนหน วยที่ 2 โครงสร างและลักษณะการเขียนโปรแกรม · ภาพที่ 2.1 แสดงการเขียนโปรแกรมภาษา

17 โครงสรางและลักษณะการเขียนโปรแกรม

สําราญ วานนท์ | คอมพิวเตอร์ธุรกิจ

.py สวนจะเก็บในโฟสเดอรไหนก็ได โดยไมจําเปนตองเก็บไวที่เดียวกันกับโฟลเดอรที่ Python ติดตั้งอยู ตอไปนี้เปนการทดลองสรางไฟลซอรสโคดดวย Editor

หลังจากการพัฒนาโปรแกรมเรียบรอยแลวใหทําการบันทึกโคดไวในรูปแบบของไฟล โดยไปที่เมนู File> Download as> Python (.py) ถาเราจะนําโคดที่ไดพัฒนาแลวไปใชงานที่เครื่องอื่น ก็สามารถทําการ Upload โคดที่เราไดบันทึกไวกอนหนานี้ และนํามาใชงานหรือพัฒนาตอไดเลย

การเรยีกไฟลที่ไดบันทึกไวใหทําการประมวลผล (Run) โดยการเรียกผานคําสั่ง %run your_folder/file_name.py

ถาได upload ไฟลเรียบรอยแลวสามารถจะเรียกประมวลผลไดโดยไมตองกําหนดพาธไฟล (File Path) ก็ไดตัวอยางเชน

Page 18: แผนการสอนหน วยที่ 2 โครงสร างและลักษณะการเขียนโปรแกรม · ภาพที่ 2.1 แสดงการเขียนโปรแกรมภาษา

18 1046419 การเขียนโปรแกรมเชิงวัตถุเบื้องตน

สําราญ วานนท์ | คอมพิวเตอร์ธุรกิจ

ตัวอยางที่ 12 ทดลองเขียนคําสั่งโปรแกรมหลัก โปรแกรมยอย

10. สรุปทายบทท ในบทนี้ผูอานไดทราบถึง 1) รูปแบบโครงสรางและลักษณะการเขียนโปรแกรมดวยภาษาไพธอน 2) การใชคําสั่งอางอิงโมดูลมาตรฐาน โมดูลเพิ่มเติ่มพิเศษ และ 3) การเขียนคําสั่งหลัก คําสั่งยอย การใชเครื่องหมายตาง สําหรับคําสั่งโปรแกรม รวมไปถึงการเขียนหมายเหตุของโปรแกรมเพื่ออธิบายเพิ่มเติ่มในการเขียนโปรแกรม เอกสารอางอิง

สุพจน สงาทอง และปยะ นากสงค. (2561). การเขียนโปรแกรมภาษา Python. รีไววา : กรุงเทพฯ.

ณัฐวัตร คําภักดี. (2561). คูมือเขียนโปรแกรมดวยภาษาไพธอน. โปรวิชั่น : กรุงเทพฯ.

โชติพันธุ หลอเลิศสุนทร. (2554). คูมือเรียน เขียนโปรแกรมดวยภาษา Python (ภาคปฏิบัติ). คอรฟงกชั่น : กรุงเทพฯ.