บทที่3
โครงสร้างการเขียนโปรแกรมภาษาไพธอน
สวัสดีชาวโลก หรือ Hello World
• โปรแกรมแรกจะต้องเริ่มต้นด้วย “สวัสดีชาวโลก หรือ Hello World” ถ้าไม่คิดไร
มาก็ดูเรียบง่านดี แต่ในมุมของผู้เขียนมันมีนัยสาคัญแขวนอยู่หลายประการ
: ประการแรก ผู้เขียนโปรแกรมที่เป็นมือใหม่ ยังไม่ทักษะในการเขียน
โปรแกรมมาเลย จะต้องเรียนรู้ภาษาใหม่ ต้องใช้เวลา
: ประการที่สอง โดยปกติเมื่อติดตั้งโปรแกรมแปลภาษาใหม่ในเครื่อง
คอมพิวเตอร์จึงต้องจาเป็นต้องมีการทดสอบก่อนว่า ภาษาที่ติดตั้งลงไปใหม่นั้น
สามารถทางานได้หรือไม่
:ประการสุดท้าย เหมือนจะเป็นวฒนธรรมที่ฝังรากลึกในจิตใจของทุกๆคนบนโลกนี้
ไปแล้ว เมื่อเราเจอกันครั้งแรกจะต้องมีการทักทายกันก่อนเสมอ เช่น สวัสดี Hello
เป็นต้น ดังนั้นการใช้คาสาคัญว่า สวัสดีชาวโลก หรือ Hello World ก็เปรียบเสมือนเป็น
การทักทายกันระหว่างภาษาคอมพิวเตอร์กับผู้เขียนโปรแกรมหน้าใหม่ที่เพิ่งเจอกัน
เป็นครั้งแรกเช่นเดียวกัน
โครงสร้างการเขียนโปรแกรมไพธอน
• โดยปกติของภาษาโปรแกรมทั่วๆไป ทุกๆโปรแกรมจะมีฟังก์ชันหลักเรียกว่า Main
function เสมอ ยกตัวอย่างในโปรแกรมภาษาซี ต่อไปนี้
Void doit ( int x ) (x = 5; )
Int main ( ) {
int z = 27;
doit (z) ;
fprintf (‘z is now % dn’, z);
return 0; }
• จากตัวอย่างโปรแกรมภาษาซี จะมีฟังก์ชัน main เป็นฟังก์ชันที่ควบคุม
การทางานของคาสั่ง และฟังก์ชันย่อยอื่นๆในโปรแกรมเสมอ แต่สาหรับ
ไพธอนไม่จาเป็นต้องมีฟังก์ชัน main ก็ได้แต่ถ้าผู้เขียนโปรแกรม
ต้องการใช้งานฟังก์ชัน main ก็สามารถทาได้แต่ไพธอนมองว่าฟังก์ชัน
main เป็นเพียงฟังก์ชันทั่วๆไป ไม่ได้มีความหมายเหมือนอย่างในภาษา
ระดับสูงอื่นๆ เช่น C/C++ หรือ Java เป็นต้น
• โครงสร้างภาษาการเขียนโปรแกรมไพธอน
ขอบเขต ตัวอย่างโปรแกรมไพธอน ความหมาย
1 #!/usr/bin/python
คอมเมนต์ หรือการประกาศ
ตัวแปลภาษา
2
Import sys, getopt
นาเช้าไลบารี่ หรือคลาสของ
ไพธอนมาใช้งาน
3
Def display () :
print(“python programming”)
Def main () :
print (“I’m the Main function”)
display ()
If _name_==“_main_”:
main ()
ประกาศตัวตัวแปร ฟังก์ชัน
และคาสั่งควบคุมต่างๆ
รวมถึงฟังก์ชัน main ด้วย
• ไวยกรณ์พื้นฐานที่จาเป็นอย่างยิ่งต้องจดจา
• ไวยกรณ์ต่างๆ ที่จะกล่าวต่อไปนี้ จะต้องจดจาและท่องให้ขึ้นใจ เพราะมันจะทาให้
การเขียนโปรแกรมไม่มีอุปสรรค
• 1. case sensitivity:
การบังคับใช้ตัวเล็ก/ตัวใหญ่หมายถึง ความแตกต่างระหว่างการใช้ตัวใหญ่และ
ตัวเล็กของตัวอักษรในภาษาอังกฤษ โปรแกรมบางโปรแกรมหรือระบบบางระบบ
จะบังคับว่า ต้องใช้ตัวใหญ่ทั้งหมด หรือตัวเล็กทั้งหมด มิฉะนั้นเครื่องจะไม่เข้าใจ
เช่น ชื่อโปรแกรมภาษาฟอร์แทรน (FORTRAN) หรือ ระบบยูนิกซ์ (UNIX) จะ
บังคับให้ใช้ตัวใหญ่เท่านั้น ส่วนระบบดอสและวินโดว์ไม่บังคับ กล่าวคือ ใช้ตัวเล็ก
ก็ได้ตัวใหญ่ก็ได้
• space and tabs don't mix: ไพธอนมองว่า space และ tabs มีความหมายไม่เหมือนกันดังนั้นเวลา
เขียนโปรแกรม อย่าผสมระหว่าง spaceและ tabe เข้าด้วยกันให้เลือกเอาอย่างใดอย่างหนึ่งเท่านั้น
• Opjects (วัตถุ หรือเรียกทับศัพท์ว่าอ๊อปเจ็กต์):ไพธอนถูกสร้างขึ้นภายใต้แนวคิดการโปรแกรม
เชิงวัตถุ ดังนั้นเมื่อเราเรียกใช้งาน คลาสใดๆก็ตามถือว่าเป็นวัตถุตามแนวคิดความคิดแบบ
โปรแกรมเชิงวัตถุ
• Scope : ในการพัฒนาโปรแกรมขนาดใหญ่ ที่มีโปรแกรมเมอร์มากกว่า1คน อาจจะประสบปัญหา
เรื่องการประกาศตัวแปรที่ซ้ากันได้ดังนั้นเพื่อให้การเข้าถึงและใช้งานตัวแปรเป็นอย่างถูกต้อง
โดยไม่มีข้อผิดพลาด
• Namespaces: คือพื้นที่ที่ใช้เก็บตัวแปรของระบบที่สร้างไว้ให้เราโดยที่เราไม่รู้ และตัวแปรต่างๆ ที่
เราสร้างขึ้นมาที่หลัง เราสามารถขอดูข้อมูลที่เก็บอยู่ใน Namespacesได้โดยใช้คาสั่ง dir() ซึ่งเป็น
built-in function ที่มีอยู่ในไพธอนซึ่งถ้าเรายังไม่ได้ประกาศตัวแปร หรือฟังก์ชันใดๆใน
โปรแกรมจะปรากฏรายการของตัวแปรที่ระบบสร้างไว้ให้ 6 ตัว คือ
‘_builtins_’, ‘_doc_’, ‘_file_’,‘_loader_’, ‘_name_’, ‘_package_’
• Colons: ไพธอนตัดเครื่องหมายแสดงขอบเขตของข้อมูล {…} ทิ้งไป แล้วใช้: ร่วมกับการเขียน
โปรแกรมด้วยการย่อหน้าแทน โดยเริ่มจากคอลัมภ์ที่ 1 เสมอดังนั้นอย่าลืม : คาสั่ง if, for,
while,def เป็นอันขาด
• Blank lines : เมื่อจาเป็นต้องเขียนคาสั่งที่มีความหมายยาวๆมาก ไม่หมดใน1บรรทัด ให้ใช้
เครื่องหมายหมาย  ตามด้วย enter
• Lines and lndentation : ไพธอนไม่ใช้เครื่องหมาย{…} ในการกาหนดขอบเขต
เหมือนในภาษาซี ไพธอนใช้การเยื้อง หรือย่อหน้าหน้าแทน ดังนั้นผู้เขียนโปรแกรมจะต้องระวัง
การเยื้องหน้าให้ดี
• Multi-line statements: แต่ละคาส่งของไพธอนส่วนใหญ่จบลงด้วยการขึ้นบรรทัด
ใหม่(new line) แต่ผู้เขียนโปรแกรมสามารถใช้เครื่องหมาย  เพื่อเชื่อมคาสั่งได้
• Quotation in python :ไพธอนใช้เครื่องหมาย ‘(single quote), “(double
duote) ในการแสดงค่าของสตริง แต่เครื่องหมาย”””(triple quote) สามารถใช้เชื่อ
ต่อสตริงแบบหลายๆบรรทัดได้
• Waiting for the user: บ่อยครั้งที่ผู้เขียนโปรแกรมต้องการให้โปรแกรมหยุดรอก่อน
โปรแกรมทางานเสร็จ โดยขึ้นข้อความว่า “press the enter key to exit.” สามารถ
ใช้ nn ใส่ไว้ก่อนข้อความ
• Multiple statements on a single line : ผู้เขียนโปรแกรมสามารถใช้
เครื่องหมาย ; เพื่อสั่งให้สามารถรันหลายๆคาสั่งได้ในบรรทัดเดียวกันได้
การเปลี่ยนรูปแบบการแสดงผล
• การเปลี่ยนแปลงรูปแบบการแสดงผล จะใช้เครื่องหมายเปอร์เซ็นต์(%) เพื่อทา
หน้าที่ควบคุมการแสดงผลตามรูปแบบที่ผู้เขียนคาสั่งกาหนด เช่นเดียวกับการใช้
ฟังก์ชัน printf() ในภาษาซี ที่สามารถใช้เครื่องหมาย % เพื่อควบคุมการแสดงผล
ข้อมูลต่าง ๆ ได้เช่น การกาหนดจานวนจุดทศนิยม การเปลี่ยนจานวนตัวเลขเป็น
ข้อความ
• 1. การกาหนดจานวนจุดทศนิยม
การกาหนดจุดทศนิยม เป็นการกาหนดจานวนจุดทศนิยมตามต้องการเพื่อการสะดวกในการ
อ่านหรือการพิมพ์ออกกระดาษ ดังตัวอย่างต่อไปนี้
ภาพที่ 2.18 แสดงตัวอย่างคาสั่งการแสดงผลตัวเลขทศนิยม
จากภาพที่ 2.18 คาสั่ง print '%.3f' % pi เป็นการกาหนดว่าต้องการแสดงผล 3 ตาแหน่ง โดยปัดเศษ
ทศนิยมตามหลักคณิตศาสตร์ ในขณะเดียวกันเราสามารถกาหนดจานวนหลักของเลขจานวนเต็ม
ได้แต่ถ้าลดจานวนหลักผลที่ได้จะผิดพลาด จึงนิยมใช้ในการเพิ่ม ในการเพิ่มจะไม่เพิ่มเลข 0 ไป
ข้างหน้าแต่เป็นการเพิ่มจานวนช่องว่าง เมื่อเขียนคาสั่ง print '%10.3f' % pi จึงเห็นว่าตัวเลข 3.143
ขยับไปด้านหลัง 3 ตาแหน่ง ทั้งนี้ตัวเลข 10 หมายถึง ตัวเลขตัวสุดท้ายจะอยู่ที่ตาแหน่งสดมภ์ที่
10
>>> pi = 22.0/7.0
>>> print pi
3.14285714286
>>> print '%.3f' % pi
3.143
>>> print '%10.3f' % pi
3.143
• 2. การเปลี่ยนการแสดงผลตัวเลขและข้อความ
การเปลี่ยนการแสดงผลตัวเลขและข้อความ เป็นการเปลี่ยนชนิดข้อมูลเพื่อให้การจัดการแสดงผลข้อมูลได้
ง่าย ยิ่งขึ้น ให้พิจารณาจากตัวอย่างต่อไปนี้
• ภาพที่ 2.19 แสดงตัวอย่างคาสั่งการ
แสดงผลตัวเลขและข้อความ
จากภาพที่ 2.19 แสดงการควบคุมการแสดงผล
ข้อความด้วยเครื่องหมาย % ผสมด้วยรูปแบบ
เช่น 3d เป็นการกาหนดให้แสดงผล 3 หลัก โดย
ให้จัดชิดขวา แต่ถ้า -3d
ให้แสดงผลสามหลักเช่นกัน แต่จัดชิดซ้าย
ถ้าเป็น 03d จะเป็นการเพิ่มเลข 0 ด้านหน้า
ถ้า +d เป็นการเพิ่มเครื่องหมาย + ด้านหน้า
แต่ถ้าต้องการใส่เครื่องหมาย –
ที่ข้อมูลต้องใส่เครื่องหมายที่ข้อมูลตัวเลขแทน
สาหรับการประยุกต์ใช้เช่น
กรณีวันเดือนปี หรือวันที่ในปฏิทิน เป็นต้น
>>> '%d' % 65
'65'
>>> '%3d' % 65
' 65'
>>> '%-3d' % 65
'65 '
>>> '%03d' % 65
'065'
>>> '%+d' % 65
'+65'
>>> '%+d' % -65
'-65'
>>> DateOfBirth = 5,4,1990
>>> print "วัน เดือน ปีเกิด : %02d/%02d/%d" % DateOfBirth
วัน เดือน ปีเกิด : 05/04/1990
• 3. การใช้เครื่องหมายพิเศษ
การใช้เครื่องหมายพิเศษเพื่อควบคุมการแสดงผล ในภาษาไพธอนจะใช้เครื่องหมาย  ร่วมกับ
ตัวอักษรอื่น ๆ เช่น n เป็นต้น ให้พิจารณาตัวอย่างต่อไปนี้
ภาพที่ 2.20 แสดงตัวอย่างคาสั่งการใช้เครื่องหมายพิเศษ
>>> print "Hello nWorld"
Hello
World
>>> print "Hello 012World !!!"
Hello
World !!!
>>> print "รหัสนักศึกษา : %s ชื่อ : %s "
%("494244007","สมชาย เข็มทอง")
รหัสนักศึกษา : 494244007ชื่อ : สมชาย เข็มทอง
>>> print "รหัสนักศึกษา : %s ชื่อ : %s "
%("494244007","สมชาย เข็มทอง")
รหัสนักศึกษา : 494244007ชื่อ : สมชาย เข็มทอง
• จากภาพที่ 2.20 แสดงการใช้เครื่องหมาย  เพื่อควบคุมการแสดงผล เช่น n เป็นการสั่งเพื่อให้
ขึ้นบรรทัดใหม่ หรือจะใช้ตัวเลขฐานแปดก็มีความหมายเดียวกัน ในกรณีที่ต้องการพิมพ์คาสั่ง
หลายบรรทัดภาษาไพธอนให้ใช้เครื่องหมาย  เช่นกัน นอกจากคาสั่งที่แสดงให้เห็นตามตัวอย่าง
แล้ว ยังมีการควบคุมด้วยอักขระอื่น ๆ ดังตารางต่อไปนี้
• ตารางที่ 2.1 แสดงเครื่องหมายพิเศษสาหรับควบคุมการแสดงผล
ESCAPE
CHARACTER
NAME DECIMAL OCTAL
n Newline 10 012
t Horizontal Tab 9 011
b Back space 8 010
0 Null character 0 000
a Bell 7 007
v Vertical tab 11 013
r Carriage
return
13 015
e Escape 27 033
” Double quote 34 042
’ Single quote 39 047
f Form feed 12 014
 Backslash 92 134
1.4 นิพจน์
• นิพจน์ (Expression) คือ ข้อกาหนดที่ใช้ในการคานวณหาค่าต่าง ๆ ยกตัวอย่างง่าย ๆ ที่เห็นได้ชัดก็
อย่างเช่นสูตรคณิตศาสตร์ต่าง ๆ ซึ่งสูตรเหล่านั้นจะประกอบไปด้วยโอเปอร์แรนด์ (Operand) โอเปอร์
แรนด์คือ ตัวแปร หรือค่าคงที่ หรือฟังก์ชันต่าง ๆ มาคานวณอาจจะมีตั้งแต่หนึ่งตัวหรือมากว่า โดยการใช้
โอเปร์เรเตอร์ (Operator) ซึ่งเป็นสัญลักษณ์ที่ใช้ในการคานวณหรือเปรียบเทียบทางคณิตศาสตร์มาเป็น
ตัวเชื่อมของโอเปอร์แรนด์ ตัวอย่างเช่น บวก (+) ลบ (-) คูณ (*) หาร (/) เป็นต้น เพื่อจะเป็นการเข้าใจ
นิพจน์ดียิ่งขึ้นให้พิจารณาจากสูตรการหาพื้นที่ของวงกลมต่อไปนี้คือ p * radius * radius
Expression คือ p * radius * radius
Operand มี 2 ตัว คือ
Variable (ตัวแปร) คือ radius
Constant (ค่าคงที่) คือ p
Operator คือ *
• ตารางที่ 1.5 สัญลักษณ์ทางคณิตศาสตร์ที่ใช้ในการคานวณในภาษาไพธอน
สัญลักษณ์ การคานวณ ตัวอย่าง อธิบาย
+ บวก (Addition) x = y + z นาค่าในตัวแปร y บวกด้วยค่าในตัว
แปร z นาผลลัพธ์เก็บในตัวแปร x
- ลบ (Subtraction) x = y - z นาค่าในตัวแปร y ลบด้วยค่าในตัว
แปร z นาผลลัพธ์เก็บในตัวแปร x
* คูณ (Multiplication) x = y * z นาค่าในตัวแปร y คูณด้วยค่าในตัว
แปร z นาผลลัพธ์เก็บในตัวแปร x
/ หาร (Division) x = y / z นาค่าในตัวแปร y ตั้งหารด้วยค่าใน
ตัวแปร z นาผลลัพธ์เก็บในตัว
แปร x
% หารเอาเศษ (modulo) x = y % z นาค่าในตัวแปร y หารด้วยค่าในตัว
แปร z นาเศษที่ได้เก็บในตัวแปร x
** ยกกาลัง x = y ** z นาค่าในตัวแปร y คูณยกกาลังด้วย
ค่าในตัวแปร zนาผลลัพธ์เก็บในตัว
แปร x
// หารปัดเศษ x = y // z นาค่าในตัวแปร y ตั้งแล้วหารด้วยตัว
แปร z ผลลัพธ์เก็บในตัวแปร y
ผลลัพธ์ปัดเศษทิ้ง เช่น 5/2 คาตอบคือ
2
• จากตารางที่ 1.5 จะเห็นได้ว่าสัญลักษณ์ที่ใช้คานวณในภาษาไพธอนจะมีอยู่ 6 ตัวด้วยกัน
คือ บวก ลบ คูณ หาร หารเอาเศษยกกาลังและหารไม่ปัดเศษ ซึ่งการคานวณจะขึ้นอยู่กับชนิด
ของตัวแปรว่าเป็นชนิดข้อมูลแบบใดที่มากระทาต่อกัน ซึ่งผลที่ได้เมื่อคานวณเสร็จแล้วอาจจะ
เป็นชนิดข้อมูลแบบเดิมหรืออาจจะกลายเป็นชนิดข้อมูลตัวใหม่ก็ได้ ซึ่งการคานวณแต่ละตัวจะ
มีวิธีการคานวณดังตัวอย่างต่อไปนี้
• การบวก (Addition)
integer + integer = integer เช่น 5 + 2 = 7
float + integer = float เช่น 5.5 + 2 = 7.5
integer + float = float เช่น 2 + 5.5 = 7.5
float + float = float เช่น 2.5 + 4.2 = 6.7
• การลบ (Subtraction)
integer - integer = integer เช่น 6 - 1 = 5
float - integer = float เช่น 3.3 - 3 = 0.3
integer - float = float เช่น 3 - 3.3 = -0.3
float - float = float เช่น 1.5 - 2.7 = -1.2
• การคูณ (Multiplication)
integer * integer = integer เช่น 4 * 3 = 12
float * integer = float เช่น 2.7 * 1 = 2.7
integer * float = float เช่น 1 * 2.7 = 2.7
float * float = float เช่น 3.2 * 2.4 = 7.68
• การหาร (Division)
integer / integer = integer เช่น 5 / 2 = 2
float / integer = float เช่น 3.2 / 2 = 1.6
integer / float = float เช่น 2 / 3.2 = 0.625
float / float = float เช่น 2.5 / 1.5 = 1.67
• การหารเอาเศษ (Remainder)
integer % integer = integer เช่น 5 % 2 = 1
• นิพจน์ทางตรรกศาสตร์ (Boolean Logical Expression) เป็นนิพจน์ที่แสดงความสัมพันธ์ของการ
เปรียบเทียบ โดยการใช้ตัวเชื่อมด้วยโอเปอร์เรเตอร์ในการเปรียบเทียบเช่น มากกว่า น้อย
กว่า เท่ากับ ไม่เท่ากับ เป็นต้น และยังมีสัญลักษณ์ทางตรรกศาสตร์ซึ่งได้แก่ and or not ที่ใช้
เปรียบเทียบเงื่อนไขที่มีมากกว่าหนึ่งเงื่อนไข
• ตารางที่ 1.6 สัญลักษณ์เปรียบเทียบทางคณิตศาสตร์
เครื่องหมาย ความหมาย
==
>
<
<=
>=
<>, !=
เท่ากับ
น้อยกว่า
มากกว่า
น้อยกว่าหรือเท่ากับ
มากกว่าหรือเท่ากับ
ไม่เท่ากับ
• ตารางที่ 1.7 เปรียบเทียบตรรกะทางคณิตศาสตร์
เงื่อนไข 1 เงื่อนไข 2 not 1 1 and 2 1 or 2
T
T
F
F
T
F
T
F
F
F
T
T
T
F
F
F
T
T
T
F
ลาดับการกระทาของเครื่องหมาย
• นิพจน์ที่ใช้ในการคานวณอาจมีเครื่องหมายการคานวณ เช่น + - * / หรือการเปรียบเทียบเงื่อนไขต่าง ๆ จะต้องมี
เครื่องหมายที่ใช้ในการเปรียบเทียบ ให้ถูกต้องตรงกับหมายของการทางาน และผู้เขียนคาสั่งโปรแกรมต้องทราบ
ลาดับการทางานของเครื่องหมายในแต่ละเครื่องหมายว่าเครื่องหมายใดจะประมวลผลก่อนหรือหลัง
• ตารางที่ 1.8 ลาดับการคานวณของเครื่องหมายในภาษาไพธอน
ลาดับ เครื่องหมาย ความหมาย
1 ** ยกกาลัง
2 *, /, % คูณ หาร หารเอาเศษ
3 +, - บวก ลบ
4 <, <=, >, >=, <>, !=, == น้อยกว่า น้อยกว่าหรือเท่ากับ
มากกว่า
มากกว่าหรือเท่ากับ ไม่เท่ากับ ไม่
เท่ากับ เท่ากับ
5 not บูลีนไม่
6 and บูลีนและ
7 or บูลีนหรือ
การรับข้อมูลจากแป้ นพิมพ์
• ภาษาไพธอนได้กาหนดให้มีคาสั่งเพื่อรับข้อมูลจากผู้ใช้ พิมพ์ข้อมูลจากแป้นพิมพ์ เข้าสู่
หน่วยความจา ได้ 2 ประเภท ได้แก่ ข้อมูลประเภทตัวเลข และข้อมูลประเภทตัวอักขระหรือสาย
อักขระ
1. การป้อนข้อมูลเพื่อรับค่าตัวเลข
การรับข้อมูลจากแป้นพิมพ์เป็นการนาเข้าข้อมูล เฉพาะข้อมูลประเภทตัวเลขเท่านั้นรูปแบบ
คาสั่ง ได้แก่
<variable> = input("text") เช่น
number = input("กรุณาป้อนจานวนนักศึกษา : ")
การทางานของคาสั่ง จะแสดงข้อความ "กรุณาป้ อนจานวนนักศึกษา : " ถ้าผู้ใช้ป้ อนตัวเลขจานวน
ใด ๆ แล้วกดปุ่ม Enter ตัวเลขค่านั้นจะจัดเก็บอยู่ในตัวแปร number หลังจากนั้นนาตัว
แปร number ไปใช้ในคาสั่งใด ๆ เพื่อการคานวณได้
• 2. การป้ อนข้อมูลเพื่อรับค่าตัวอักขระ
• การรับข้อมูลจากแป้นพิมพ์เป็นการนาเข้าข้อมูลจากผู้ใช้อีกกรณีหนึ่ง แต่เหมาะสาหรับ
ตัวอักขระหรือสายอักขระเท่านั้น เช่น ชื่อ นามสกุล ที่อยู่เป็นต้น มีรูปแบบดังนี้
<variable> = raw_input(" text") เช่น
name = raw_input("กรุณาป้อนชื่อนักศึกษา : ")
การทางานของคาสั่งนี้มีความหมายเดียวกับคาสั่งการรับค่าตัวเลข คือ ข้อมูลที่ถูกป้ อนโดยผู้ใช้ จะ
เก็บไว้ในตัวแปรname แล้วนาตัวแปร name ไปใช้เพื่อประมวลผลคาสั่งอื่น ๆ ได้ต่อไป แต่
ถ้าผู้เขียนโปรแกรมเขียนคาสั่งรับค่าผิดไป หรือในกรณีที่ผู้ป้ อนข้อมูลป้ อนผิดพลาด จะเกิด
ข้อผิดพลาด เกิดขึ้นได้ ดังกรณีต่อไปนี้
• ภาพที่ 2.13 แสดงคาสั่งเพื่อรับการป้ อนข้อมูลที่ไม่ถูกต้อง
>>> inp = input("กรุณาป้อนรายชื่อ : ")
กรุณาป้อนรายชื่อ : ทวีรัตน์
Traceback (most recent call last):
File "<pyshell#16>", line 1, in <module>
inp = input("กรุณาป้อนรายชื่อ : ")
File "<string>", line 1, in <module>
NameError: name 'ทวีรัตน์' is not defined
• จากภาพที่ 2.13 สาเหตุที่โปรแกรมไพธอน รายงานข้อผิดพลาดเพราะผู้เขียนคาสั่ง ต้องการรับ
ข้อมูลประเภทตัวเลข แต่ผู้ใช้ป้อนข้อมูลประเภทสายอักขระเข้าไป ซึ่งไพธอนจะกาหนดให้ผู้
ป้อนต้องป้อนตัวเป็นตัวเลขเท่านั้น วิธีแก้ปัญหาเหล่านี้สามารถแก้ปัญหาได้โดยการใช้
คาสั่ง raw_input แทน input ทุกกรณีได้ เพียงแต่ไปเปลี่ยนชนิดตัวแปรเดิมด้วย
ฟังก์ชัน intเช่น
input_no = raw_input("กรุณาป้อนจานวนตัวเลข : ")
กรุณาป้อนจานวนตัวเลข : 123
input_no = int(input_no)
อ้างอิง
• http://python.cmsthailand.com/basic_python.html#top
• http://www.amplysoft.com/knowledge/hello-world-django-
framework.html
• https://python3.wannaphong.com/2015/06/ฟังก์ชัน-พื้นฐานในภาษา-
python-1.html
• https://python3.wannaphong.com/2015/02/ข้อมูลชนิดสตริง-
string-python.html
• https://sites.google.com/site/dotpython/input-and-
output/conv_disp
• https://sites.google.com/site/dotpython/installation/operator
• https://sites.google.com/site/dotpython/input-and-output/2-
2-list
สมาชิก
• นายณัฐวัตร ปฐมวราวุฒิ ม.6/4 เลขที่3
• นายธีระพงษ์ นันเขียว ม.6/4 เลขที่7
• นางสาวกิ่งฉัตร แสงทองดี ม.6/4 เลขที่8
• นางสาวญาณิศา กุ้ยอ่อน ม.6/4 เลขที่9
• นางสาวธันยพร ปัจศรี ม.6/4 เลขที่10
• นางสาววิริญญา เพชรบูรณกาญจน์ ม.6/4 เลขที่11
• นางสาวพิมพ์ผกา ไพรวัลย์ ม.6/4 เลขที่14
• นางสาวณิชมน อักษร ม.6/4 เลขที่24

โครงสร้างการเขียนโปรแกรมภาษาไพธอน

  • 1.
  • 2.
    สวัสดีชาวโลก หรือ HelloWorld • โปรแกรมแรกจะต้องเริ่มต้นด้วย “สวัสดีชาวโลก หรือ Hello World” ถ้าไม่คิดไร มาก็ดูเรียบง่านดี แต่ในมุมของผู้เขียนมันมีนัยสาคัญแขวนอยู่หลายประการ : ประการแรก ผู้เขียนโปรแกรมที่เป็นมือใหม่ ยังไม่ทักษะในการเขียน โปรแกรมมาเลย จะต้องเรียนรู้ภาษาใหม่ ต้องใช้เวลา : ประการที่สอง โดยปกติเมื่อติดตั้งโปรแกรมแปลภาษาใหม่ในเครื่อง คอมพิวเตอร์จึงต้องจาเป็นต้องมีการทดสอบก่อนว่า ภาษาที่ติดตั้งลงไปใหม่นั้น สามารถทางานได้หรือไม่ :ประการสุดท้าย เหมือนจะเป็นวฒนธรรมที่ฝังรากลึกในจิตใจของทุกๆคนบนโลกนี้ ไปแล้ว เมื่อเราเจอกันครั้งแรกจะต้องมีการทักทายกันก่อนเสมอ เช่น สวัสดี Hello เป็นต้น ดังนั้นการใช้คาสาคัญว่า สวัสดีชาวโลก หรือ Hello World ก็เปรียบเสมือนเป็น การทักทายกันระหว่างภาษาคอมพิวเตอร์กับผู้เขียนโปรแกรมหน้าใหม่ที่เพิ่งเจอกัน เป็นครั้งแรกเช่นเดียวกัน
  • 3.
    โครงสร้างการเขียนโปรแกรมไพธอน • โดยปกติของภาษาโปรแกรมทั่วๆไป ทุกๆโปรแกรมจะมีฟังก์ชันหลักเรียกว่าMain function เสมอ ยกตัวอย่างในโปรแกรมภาษาซี ต่อไปนี้ Void doit ( int x ) (x = 5; ) Int main ( ) { int z = 27; doit (z) ; fprintf (‘z is now % dn’, z); return 0; }
  • 4.
    • จากตัวอย่างโปรแกรมภาษาซี จะมีฟังก์ชันmain เป็นฟังก์ชันที่ควบคุม การทางานของคาสั่ง และฟังก์ชันย่อยอื่นๆในโปรแกรมเสมอ แต่สาหรับ ไพธอนไม่จาเป็นต้องมีฟังก์ชัน main ก็ได้แต่ถ้าผู้เขียนโปรแกรม ต้องการใช้งานฟังก์ชัน main ก็สามารถทาได้แต่ไพธอนมองว่าฟังก์ชัน main เป็นเพียงฟังก์ชันทั่วๆไป ไม่ได้มีความหมายเหมือนอย่างในภาษา ระดับสูงอื่นๆ เช่น C/C++ หรือ Java เป็นต้น
  • 5.
    • โครงสร้างภาษาการเขียนโปรแกรมไพธอน ขอบเขต ตัวอย่างโปรแกรมไพธอนความหมาย 1 #!/usr/bin/python คอมเมนต์ หรือการประกาศ ตัวแปลภาษา 2 Import sys, getopt นาเช้าไลบารี่ หรือคลาสของ ไพธอนมาใช้งาน 3 Def display () : print(“python programming”) Def main () : print (“I’m the Main function”) display () If _name_==“_main_”: main () ประกาศตัวตัวแปร ฟังก์ชัน และคาสั่งควบคุมต่างๆ รวมถึงฟังก์ชัน main ด้วย
  • 6.
    • ไวยกรณ์พื้นฐานที่จาเป็นอย่างยิ่งต้องจดจา • ไวยกรณ์ต่างๆที่จะกล่าวต่อไปนี้ จะต้องจดจาและท่องให้ขึ้นใจ เพราะมันจะทาให้ การเขียนโปรแกรมไม่มีอุปสรรค • 1. case sensitivity: การบังคับใช้ตัวเล็ก/ตัวใหญ่หมายถึง ความแตกต่างระหว่างการใช้ตัวใหญ่และ ตัวเล็กของตัวอักษรในภาษาอังกฤษ โปรแกรมบางโปรแกรมหรือระบบบางระบบ จะบังคับว่า ต้องใช้ตัวใหญ่ทั้งหมด หรือตัวเล็กทั้งหมด มิฉะนั้นเครื่องจะไม่เข้าใจ เช่น ชื่อโปรแกรมภาษาฟอร์แทรน (FORTRAN) หรือ ระบบยูนิกซ์ (UNIX) จะ บังคับให้ใช้ตัวใหญ่เท่านั้น ส่วนระบบดอสและวินโดว์ไม่บังคับ กล่าวคือ ใช้ตัวเล็ก ก็ได้ตัวใหญ่ก็ได้
  • 7.
    • space andtabs don't mix: ไพธอนมองว่า space และ tabs มีความหมายไม่เหมือนกันดังนั้นเวลา เขียนโปรแกรม อย่าผสมระหว่าง spaceและ tabe เข้าด้วยกันให้เลือกเอาอย่างใดอย่างหนึ่งเท่านั้น • Opjects (วัตถุ หรือเรียกทับศัพท์ว่าอ๊อปเจ็กต์):ไพธอนถูกสร้างขึ้นภายใต้แนวคิดการโปรแกรม เชิงวัตถุ ดังนั้นเมื่อเราเรียกใช้งาน คลาสใดๆก็ตามถือว่าเป็นวัตถุตามแนวคิดความคิดแบบ โปรแกรมเชิงวัตถุ • Scope : ในการพัฒนาโปรแกรมขนาดใหญ่ ที่มีโปรแกรมเมอร์มากกว่า1คน อาจจะประสบปัญหา เรื่องการประกาศตัวแปรที่ซ้ากันได้ดังนั้นเพื่อให้การเข้าถึงและใช้งานตัวแปรเป็นอย่างถูกต้อง โดยไม่มีข้อผิดพลาด • Namespaces: คือพื้นที่ที่ใช้เก็บตัวแปรของระบบที่สร้างไว้ให้เราโดยที่เราไม่รู้ และตัวแปรต่างๆ ที่ เราสร้างขึ้นมาที่หลัง เราสามารถขอดูข้อมูลที่เก็บอยู่ใน Namespacesได้โดยใช้คาสั่ง dir() ซึ่งเป็น built-in function ที่มีอยู่ในไพธอนซึ่งถ้าเรายังไม่ได้ประกาศตัวแปร หรือฟังก์ชันใดๆใน โปรแกรมจะปรากฏรายการของตัวแปรที่ระบบสร้างไว้ให้ 6 ตัว คือ ‘_builtins_’, ‘_doc_’, ‘_file_’,‘_loader_’, ‘_name_’, ‘_package_’ • Colons: ไพธอนตัดเครื่องหมายแสดงขอบเขตของข้อมูล {…} ทิ้งไป แล้วใช้: ร่วมกับการเขียน โปรแกรมด้วยการย่อหน้าแทน โดยเริ่มจากคอลัมภ์ที่ 1 เสมอดังนั้นอย่าลืม : คาสั่ง if, for, while,def เป็นอันขาด • Blank lines : เมื่อจาเป็นต้องเขียนคาสั่งที่มีความหมายยาวๆมาก ไม่หมดใน1บรรทัด ให้ใช้ เครื่องหมายหมาย ตามด้วย enter
  • 8.
    • Lines andlndentation : ไพธอนไม่ใช้เครื่องหมาย{…} ในการกาหนดขอบเขต เหมือนในภาษาซี ไพธอนใช้การเยื้อง หรือย่อหน้าหน้าแทน ดังนั้นผู้เขียนโปรแกรมจะต้องระวัง การเยื้องหน้าให้ดี • Multi-line statements: แต่ละคาส่งของไพธอนส่วนใหญ่จบลงด้วยการขึ้นบรรทัด ใหม่(new line) แต่ผู้เขียนโปรแกรมสามารถใช้เครื่องหมาย เพื่อเชื่อมคาสั่งได้ • Quotation in python :ไพธอนใช้เครื่องหมาย ‘(single quote), “(double duote) ในการแสดงค่าของสตริง แต่เครื่องหมาย”””(triple quote) สามารถใช้เชื่อ ต่อสตริงแบบหลายๆบรรทัดได้ • Waiting for the user: บ่อยครั้งที่ผู้เขียนโปรแกรมต้องการให้โปรแกรมหยุดรอก่อน โปรแกรมทางานเสร็จ โดยขึ้นข้อความว่า “press the enter key to exit.” สามารถ ใช้ nn ใส่ไว้ก่อนข้อความ • Multiple statements on a single line : ผู้เขียนโปรแกรมสามารถใช้ เครื่องหมาย ; เพื่อสั่งให้สามารถรันหลายๆคาสั่งได้ในบรรทัดเดียวกันได้
  • 9.
    การเปลี่ยนรูปแบบการแสดงผล • การเปลี่ยนแปลงรูปแบบการแสดงผล จะใช้เครื่องหมายเปอร์เซ็นต์(%)เพื่อทา หน้าที่ควบคุมการแสดงผลตามรูปแบบที่ผู้เขียนคาสั่งกาหนด เช่นเดียวกับการใช้ ฟังก์ชัน printf() ในภาษาซี ที่สามารถใช้เครื่องหมาย % เพื่อควบคุมการแสดงผล ข้อมูลต่าง ๆ ได้เช่น การกาหนดจานวนจุดทศนิยม การเปลี่ยนจานวนตัวเลขเป็น ข้อความ
  • 10.
    • 1. การกาหนดจานวนจุดทศนิยม การกาหนดจุดทศนิยมเป็นการกาหนดจานวนจุดทศนิยมตามต้องการเพื่อการสะดวกในการ อ่านหรือการพิมพ์ออกกระดาษ ดังตัวอย่างต่อไปนี้ ภาพที่ 2.18 แสดงตัวอย่างคาสั่งการแสดงผลตัวเลขทศนิยม จากภาพที่ 2.18 คาสั่ง print '%.3f' % pi เป็นการกาหนดว่าต้องการแสดงผล 3 ตาแหน่ง โดยปัดเศษ ทศนิยมตามหลักคณิตศาสตร์ ในขณะเดียวกันเราสามารถกาหนดจานวนหลักของเลขจานวนเต็ม ได้แต่ถ้าลดจานวนหลักผลที่ได้จะผิดพลาด จึงนิยมใช้ในการเพิ่ม ในการเพิ่มจะไม่เพิ่มเลข 0 ไป ข้างหน้าแต่เป็นการเพิ่มจานวนช่องว่าง เมื่อเขียนคาสั่ง print '%10.3f' % pi จึงเห็นว่าตัวเลข 3.143 ขยับไปด้านหลัง 3 ตาแหน่ง ทั้งนี้ตัวเลข 10 หมายถึง ตัวเลขตัวสุดท้ายจะอยู่ที่ตาแหน่งสดมภ์ที่ 10 >>> pi = 22.0/7.0 >>> print pi 3.14285714286 >>> print '%.3f' % pi 3.143 >>> print '%10.3f' % pi 3.143
  • 11.
    • 2. การเปลี่ยนการแสดงผลตัวเลขและข้อความ การเปลี่ยนการแสดงผลตัวเลขและข้อความเป็นการเปลี่ยนชนิดข้อมูลเพื่อให้การจัดการแสดงผลข้อมูลได้ ง่าย ยิ่งขึ้น ให้พิจารณาจากตัวอย่างต่อไปนี้ • ภาพที่ 2.19 แสดงตัวอย่างคาสั่งการ แสดงผลตัวเลขและข้อความ จากภาพที่ 2.19 แสดงการควบคุมการแสดงผล ข้อความด้วยเครื่องหมาย % ผสมด้วยรูปแบบ เช่น 3d เป็นการกาหนดให้แสดงผล 3 หลัก โดย ให้จัดชิดขวา แต่ถ้า -3d ให้แสดงผลสามหลักเช่นกัน แต่จัดชิดซ้าย ถ้าเป็น 03d จะเป็นการเพิ่มเลข 0 ด้านหน้า ถ้า +d เป็นการเพิ่มเครื่องหมาย + ด้านหน้า แต่ถ้าต้องการใส่เครื่องหมาย – ที่ข้อมูลต้องใส่เครื่องหมายที่ข้อมูลตัวเลขแทน สาหรับการประยุกต์ใช้เช่น กรณีวันเดือนปี หรือวันที่ในปฏิทิน เป็นต้น >>> '%d' % 65 '65' >>> '%3d' % 65 ' 65' >>> '%-3d' % 65 '65 ' >>> '%03d' % 65 '065' >>> '%+d' % 65 '+65' >>> '%+d' % -65 '-65' >>> DateOfBirth = 5,4,1990 >>> print "วัน เดือน ปีเกิด : %02d/%02d/%d" % DateOfBirth วัน เดือน ปีเกิด : 05/04/1990
  • 12.
    • 3. การใช้เครื่องหมายพิเศษ การใช้เครื่องหมายพิเศษเพื่อควบคุมการแสดงผลในภาษาไพธอนจะใช้เครื่องหมาย ร่วมกับ ตัวอักษรอื่น ๆ เช่น n เป็นต้น ให้พิจารณาตัวอย่างต่อไปนี้ ภาพที่ 2.20 แสดงตัวอย่างคาสั่งการใช้เครื่องหมายพิเศษ >>> print "Hello nWorld" Hello World >>> print "Hello 012World !!!" Hello World !!! >>> print "รหัสนักศึกษา : %s ชื่อ : %s " %("494244007","สมชาย เข็มทอง") รหัสนักศึกษา : 494244007ชื่อ : สมชาย เข็มทอง >>> print "รหัสนักศึกษา : %s ชื่อ : %s " %("494244007","สมชาย เข็มทอง") รหัสนักศึกษา : 494244007ชื่อ : สมชาย เข็มทอง
  • 13.
    • จากภาพที่ 2.20แสดงการใช้เครื่องหมาย เพื่อควบคุมการแสดงผล เช่น n เป็นการสั่งเพื่อให้ ขึ้นบรรทัดใหม่ หรือจะใช้ตัวเลขฐานแปดก็มีความหมายเดียวกัน ในกรณีที่ต้องการพิมพ์คาสั่ง หลายบรรทัดภาษาไพธอนให้ใช้เครื่องหมาย เช่นกัน นอกจากคาสั่งที่แสดงให้เห็นตามตัวอย่าง แล้ว ยังมีการควบคุมด้วยอักขระอื่น ๆ ดังตารางต่อไปนี้ • ตารางที่ 2.1 แสดงเครื่องหมายพิเศษสาหรับควบคุมการแสดงผล ESCAPE CHARACTER NAME DECIMAL OCTAL n Newline 10 012 t Horizontal Tab 9 011 b Back space 8 010 0 Null character 0 000 a Bell 7 007
  • 14.
    v Vertical tab11 013 r Carriage return 13 015 e Escape 27 033 ” Double quote 34 042 ’ Single quote 39 047 f Form feed 12 014 Backslash 92 134
  • 15.
    1.4 นิพจน์ • นิพจน์(Expression) คือ ข้อกาหนดที่ใช้ในการคานวณหาค่าต่าง ๆ ยกตัวอย่างง่าย ๆ ที่เห็นได้ชัดก็ อย่างเช่นสูตรคณิตศาสตร์ต่าง ๆ ซึ่งสูตรเหล่านั้นจะประกอบไปด้วยโอเปอร์แรนด์ (Operand) โอเปอร์ แรนด์คือ ตัวแปร หรือค่าคงที่ หรือฟังก์ชันต่าง ๆ มาคานวณอาจจะมีตั้งแต่หนึ่งตัวหรือมากว่า โดยการใช้ โอเปร์เรเตอร์ (Operator) ซึ่งเป็นสัญลักษณ์ที่ใช้ในการคานวณหรือเปรียบเทียบทางคณิตศาสตร์มาเป็น ตัวเชื่อมของโอเปอร์แรนด์ ตัวอย่างเช่น บวก (+) ลบ (-) คูณ (*) หาร (/) เป็นต้น เพื่อจะเป็นการเข้าใจ นิพจน์ดียิ่งขึ้นให้พิจารณาจากสูตรการหาพื้นที่ของวงกลมต่อไปนี้คือ p * radius * radius Expression คือ p * radius * radius Operand มี 2 ตัว คือ Variable (ตัวแปร) คือ radius Constant (ค่าคงที่) คือ p Operator คือ * • ตารางที่ 1.5 สัญลักษณ์ทางคณิตศาสตร์ที่ใช้ในการคานวณในภาษาไพธอน
  • 16.
    สัญลักษณ์ การคานวณ ตัวอย่างอธิบาย + บวก (Addition) x = y + z นาค่าในตัวแปร y บวกด้วยค่าในตัว แปร z นาผลลัพธ์เก็บในตัวแปร x - ลบ (Subtraction) x = y - z นาค่าในตัวแปร y ลบด้วยค่าในตัว แปร z นาผลลัพธ์เก็บในตัวแปร x * คูณ (Multiplication) x = y * z นาค่าในตัวแปร y คูณด้วยค่าในตัว แปร z นาผลลัพธ์เก็บในตัวแปร x / หาร (Division) x = y / z นาค่าในตัวแปร y ตั้งหารด้วยค่าใน ตัวแปร z นาผลลัพธ์เก็บในตัว แปร x % หารเอาเศษ (modulo) x = y % z นาค่าในตัวแปร y หารด้วยค่าในตัว แปร z นาเศษที่ได้เก็บในตัวแปร x ** ยกกาลัง x = y ** z นาค่าในตัวแปร y คูณยกกาลังด้วย ค่าในตัวแปร zนาผลลัพธ์เก็บในตัว แปร x // หารปัดเศษ x = y // z นาค่าในตัวแปร y ตั้งแล้วหารด้วยตัว แปร z ผลลัพธ์เก็บในตัวแปร y ผลลัพธ์ปัดเศษทิ้ง เช่น 5/2 คาตอบคือ 2
  • 17.
    • จากตารางที่ 1.5จะเห็นได้ว่าสัญลักษณ์ที่ใช้คานวณในภาษาไพธอนจะมีอยู่ 6 ตัวด้วยกัน คือ บวก ลบ คูณ หาร หารเอาเศษยกกาลังและหารไม่ปัดเศษ ซึ่งการคานวณจะขึ้นอยู่กับชนิด ของตัวแปรว่าเป็นชนิดข้อมูลแบบใดที่มากระทาต่อกัน ซึ่งผลที่ได้เมื่อคานวณเสร็จแล้วอาจจะ เป็นชนิดข้อมูลแบบเดิมหรืออาจจะกลายเป็นชนิดข้อมูลตัวใหม่ก็ได้ ซึ่งการคานวณแต่ละตัวจะ มีวิธีการคานวณดังตัวอย่างต่อไปนี้ • การบวก (Addition) integer + integer = integer เช่น 5 + 2 = 7 float + integer = float เช่น 5.5 + 2 = 7.5 integer + float = float เช่น 2 + 5.5 = 7.5 float + float = float เช่น 2.5 + 4.2 = 6.7 • การลบ (Subtraction) integer - integer = integer เช่น 6 - 1 = 5 float - integer = float เช่น 3.3 - 3 = 0.3 integer - float = float เช่น 3 - 3.3 = -0.3 float - float = float เช่น 1.5 - 2.7 = -1.2
  • 18.
    • การคูณ (Multiplication) integer* integer = integer เช่น 4 * 3 = 12 float * integer = float เช่น 2.7 * 1 = 2.7 integer * float = float เช่น 1 * 2.7 = 2.7 float * float = float เช่น 3.2 * 2.4 = 7.68 • การหาร (Division) integer / integer = integer เช่น 5 / 2 = 2 float / integer = float เช่น 3.2 / 2 = 1.6 integer / float = float เช่น 2 / 3.2 = 0.625 float / float = float เช่น 2.5 / 1.5 = 1.67 • การหารเอาเศษ (Remainder) integer % integer = integer เช่น 5 % 2 = 1
  • 19.
    • นิพจน์ทางตรรกศาสตร์ (BooleanLogical Expression) เป็นนิพจน์ที่แสดงความสัมพันธ์ของการ เปรียบเทียบ โดยการใช้ตัวเชื่อมด้วยโอเปอร์เรเตอร์ในการเปรียบเทียบเช่น มากกว่า น้อย กว่า เท่ากับ ไม่เท่ากับ เป็นต้น และยังมีสัญลักษณ์ทางตรรกศาสตร์ซึ่งได้แก่ and or not ที่ใช้ เปรียบเทียบเงื่อนไขที่มีมากกว่าหนึ่งเงื่อนไข • ตารางที่ 1.6 สัญลักษณ์เปรียบเทียบทางคณิตศาสตร์ เครื่องหมาย ความหมาย == > < <= >= <>, != เท่ากับ น้อยกว่า มากกว่า น้อยกว่าหรือเท่ากับ มากกว่าหรือเท่ากับ ไม่เท่ากับ
  • 20.
    • ตารางที่ 1.7เปรียบเทียบตรรกะทางคณิตศาสตร์ เงื่อนไข 1 เงื่อนไข 2 not 1 1 and 2 1 or 2 T T F F T F T F F F T T T F F F T T T F
  • 21.
    ลาดับการกระทาของเครื่องหมาย • นิพจน์ที่ใช้ในการคานวณอาจมีเครื่องหมายการคานวณ เช่น+ - * / หรือการเปรียบเทียบเงื่อนไขต่าง ๆ จะต้องมี เครื่องหมายที่ใช้ในการเปรียบเทียบ ให้ถูกต้องตรงกับหมายของการทางาน และผู้เขียนคาสั่งโปรแกรมต้องทราบ ลาดับการทางานของเครื่องหมายในแต่ละเครื่องหมายว่าเครื่องหมายใดจะประมวลผลก่อนหรือหลัง • ตารางที่ 1.8 ลาดับการคานวณของเครื่องหมายในภาษาไพธอน ลาดับ เครื่องหมาย ความหมาย 1 ** ยกกาลัง 2 *, /, % คูณ หาร หารเอาเศษ 3 +, - บวก ลบ 4 <, <=, >, >=, <>, !=, == น้อยกว่า น้อยกว่าหรือเท่ากับ มากกว่า มากกว่าหรือเท่ากับ ไม่เท่ากับ ไม่ เท่ากับ เท่ากับ 5 not บูลีนไม่ 6 and บูลีนและ 7 or บูลีนหรือ
  • 22.
    การรับข้อมูลจากแป้ นพิมพ์ • ภาษาไพธอนได้กาหนดให้มีคาสั่งเพื่อรับข้อมูลจากผู้ใช้พิมพ์ข้อมูลจากแป้นพิมพ์ เข้าสู่ หน่วยความจา ได้ 2 ประเภท ได้แก่ ข้อมูลประเภทตัวเลข และข้อมูลประเภทตัวอักขระหรือสาย อักขระ 1. การป้อนข้อมูลเพื่อรับค่าตัวเลข การรับข้อมูลจากแป้นพิมพ์เป็นการนาเข้าข้อมูล เฉพาะข้อมูลประเภทตัวเลขเท่านั้นรูปแบบ คาสั่ง ได้แก่ <variable> = input("text") เช่น number = input("กรุณาป้อนจานวนนักศึกษา : ") การทางานของคาสั่ง จะแสดงข้อความ "กรุณาป้ อนจานวนนักศึกษา : " ถ้าผู้ใช้ป้ อนตัวเลขจานวน ใด ๆ แล้วกดปุ่ม Enter ตัวเลขค่านั้นจะจัดเก็บอยู่ในตัวแปร number หลังจากนั้นนาตัว แปร number ไปใช้ในคาสั่งใด ๆ เพื่อการคานวณได้
  • 23.
    • 2. การป้อนข้อมูลเพื่อรับค่าตัวอักขระ • การรับข้อมูลจากแป้นพิมพ์เป็นการนาเข้าข้อมูลจากผู้ใช้อีกกรณีหนึ่ง แต่เหมาะสาหรับ ตัวอักขระหรือสายอักขระเท่านั้น เช่น ชื่อ นามสกุล ที่อยู่เป็นต้น มีรูปแบบดังนี้ <variable> = raw_input(" text") เช่น name = raw_input("กรุณาป้อนชื่อนักศึกษา : ") การทางานของคาสั่งนี้มีความหมายเดียวกับคาสั่งการรับค่าตัวเลข คือ ข้อมูลที่ถูกป้ อนโดยผู้ใช้ จะ เก็บไว้ในตัวแปรname แล้วนาตัวแปร name ไปใช้เพื่อประมวลผลคาสั่งอื่น ๆ ได้ต่อไป แต่ ถ้าผู้เขียนโปรแกรมเขียนคาสั่งรับค่าผิดไป หรือในกรณีที่ผู้ป้ อนข้อมูลป้ อนผิดพลาด จะเกิด ข้อผิดพลาด เกิดขึ้นได้ ดังกรณีต่อไปนี้
  • 24.
    • ภาพที่ 2.13แสดงคาสั่งเพื่อรับการป้ อนข้อมูลที่ไม่ถูกต้อง >>> inp = input("กรุณาป้อนรายชื่อ : ") กรุณาป้อนรายชื่อ : ทวีรัตน์ Traceback (most recent call last): File "<pyshell#16>", line 1, in <module> inp = input("กรุณาป้อนรายชื่อ : ") File "<string>", line 1, in <module> NameError: name 'ทวีรัตน์' is not defined
  • 25.
    • จากภาพที่ 2.13สาเหตุที่โปรแกรมไพธอน รายงานข้อผิดพลาดเพราะผู้เขียนคาสั่ง ต้องการรับ ข้อมูลประเภทตัวเลข แต่ผู้ใช้ป้อนข้อมูลประเภทสายอักขระเข้าไป ซึ่งไพธอนจะกาหนดให้ผู้ ป้อนต้องป้อนตัวเป็นตัวเลขเท่านั้น วิธีแก้ปัญหาเหล่านี้สามารถแก้ปัญหาได้โดยการใช้ คาสั่ง raw_input แทน input ทุกกรณีได้ เพียงแต่ไปเปลี่ยนชนิดตัวแปรเดิมด้วย ฟังก์ชัน intเช่น input_no = raw_input("กรุณาป้อนจานวนตัวเลข : ") กรุณาป้อนจานวนตัวเลข : 123 input_no = int(input_no)
  • 26.
    อ้างอิง • http://python.cmsthailand.com/basic_python.html#top • http://www.amplysoft.com/knowledge/hello-world-django- framework.html •https://python3.wannaphong.com/2015/06/ฟังก์ชัน-พื้นฐานในภาษา- python-1.html • https://python3.wannaphong.com/2015/02/ข้อมูลชนิดสตริง- string-python.html • https://sites.google.com/site/dotpython/input-and- output/conv_disp • https://sites.google.com/site/dotpython/installation/operator • https://sites.google.com/site/dotpython/input-and-output/2- 2-list
  • 27.
    สมาชิก • นายณัฐวัตร ปฐมวราวุฒิม.6/4 เลขที่3 • นายธีระพงษ์ นันเขียว ม.6/4 เลขที่7 • นางสาวกิ่งฉัตร แสงทองดี ม.6/4 เลขที่8 • นางสาวญาณิศา กุ้ยอ่อน ม.6/4 เลขที่9 • นางสาวธันยพร ปัจศรี ม.6/4 เลขที่10 • นางสาววิริญญา เพชรบูรณกาญจน์ ม.6/4 เลขที่11 • นางสาวพิมพ์ผกา ไพรวัลย์ ม.6/4 เลขที่14 • นางสาวณิชมน อักษร ม.6/4 เลขที่24