Important Announcement
PubHTML5 Scheduled Server Maintenance on (GMT) Sunday, June 26th, 2:00 am - 8:00 am.
PubHTML5 site will be inoperative during the times indicated!

Home Explore การใช้งานpython

การใช้งานpython

Published by doitech, 2017-05-04 02:58:15

Description: คู่มือการเขียนโปรแกรมภาษา python

Search

Read the Text Version

บทที่ 9การควบคมุ ทิศทางของโปรแกรม (Control flow,Flow of Control หรอื Alternatively) การควบคมุ ทศิ ทางของโปรแกรม เป็นการเลยี นแบบ การทำงานของมนุษย์ เพราะในเหตกุ ารณ์ตา่ ง ๆ เรามีการตดั สนิ สินใจในแบบต่าง ๆ กันออกไป เช่นเมอื่ เดินทางไปเจอ 3 แยก เราต้องตัดสินใจ เสย้ี วซา้ ยหรอืเล้ียวขวา โดยมแี ผนท่ี และป้ายบอกเสน้ ทางเป็นตวั กำหนด ให้เราเลีย้ วซ้ายหรอื เล้ยี วขวา เป็นตน้ ในการเขยี นโปรแกรมก็คอื การจำลองตัวเราลงไป เพอื่ จัดการกับสถาณการณ์ต่างๆ ซง่ึ เราต้องมีข้อมลู ในการประกอบการพิจารณา ถ้าข้อมลู บอกเราแบบหน่ึง เราก็ตอ้ งทำแบบหน่ึง แต่ถา้ ข้อมูลบอกเราอกี อย่าง เราก็ต้องทำอกี อยา่ งที่แตกตา่ งกนั ออกไป ซึงก่ ารท่ีต้องจดั การกบั สถาณการณ์ตา่ งๆ น้ี เราเรยี กมนั วา่ การควบคุมการทำงานของโปรแกรมนน่ั เอง การควบคุมการทำงาน มี 3 รูปแบบ ไดแ้ ก่ 1. การตดั สนิ ใจ (Decisions, Choice หรือ Selection) 2. การวนทำซ้ำ (Loop หรือ Iteration) 3. การจดั การความผดิ ปกตขิ องโปรแกรม (Error Checking)ในการควบคมุ ทศิ ทาง ไม่วา่ จะเป็นการตดั สนิ ใจ หรือการทำงานแบบวนซ้ำ เราจะต้องอาศัยการ พจิ รณาข้อมลูที่มีอยู่ ประกอบการควบคุม สว่ นการจดั การความผิดปกติของโปรแกรมนนั้ เปน็ การดักจบั สิ่งที่อาจจะเกิดข้นึได้จากการเขียนโปรแกรมที่ไม่ครอบคลมุ การทำงาน ซงึ่ อาจจะเกิดขนึ้ ได้ แต่ปอ้ งกนั โปรแกรมปิดตัวเองโดยฉบั พลัน เราจงึ ใชก้ ารจดั การความผิดปกติของโปรแกรมมาชว่ ยในการดักจับสงิ่ เหลา่ น้ี9.1 การตัดสินใจ (Decisions, Choice หรือ Selection)9.1.1 if Statements คำสงั่ if ใช้ตดั สนิ ใจว่าจะทำหรอื ไม่ทำคำส่งั ชดุ หน่งึ ที่อยู่ภายในช่วงของการทำงานของ if (if Statementsscope) ถา้ เงื่อนไขทน่ี ำมาทดสอบทางตรรศาสตร์เปน็ จริง (True) กจ็ ะทำคำสัง่ ชดุ นนั้ ถา้ เง่ือนไขท่ีนำมาทดสอบทางตรรกศาสตรเ์ ป็นเท็จ (False) ก็จะไม่ทำคำสง่ั ชุดนน้ั โดยมรี ูปแบบคำสง่ั ในภาษาไพธอนดังน้ี 51

52 การควบคุมทิศทางของโปรแกรม (Control flow, Flow of Control หรอื Alternatively)if Condition: Statements ..... .....else: Statements ..... .....ตัวอยา่ ง>>> x = 1>>> if x is 1:>>> print ’Yes’>>> else:>>> print ’No’โดยจากตวั อย่างด้านบนนน้ั จะไดผ้ ลออกมาเปน็ \"Yes\" เนอื่ งจากว่า x มคี ่าเป็น 1 และเปรียบเทียบกับ 1 ซง่ึ มีคา่ เดียวกันผลที่ออกมาเปน็ True ในการเปรียบเทยี บ แลว้ จึงพิมพค์ ่า \"Yes\" ออกมาน้นั เอง ซึง่ ในบางคร้งั การตดั สินใจในการทำชดุ คำสงั่ อาจมีมากกวา่ 2 ทางจากข้างต้น เราสามารถในคำส่งั อกี หนง่ึตัวทีช่ ื่อวา่ elif ได้ (หรอื มาจาก else if ในภาษาอืน่ เชน่ java หรอื c/c++) โดยมีรูปแบบดงั ตอ่ ไปน้ีif Condition: Statements ..... .....elif Condition: Statements ..... .....else: Statements ..... .....ตวั อย่าง>>> x = 3>>> if x < 1:>>> print ’x < 1’>>> elif x > 1:>>> print ’x > 1’>>> else:>>> print ’x = 1’จากตัวอยา่ งดา้ นบน นั้นเราจะไดค้ ำตอบคือ \"x > 1\"

9.2 การวนทำซ้ำ (Loop) 539.1.2 switch Statements ในไพธอนน้นั ไม่สนบั สนุนการตัดสินใจแบบ switch9.2 การวนทำซำ้ (Loop)9.2.1 while Statements คำสง่ั while เป็นคำสงั่ ท่ีใช้ในการวนทำซำ้ ในชว่ งของการทำงานของ while (while Statements scope)จนกว่าการทดสอบทางตรรกศาสตร์จะเปน็ เท็จ มีรปู แบบดงั นี้while Condition: Statements ..... .....ตวั อย่าง>>> x = 1>>> while x < 5:>>> print ’Yes\n’>>> x+=1ผลจากการทำYesYesYesYes จากตวั อยา่ งคือกำหนดให้ x มคี ่าเปน็ 1 แลว้ เปรยี บเทยี บทางตรรกศาสตร์กอ่ น โดยให้ x < 5 ในทนี่ ี้ x มีคา่ เป็น 1 ผลคำตอบคือ True จงึ ทำคำสั่งภายในชว่ งการทำงานของ while โดยการพมิ พ์ Yes แล้วทำการเพ่มิคา่ x โดยการบวกไปทีละ 1 คา่ แลว้ กลับมาเปรียบเทยี บทางตรรกศาสตร์ใหม่ ทำอย่างนี้ไปเรือ่ ย ๆ จนกวา่การเปรยี บเทียบทางตรรกศาสตรจ์ ะมผี ลเปน็ False9.2.2 for Statements คำสง่ั for เป็นคำสง่ั ท่ีใช้ในการวนทำซำ้ ในช่วงของการทำงานของ for (for Statements scope) จนกวา่การทดสอบทางตรรกศาสตร์จะเป็นเท็จ โดยมีการกำหนดชว่ งการทำงานตำ่ สุด และมากสุดของจำนวนครง้ั ท่ีทำคำสงั่ ภายในด้วย โดยใช้ for รวมกบั คำส่ังในการเปรียบเทยี บทางตรรกศาสตร์คือ in และ function การทำงานแบบช่วงของกลุม่ ของขอ้ มลู คือ range (ดวู ธิ ีการใชไ้ ด้จากบทกอ่ น ๆ )

54 การควบคุมทศิ ทางของโปรแกรม (Control flow, Flow of Control หรือ Alternatively)for var in range(m, n [, step = 1]): Statements ..... .....ตวั อย่าง>>> for i in range(0, 10):>>> if i % 2 == 0:>>> print i, ’is an even number’>>> else:>>> print i, ’is an odd number’จากตวั อย่างด้านบนน้นั ทำการทำซ้ำตงั้ แต่ 0 ไปจนถึง 9 แลว้ ทำการตรวจสอบหาเลขคีแ่ ละเลขคู่ดว้ ย0 is an even number1 is an odd number2 is an even number3 is an odd number4 is an even number5 is an odd number6 is an even number7 is an odd number8 is an even number9 is an odd number ซ่ึงในไพธอนน้นั ไมส่ นับสนนุ foreach แตเ่ ราสามารถใชค้ วามสามารถของ for มาใชง้ านจนได้คำสัง่ fore-ach ไดอ้ ยแู่ ลว้>>> x = {’first’:’one’, ’second’:’two’}>>> for j in x: print x[j]twoone9.2.3 pass, break, continue และ else Clauses Statementspass เปน็ คำส่งั ที่ใชใ้ นการทดแทน Statements อน่ื ๆ โดยไม่มีการทำงานตัวอย่าง>>> while True:.... pass....

9.3 การจดั การความผดิ ปกติของโปรแกรม (Error Checking) 55break คำสั่งนี้ใชใ้ นการหยดุ การทำงานของการวนทำซ้ำ หรอื การตัดสินใจcontinue คำสั่งน้ใี ชใ้ นการเรมิ่ การทำงานหลังจากหยดุ การทำงานของการวนทำซ้ำ หรอื การตดั สนิ ใจelse Clauses คำสง่ั นใ้ี ช้ในการทำหลังจาก break ใน การวนทำซำ้ (Loop, Iteration) ตวั อย่างfor n in range(2, 10): for x in range(2, n): if n % x == 0: print n, ’equals’, x, ’*’, n/x breakelse: print n, ’is a prime number’2 is a prime number3 is a prime number4 equals 2 * 25 is a prime number6 equals 2 * 37 is a prime number8 equals 2 * 49 equals 3 * 39.2.4 do-while Statements ในไพธอนนั้นไม่สนบั สนุนการตดั สนิ ใจแบบ do-while (จะสนับสนนุ บน Python 2.5 และมีบน Python2.5 Beta เม่ือวันที่ 24 กุมพาพนั ธ์ 2549)9.3 การจดั การความผิดปกตขิ องโปรแกรม (Error Checking)9.3.1 assert Statements assert เปน็ คำสง่ั ที่วางไว้สำหรบั ตรวจสอบความผดิ พลาดภายในคำส่ังที่เราเขียนในโปรแกรมของเรา โดยเป็นเหมือนส่วนเตมิ เต็มในการแจ้งความผดิ พลาดของตัวไพธอนเพื่อบอกรายละเอียดที่มากขึน้ ในการเขียนโปรแกรมของเรา ดังรปู แบบคือassert Condition, ’Text Error or Text Mixed’

56 การควบคุมทศิ ทางของโปรแกรม (Control flow, Flow of Control หรอื Alternatively)ตัวอยา่ งdef test(arg1, arg2): arg1 = float(arg1) arg2 = float(arg2) assert arg2 != 0, ’Bad dividend, arg1: %f arg2: %f’ % (arg1, arg2) ratio = arg1 / arg2 print ’ratio:’, ratiotest(0,2)test(2,0)เมอ่ื เราส่ังให้ทำงานจะไดด้ ังน้ีratio: 0.0Traceback (most recent call last): File \"C:\tmp.py\", line 51, in ?test(2,0) File \"C:\tmp.py\", line 46, in testassert arg2 != 0, ’Bad dividend, arg1: %f arg2: %f’ % (arg1, arg2)AssertionError: Bad dividend, arg1: 2.000000 arg2: 0.000000จะเห็นไดว้ ่าโปรแกรมจะมีตัวช่วยในการสร้างมมุ มองของตัวแปรต่าง ๆ ไดว้ ่าคา่ ที่ใสไ่ ปนั้นถูกต้องหรอื ไม่9.3.2 try-except และ raise Statements (Exception handling) ในภาษาไพธอนนน้ั try-except เปน็ การบอกถึงสิ่งผิดปกติท่ีเกดิ ขน้ึ ในโปรแกรม ซ่งึ อาจเป็นขอ้ ผิดพลาดหรือเหตกุ ารณ์ท่ีไม่พงึ ประสงค์และต้องการความดูแลเป็นพิเศษ โดยทวั่ ไปในการเขยี นโปรแกรมท่ีดีนัน้ เราจะต้องตรวจสอบถงึ เหตกุ ารณท์ อ่ี าจทำให้โปรแกรมของเราลม้ เหลวในการทำงาน เช่น ข้อมูลถกู หารด้วยศูนย,์การเขา้ หาข้อมลู ใน list ด้วยการใช้ index ทไ่ี ม่มอี ย่จู ริง หรือ อา้ งถึงหนว่ ยความจำท่เี ป็น null เป็นต้น ถงึ แม้วา่เรามีวธิ กี ารตรวจสอบ error ต่าง ๆ เหล่านด้ี ้วยการใช้การต้ังสินใจดว้ ย if Statements หรือ การตรวจสอบอื่นๆ ท่ีทำให้โปรแกรมของเราทำงานได้ราบร่นื แต่จะทำให้ code ของเราดูแล้ววุน่ วายเพราะถา้ มีการตรวจสอบขอ้ ผิดพลาดมากเกินไปชดุ คำสัง่ ของเราก็จะดูซับซ้อนมากย่ิงข้นึ แตไ่ มไ่ ดห้ มายความวา่ เราจะไมต่ รวจสอบ และดักจับข้อผดิ พลาดเหล่านี้ การนำเอา try-except เขา้ มาเปน็ ตวั ช่วยในการตรวจสอบและดักจบั ทำให้เกิดการแยกสว่ นของ code ที่ทำงานได้ราบร่ืน ออกจากส่วนของชุดคำสัง่ ท่ีจดั การเกย่ี วกบั ความผิดพลาดทำให้เราสามารถท่ีจะค้นหาสว่ นของคำสง่ั ทง้ั สองได้ง่ายข้ึน ถ้ามีการเปลี่ยนแปลง code ในอนาคต ข้อดีอีกอันหนึง่ของ try-except ก็คือ ทำใหก้ ารตรวจสอบและดักจับเป็นไปอย่างเฉพาะเจาะจง ตรงกับขอ้ ผิดพลาดท่ีเกดิ ขึน้ทำใหก้ ารแกไ้ ขเปน็ ไปอยา่ งถูกตอ้ ง และเน่ืองจากว่าข้อผิดพลาดต่าง ๆ มีหลากหลายรูปแบบ เราต้องเขียนคำสั่งตา่ ง ๆ ขนึ้ มารองรบั ไม่เช่นน้ันแล้ว โปรแกรมของเราก็จะไม่ผ่านการ compile เราไม่จำเปน็ ที่จะตอ้ งใช้ try-except ในการตรวจสอบและดกั จบั error ในโปรแกรมเสมอไป เพราะการใช้ exception จะเสยี เวลาในการประมวลผลมาก ทำให้โปรแกรมทำงานช้าลง ดงั น้ันเราจะต้องตดั สนิ ใจให้ดีว่าควรจะใช้ try-except ในกรณไี หน อย่างไร ตวั อย่างของโปรแกรมท่ีไมต่ อ้ งใช้ try-except กน็ ่าจะเปน็ การใสข่ ้อมลู นำเข้าแบบผิด ๆ ของผใู้ ช้ ซ่ึงถอื เป็นเร่อื งปกติ ถา้ เรามวั แต่เสียเวลาในการดักจับดว้ ยการใช้ try-except แทนการตรวจสอบและดักจับท่วั ไปโปรแกรมของเรากจ็ ะเสยี เวลาในการประมวลผลสว่ นอื่น ๆ ไป

9.3 การจัดการความผิดปกติของโปรแกรม (Error Checking) 57 รูปแบบคำสั่งtry: Standard operationexcept: Error operationจากรปู แบบคำสง่ั ชุดคำสงั่ เดมิ หรือคำสัง่ ท่ีตอ้ งกาารทำงานทวั่ ๆ ไป จะอยู่ภายใต้ชว่ งการทำงานของ try ถา้การทำงานภายในช่วงการทำงานของ try มีข้อผิดพลาดการทำงานจะกระโดด หรือถกู โยนการทำงานไปสู่ชว่ งการทำงานของ except แทน ดงั ตวั อย่างดา้ นลา่ งน้ี>>> try:... x = y... except:... print ’y not defined’...y not definedถ้าเราไม่ได้ใช้ try-except จะไดผ้ ลแบบน้ี>>> x = yTraceback (most recent call last): File \"<input>\", line 1, in ?NameError: name ’y’ is not definedจากตวั อย่างที่ไดด้ ไู ปเปน็ รูปแบบ try-except ทง่ี า่ ยทีส่ ดุ แต่ในการดักจบั ขอ้ ผิดพลาดจริง ๆ แล้วเราไมส่ ามารถที่จะทำแบบน้ีได้ทุกกรณี เพราะขอ้ ผิดพลาดในชดุ คำสั่งท่ีเราเขยี นไปนน้ั มีกลุ่มของความผดิ พลาดที่แตกต่างกนั เชน่ ความผดิ พลาดของการอา่ นและเขียนไฟล,์ ขอ้ ผิดพลาดจากการทำเกินขอบเขตของลิสต์, ฯลฯ โดยเราดไู ด้จากตวั อยา่ งตอ่ ไปนี้ ตวั อย่างทไ่ี ม่ไดใ้ ช้ try-except>>> fridge_contents = {\"egg\":8, \"mushroom\":20, \"pepper\":3, \"cheese\":2,\"tomato\":4,\"milk\":13}>>> if fridge_contents[\"orange juice\"] > 3:... print \"Sure, let’s have some juice\"...Traceback (most recent call last):File \"<stdin>\", line 1, in ?KeyError: ’orange juice’จากดา้ นบนไม่ได้มีการแก้ไขปัญหาทาง try-except ทำให้แจง้ ขอ้ ผิดพลาดแบบควบคมุ ไม่ได้ เราจงึ เขียนใหม่โดยใช้ try-except มาแก้ปัญหานี้>>> fridge_contents = {\"egg\":8, \"mushroom\":20, \"pepper\":3, \"cheese\":2,\"tomato\":4,\"milk\":13}>>> try:

58 การควบคุมทศิ ทางของโปรแกรม (Control flow, Flow of Control หรอื Alternatively)... if fridge_contents[\"orange juice\"] > 3:... print \"Sure, let’s have some juice\"... except KeyError:... print \"Aww, there’s no juice. Lets go shopping\"...Aww, there’s no juice. Lets go shoppingเม่อื เราใช้ try-except เราสามารถควบคุมควบคมุ วา่ ผลของความผดิ พลาดที่ออกมาจะเปน็ อยา่ งไรด้วย โดยควบคุมชนิดของความผดิ พลาดว่าจะให้ออกมาเปน็ แบบใด ในท่นี ี้ในการ except ความผดิ พลาดแบบ KeyEr-ror แลว้ ให้พมิ พ์ขอ้ ความผิดพลาดออกมา>>> fridge_contents = {\"egg\":8, \"mushroom\":20, \"pepper\":3, \"cheese\":2,\"tomato\":4,\"milk\":13}>>> try:... if fridge_contents[\"orange juice\"] > 3:... print \"Sure, let’s have some juice\"... except KeyError, error:... print \"Woah! There is no %s\" % error...Woah! There is no ’orange juice’ raise เป็น Statements เสรมิ ของ try-except เพอ่ื ช่วยในการโยนความผดิ พลาดไปใช้ใน try-except ต่ออื่น ๆ ที่เก่ยี วข้อง>>> class E(RuntimeError):... def __init__(self, msg):... self.msg = msg... def getMsg(self):... return self.msg...>>>>>> try:... raise E(’my test error’)... except E, obj:... print ’Msg:’, obj.getMsg()...Msg: my test error

บทท่ี 10การสรา้ งฟังก์ชั่น (Defined Function) ฟงั ก์ชนั่ คอื แหลง่ รวมชุดคำส่ังหลาย ๆ โดยคำสั่งท่ีเราเรียบเรียงข้นึ เอง เพอื่ นำไปใช้ในการเขียนโปรแกรมซำ้ ๆ กนั โดยไม่ตอ้ งเขียนชดุ คำส่ังนั้น ๆ ใหม่อีกคร้ัง (Reusability Code) โดยในไพธอนนั้นก็มีฟังก์ชั่นอยู่ 2แบบคอื สามารถคนื คา่ กลับมาได้ (real function, return value) และแบบไม่คืนคา่ (void, sub , subprogramหรอื subroutine ) การสร้างฟังกช์ นั่ จะใชค้ ยี ์เวิร์ดชอ่ื def แล้วตามดว้ ยชอ่ื ของฟังก์ช่นั นัน้ ๆ โดยลกั ษณะของชว่ งการทำงานเหมอื นกับคำสัง่ ควบคุมทศิ ทางโปรแกรมตา่ ง ๆ เชน่ เดียวกัน รูปแบบการเขยี นคำส่งัdef function_name( [Argument] ): Statement …… [return] • function name ชอ่ื ฟังก์ช่ัน • Statements ชุดคำส่ัง • var ตวั แปร • Argument รับค่าของฟังก์ชน่ั • return การคนื ค่ากลบั โดยท่ีการคืนคา่ กลับนนั้ สามารถคนื คา่ กลบั ได้มากกวา่ 1 คา่ หรือมากกวา่ 1 ตัวแปร ซงึ่ สามารถคนื คา่ ไดท้ ุกชนดิ ขอ้ มูลด้วยตวั อย่าง# สว่ นนใี้ ช้ define ฟงั ก์ช่นัdef foo(): print \"Foobar\"# ส่วนน้ีเป็นส่วนทเ่ี รยี กใช้ ต้องมีเคร่ืองหมาย () หลงั วงเล็บเสมอfoo()ผลการทำงานFoobar 59

60 การสรา้ งฟงั ก์ชั่น (Defined Function)10.1 การรับคา่ ของฟงั กช์ ่ัน, คืนคา่ กลบั และค่ามาตรฐานของการรบั ค่า 1. การรับคา่ ของฟังก์ช่ัน (Function Argument) 2. การคืนค่ากลบั (return) 3. คา่ มาตรฐานของการรับคา่ (Function Default Argument)ตัวอย่าง# สว่ นน้ีใช้ define ฟงั กช์ น่ัdef foo(text): print text# ส่วนนเี้ ป็นส่วนท่ีเรียกใช้ ต้องมเี คร่อื งหมาย () หลงั วงเล็บเสมอ foo(\"Foobar\")ผลการทำงานFoobarตวั อย่าง คยี เ์ วริ ด์ return เป็นคำสงั่ ให้ฟงั ก์ช่ันนน้ั คนื คา่ และ ออกจาก functiondef add(x,y): return x + yprint add(10,20)print add(add(10,20),30)ผลการทำงาน3060ตัวอยา่ ง การคืนคา่ แบบหลายคา่ หรอื หลายตัวแปรa, b, c = 0, 0, 0def getabc(): a = \"Hello\" b = \"World\" c = \"!\" return a,b,cdef gettuple(): a,b,c = 1,2,3 return (a,b,c)def getlist(): a,b,c = (3,4),(4,5),(5,6) return [a,b,c]a,b,c = getabc()

10.1 การรับค่าของฟงั กช์ ่นั , คืนค่ากลับ และคา่ มาตรฐานของการรบั ค่า 61print a,b,cd,e,f = gettuple()print d,e,fg,h,i = getlist()print g,h,iผลการทำงานHello World !123(3, 4) (4, 5) (5, 6)ตัวอยา่ ง กำหนดคา่ มาตรฐานของตวั แปร x และ y ให้มีคา่ เป็น 0 เพือ่ ป้องกนั การไม่ใส่ให้กับตวั รบั คา่ ในฟงั กช์ ่ันdef add(x = 0,y = 0): return x + yprint add(10,20)print add()ผลการทำงาน300ตวั อย่างdef multiprint( n=5, txt=\"Hello\" ): i=0 while i < n: print txtmultiprint()ผลการทำงานHelloHelloHelloHelloตวั อย่างdef factorial(n = 1): if n <= 1: return 1 return n*factorial(n-1)print \"2! = \",factorial(2)

62 การสร้างฟังกช์ น่ั (Defined Function)print \"3! = \",factorial(3)print \"4! = \",factorial(4)print \"5! = \",factorial(5)ผลการทำงาน2! = 23! = 64! = 245! = 12010.2 ตวั แปรแบบ Global (ทว่ั ไป) และ Local (เฉพาะส่วน) ในการประกาศตวั แปรตัวหนงึ่ ขนึ้ มาใช้ จะเปลอื งหนว่ ยความจำไปส่วนหนึง่ สำหรับเกบ็ คา่ ตวั แปร ดงั นั้นถา้เราประกาศตวั แปรมา 1 ตวั แลว้ นำไปใช้เพยี งในฟังก์ชั่นเดียว จะเปน็ การสนิ้ เปล่อื งโดยใชเ่ หตุ ดังน้ันควรประกาศตัวแปรแบบทัว่ ไปบา้ งตามความเหมาะสม โดยตัวแปรเฉพาะสว่ นทอ่ี ยู่ภายในฟังกช์ น่ั นั้น เม่อื ฟังกช์ ันจบการทำงานตวั แปรพวกนี้จะถกู ลบออกไปจากหน่วยความจำทนั ที ซึง่ ประโยชน์อกี อย่างหน่ึงของตวั แปรเฉพาะ (Local Variable) ก็คอื ส่วนอน่ื ๆของ โปรแกรมจะไม่รู้จกั ตัวแปรเฉพาะสว่ นท่ีอยู่ในฟงั กช์ นั่ เลย ดงั นั้นเราก็สามารถใช้ตัวแปรช่อื เดยี วกันได้พรอ้ มกันในคนละสว่ นของโปรแกรม โดยไมเ่ กิดข้อผดิ พลาด โดยในการทำงานหลัก ๆ ของโปรแกรมเราก็ต้องใช้ตัวแปรทัว่ ไป (Global Variable) โดยที่ตวั แปรท่วั ไปจะเป็นท่ีรูจ้ ักไปทงั้ โปรแกรมดังนัน้ ฟังกช์ นั่ ต่าง ๆ ก็สามารถเรยี กใช้ได้ด้วย โดยการเรียกใช้ตัวแปรท่ัวไปในนัน้ต้องใช้ดียเ์ วริ ด์ ที่ช่ือ global ตามดว้ ยชื่อตวั แปรแบบท่ัวไป ตวั อยา่ ง การใชต้ วั แปรแบบเฉพาะท่ี ตัวอยา่ ง การใช้ตวั แปรแบบทว่ั ไปx=5 x=5def hello(): def hello(): x=6 global x print x x=6hello() print xprint x hello() print xผลการทำงาน ผลการทำงาน65 6 6

บทที่ 11การใสข่ ้อมูลผ่านคียบ์ อรด์ (Input Data fromKeyboard) เราสามารถให้ผู้ใชส้ ามารถทีจ่ ะใสค่ า่ ที่เราตอ้ งการได้ผา่ นทางคียบ์ อร์ดโดยทำงานผา่ นฟังกช์ น่ั ที่ชอ่ื วา่ raw input รูปแบบการเขยี นคำส่งัvar = raw_input([prompt]) • prompt ขอ้ ความทเ่ี ปน็ คำถาม • var ตัวแปรทม่ี ารับขอ้ มูล ซง่ึ ค่าทส่ี ่งออกมาจาก raw input ฟงั กช์ ่ัน โดยมชี นิดขอ้ มลู เป็น String ตวั อย่างprint \"Halt!\"s = raw_input(\"Who Goes there? \")print \"You may pass,\", sเมือ่ สั่งทำงานจะแสดงข้อความดงั น้ีHalt!Who Goes there?ทำการกรอกข้อมูลงไปใน โดยในตัวอยา่ งนกี้ รอกคำว่า Josh ลงไป แลว้ จะทำการแสดงออกมาHalt!Who Goes there? JoshYou may pass, Josh 63

64 การใสข่ อ้ มลู ผ่านคยี บ์ อรด์ (Input Data from Keyboard) ตวั อย่างmenu_item = 0list = []while menu_item != 9: print \"--------------------\" print \"1. Print the list\" print \"2. Add a name to the list\" print \"3. Remove a name from the list\" print \"4. Change an item in the list\" print \"9. Quit\" menu_item = input(\"Pick an item from the menu: \") if menu_item == 1: current = 0 if len(list) > 0: while current < len(list): print current,\". \",list[current] current = current + 1 else: print \"List is empty\" elif menu_item == 2: list.append(raw_input(\"Type in a name to add: \")) elif menu_item == 3: del_name = raw_input(\"What name would you like to remove: \") if del_name in list: item_number = list.index(del_name) del list[item_number] #The code above only removes the first occurance of # the name. The code below from Gerald removes all. #while del_name in list: # item_number = list.index(del_name) # del list[item_number] else: print del_name,\" was not found\" elif menu_item == 4: old_name = raw_input(\"What name would you like to change: \") if old_name in list: item_number = list.index(old_name) list[item_number] = raw_input(\"What is the new name: \") else: print old_name,\" was not found\"print \"Goodbye\"

65 การทำงาน เมื่อทำงานจะแสดงข้อความดา้ นล่างนี้--------------------1. Print the list2. Add a name to the list3. Remove a name from the list4. Change an item in the list9. Quitให้พมิ พ์ 2 ลงไปแล้วกรอกคำว่า Jack และไล่การทำงานตา่ ง ๆ ดังตัวอย่างด้านล่าง ไปเรื่อย ๆ ซ่งึ น่ีคือการทำงานโดยการรับค่าผา่ นทางคยี ์บอร์ดนั้นเองPick an item from the menu: 2Type in a name to add: JackPick an item from the menu: 2Type in a name to add: JillPick an item from the menu: 10 . Jack1 . JillPick an item from the menu: 3What name would you like to remove: JackPick an item from the menu: 4What name would you like to change: JillWhat is the new name: Jill PetersPick an item from the menu: 10 . Jill PetersPick an item from the menu: 9Goodbye

66 การใสข่ อ้ มูลผา่ นคียบ์ อร์ด (Input Data from Keyboard)

ภาคผนวก กเรอ่ื งท่ีห้ามลมื ใน Python 1. Don’t forget the colons อยา่ ลมื โคลอน (Colon, :) เมือ่ จบคำสัง่ ควบคมุ ทิศทางของโปรแกรมตา่ ง ๆ เชน่ if, while หรือ for เป็นตน้ 2. Start in column 1 ไพธอนใช้ระบบแท็ปแทนปีกกาเพือ่ ควบคุมช่วงของการทำงาน และตอ้ งเรมิ่ จาก คอลมั ที่ 1 ทุกครง้ั ด้วย 3. Blank lines matter at the interactive prompt อยา่ เผลอมีบรรทัดว่างหรอื ขึ้นบรรทดั ใหม่ใน shell prompt ถา้ ไม่ชัวรว์ า่ เขียนคำสั่งจบในบรรทัดน้ัน ๆ 4. Indent consistently อย่าใช้ปมุ่ แท็ปปนกับการเคาะเวน้ วรรค โดยควรเลอื กวา่ จะใช้การแทป็ หรอื เคาะ วรรค์ ถา้ ใช้เคาะวรรคก็ควรใช้ให้ตลอดรอดฝัง่ โดย 1 แท็ป ให้มีขนาดเทา่ กับเคาะวรรค 4 คร้งั (4 whitespaces/tab) 5. Don’t code C in Python อยา่ เขยี นโค้ดแบบ C ในไพธอน เชน่ if (X==1): print X โดยในความ เปน็ จริงแล้วไมต่ อ้ งมี () กไ็ ด้ เปน็ ต้น 6. Don’t always expect a result บาง Method เชน่ Append หรอื Sort อยา่ ไปคิดวา่ มันจะ return obj บางคร้งั มนั return None หรือ Null ออกมา ซ่งึ เราไมจ่ ำเปน็ ต้องเขียน list=list.append(X) แต่ให้ เขยี น list.append(X) ลงไปได้เลย 7. Use calls and imports properly หลังเรียก Method ใหม้ ี () ด้วยเช่น function() อยา่ ใช้ function เฉยๆ และตอน Import ไมต่ อ้ งใสน่ ามสกุล file อย่าง import mod.py ใช้ import mod เฉยๆ ก็พอ 67

68 เรื่องท่หี ้ามลมื ใน Python

ภาคผนวก ขการติดต้ัง Python, wxPython และ Stani’sPython Editorข.1 การติดต้ัง Python * ในเอกสารนีอ้ า้ งองิ Python Version 2.4.3 1. ดาวน์โหลด Python 2.4 สำหรบั Windows ได้จาก http://www.python.org/download/ และเลือก version 2.4.x จากรายการดาวน์โหลด โดยเลือกรูปแบบ \"Python 2.4.x Windows installer\" รูปที่ ข.1: เลือกดาวน์โหลด Python 2.4 สำหรับ Windows 2. ดับเบิลคลก้ิ ท่ี Python-2.xxx.yyy.exe ทเ่ี ปน็ ไฟลท์ ี่เราดาวนโ์ หลด แล้วทำตามขัน้ ตอนการติดต้ังดงั ตอ่ ไปน้ี 69

70 การตดิ ต้งั Python, wxPython และ Stani’s Python Editor รปู ท่ี ข.2: ข้นั ตอนที่ 1 : ดบั เบิลคลก้ิ ทไ่ี ฟลต์ ิดต้งั รูปที่ ข.3: ขั้นตอนท่ี 2 : เลอื ก \"Install for all users\" รปู ที่ ข.4: ขั้นตอนท่ี 3 : ใหเ้ ลือกทต่ี ิดต้ังท่ี C:\Python24\

ข.1 การตดิ ต้งั Python 71 รูปที่ ข.5: ข้ันตอนที่ 4 : เลือกตดิ ตั้งทุกตวั เลอื ก รูปที่ ข.6: ขั้นตอนท่ี 5 : ดำเนนิ การตดิ ต้ัง รปู ที่ ข.7: ขน้ั ตอนท่ี 6 : เสรจ็ สน้ิ การตดิ ต้ัง

72 การตดิ ต้ัง Python, wxPython และ Stani’s Python Editorข.2 การตดิ ตั้ง wxPython * ในเอกสารนี้อ้างอิง wxPython Version 2.6.3.3 win32-unicode for Python 2.4 1. ดาวนโ์ หลด wxPython Version 2.6 สำหรบั Windows ไดจ้ าก http://www.wxpython.org/download.php และไปที่ Microsoft Windows และเลอื ก win32-unicode จากตาราง wxPython runtime โดยเลือก ทค่ี อรล์ มั Python 2.4 จากรายการดาวน์โหลด โดย win32-unicode สำหรบั Windows NT/2000/XP และ win32-ansi สำหรับ Windows 95/98/Me รูปท่ี ข.8: เลอื กดาวน์โหลด wxPython runtime for Python 2.4 รูปที่ ข.9: เลอื กสถานทดี่ าวน์โหลด 2. ดบั เบลิ คลกิ้ ที่ wxPython2.6-win32-unicode-2.6.3.3-py24.exe แลว้ ทำตามขนั้ ตอนการติดตั้งดงั ต่อไปน้ี

ข.2 การตดิ ตงั้ wxPython 73 รปู ที่ ข.10: ขนั้ ตอนท่ี 1 : ดับเบิลคลก้ิ ท่ไี ฟล์ตดิ ตงั้รูปท่ี ข.11: ขน้ั ตอนที่ 2 : หนา้ ต้อนรับการตดิ ตง้ั ให้ กด Nextรูปที่ ข.12: ขั้นตอนท่ี 3 : หน้ายอมรับข้อตกลงให้ กด Yesรปู ที่ ข.13: ขั้นตอนที่ 4 : หนา้ เลอื กสถานท่ตี ิดต้งั ใหเ้ ลอื กตามทโี่ ปรแกรมได้กำหนดไวแ้ ตแ่ รก

74 การติดตง้ั Python, wxPython และ Stani’s Python Editor รปู ท่ี ข.14: ขั้นตอนท่ี 5 : หน้าเลือก component ให้เลอื กทั้งหมด แล้วกด Nextรูปท่ี ข.15: ขั้นตอนที่ 6 : เข้าสู่ขั้นตอนการติดตัง้ และเมอื่ เสรจ็ แลว้ ให้เลือก checkbox ทั้งหมดเพื่อให้โปรแกรมติดตง้ั ทำการดดั แปลงระบบเพ่มิ เติมแล้วกด Finish

ข.3 การตดิ ต้งั Stani’s Python Editor 75ข.3 การตดิ ต้ัง Stani’s Python Editor * ในเอกสารน้ีอา้ งองิ Stani’s Python Editor Version 0.8.2.a for wxPython Version 2.6 win32-unicode and Python 2.4 1. ดาวนโ์ หลด Stani’s Python Editor Version 0.8.2.a ได้จาก http://www.stani.be/python/spe/page download และไปที่ Where to get? และเลอื ก SourceForge (mirror)รูปท่ี ข.16: ดาวน์โหลด Stani´s Python Editor Version 0.8.2.a สำหรับ Windows ได้จากลงิ ส์ SourceForge(mirror) รปู ท่ี ข.17: เลอื กสถานทีด่ าวนโ์ หลด 2. ดับเบลิ คล้ิกที่ SPE-0.8.2.a-wx2.6.1.0-py24.exe ที่เป็นไฟล์ที่เราดาวน์โหลด แลว้ ทำตามข้ันตอนการ ติดตง้ั ดังตอ่ ไปน้ี

76 การติดต้ัง Python, wxPython และ Stani’s Python Editor รปู ท่ี ข.18: ขน้ั ตอนที่ 1 : ดบั เบิลคล้กิ ทไ่ี ฟลต์ ิดต้งั รูปท่ี ข.19: ข้ันตอนท่ี 2 : หนา้ ต้อนรบั การตดิ ตั้งให้ กด Next รปู ที่ ข.20: ขั้นตอนที่ 3 : หน้าเลือกสถานท่ีตดิ ต้งั ให้เลอื กตามท่โี ปรแกรมได้กำหนดไวแ้ ต่แรก

ข.3 การตดิ ตั้ง Stani’s Python Editor 77รปู ที่ ข.21: ขน้ั ตอนท่ี 4 : เขา้ สู่ข้นั ตอนการติดตัง้ โดยกด Next เพื่อเรมิ่ การตดิ ตงั้รปู ท่ี ข.22: ขัน้ ตอนที่ 5 : เขา้ สขู่ ั้นตอนการติดต้ัง และเสรจ็ สิ้นการตดิ ตง้ั

78 การติดต้งั Python, wxPython และ Stani’s Python Editor

ภาคผนวก คอธิบายส่วนต่าง ๆ พอสังเขปของโปรแกรม SPE รูปที่ ค.1: เปดิ โปรแกรม Stani’s Python Editor หรอื เรยี กส้ัน ๆ วา่ SPE ขนึ้ มา 79

80 อธิบายส่วนต่าง ๆ พอสังเขปของโปรแกรม SPE รูปท่ี ค.2: หนา้ ตา่ งโปรแกรม Stani’s Python Editor (SPE)ค.0.1 SidebarExplore เปน็ หนา้ ตา่ ง Class browser สำหรบั แสดงรายการ class, method และ function ท่ีแสดงออกมาเปน็โครงสรา้ งต้นไม้Index หน้าต่างทท่ี ำหน้าทค่ี ้นหาอตั โนมัติสำหรบั สรา้ ง index เพอ่ื ทำ index ใหก้ ับการคน้ โดยทำ index จาก classและ and methodTodo หนา้ ต่างแสดงรายการทีต่ อ้ งทำในไฟลน์ น้ั ๆNotes หน้าตา่ งแสดงหมายเหตตุ ่าง

81Browser หนา้ ตา่ งในการแสดงไฟล์ใน folder หรอื directory ที่ไฟล์น้นั อยู่ ทำงานคล้าย ๆ กบั Windows Explorerค.0.2 SourceEditor หน้าต่างสำหรับในการพมิ พ์โคด้ คำส่ังต่าง ๆUML view หนา้ ตา่ งแสดง Graphical layout ของลำดบั ของ class hierarchyPydoc หน้าต่างสร้างไฟล์ documentation แบบอัตโนมัติSeparators หนา้ ต่างสำหรับใช้ separator เพื่อทำ Label ของชดุ คำสงั่ ของโปรแกรมค.0.3 ToolsShell เป็นส่วนรายงานความผดิ พลาดต่าง ๆ ของโปรแกรมท่ีเราเขยี น และสามารถใช้เป็นตวั กระโดดข้ามไปยงัError line ได้ง่าย และยังใชใ้ นการพิมพ์คำสั่ง หรอื โคด้ โปรแกรมต่าง ๆ แทน Editor ไดด้ ้วย รปู ที่ ค.3: ShellLocal object browser เป็นสว่ นบอกรายการตัวแปร, อ็อปเจค็ และคลาส ต่าง ๆ เพ่อื ใช้ในการดูชว่ งของชีวิตของตวั แปร และอ็อปเจ็คต่าง ๆ และยังชว่ ยในการค้นหาและกระโดดไปยงั ตวั แปร, ออ็ ปเจค็ และคลาส ทเี่ ราตอ้ งการได้ง่าย

82 อธบิ ายส่วนต่าง ๆ พอสงั เขปของโปรแกรม SPE รูปที่ ค.4: Local object browserSession เป็นตวั บนั ทึกการพิมพ์โค้ดโปรแกรมสำหรบั ช่วยในการไม่ตอ้ งพิมพ์ใหม่ในกรณีที่ใช้ shell ในการพิมพ์คำสั่งโปรแกรมต่าง ๆ รูปท่ี ค.5: SessionOutput ถ้าคุณสัง่ ให้โปรแกรมทำงานใน SPE โดยใช้คำสัง่ Tools > Run/Stop ตัวผลการทำงานจะออกมาในหนา้ ตา่ งน้ี รวมถงึ Error ต่าง ๆ โดยสามารถกระโดดไปยงั โคด้ หรือชดุ คำส่งั ที่ Error นั้น ๆ ไดจ้ ากหน้าต่างนี้ รปู ท่ี ค.6: Output

83อ่ืน ๆ 1. Find หน้าตา่ งสำหรับการคน้ หาขอ้ มลู ต่าง ๆ 2. Browser หนา้ ตา่ งทีใ่ ช้ในการเรียกรายชอ่ื ไฟล์ซึง่ ทำงานเหมอื น Windows Explorer 3. Recent หน้าตา่ งแสดงรายชอ่ื ไฟล์ทเี่ ราเปิดอยู่ 4. Todo หนา้ ต่างแสดงรายการท่ีต้องทำใน Project หรือไฟล์ที่เราเปดิ อยู่ 5. Index หน้าต่างคำสงั่ สำหรับเรยี กใชส้ ารบัญงานตา่ ง ๆ ภายในไฟล์ 6. Notes หนา้ ตา่ งคำสง่ั หมายเหตุสำหรับป้องกันการหลงลืม

84 อธิบายส่วนตา่ ง ๆ พอสงั เขปของโปรแกรม SPE

ภาคผนวก งการเขยี น, Debug และส่งั ใหโ้ ปรแกรมทำงานง.1 การเขยี นโปรแกรมใน SPE และสง่ั ใหโ้ ปรแกรมทำงาน เพื่อทดสอบการทำงานใหพ้ มิ พค์ ำสง่ั โปรแกรมเร่มิ ตน้ กอ่ นโดยพมิ พ์คำสั่งดังนี้>>> print \"Hello, World!\" พมิ พ์ลงใน Source Editor แล้วไปไปที่ \"Tools\" ท่ี menu bar แลว้ ไปท่ี คำสัง่ \"Run without argu-ments/Stop\" หรอื กด short-key Ctrl+Shift+R รปู ท่ี ง.1: สัง่ ใหโ้ ปรแกรมทำงาน รปู ท่ี ง.2: ผลการทำงาน 85

86 การเขียน, Debug และส่งั ให้โปรแกรมทำงานง.2 การ Debug โปรแกรม รปู ที่ ง.3: การแจง้ Error เพือ่ ใชป้ ระกอบการ DebugFile \"C:\Documents and Settings\Ford AntiTrust\Desktop\helloworld.py\", line 1print \"Hello, World!^SyntaxError: EOL while scanning single-quoted string จากตวั อยา่ งได้แจง้ Error ได้สองท่ีด้วยกัน คือหน้าต่าง Editor ซึง่ จะมีเส้นใต้เปน็ ฟันปลาสีแดงขีดตามบรรทัดท่ีมี Error และในหน้าต่าง Output ก็มี Error Code แจ้งไว้ โดยได้บอกไว้ว่าที่ line 1 มี Error โดยบอกว่าเปน็ SyntaxError และมปี ญั หาจาก Systax ลักษณะ single-quoted string มีปญั หานั้นเอง โดยปญั หาในการแจง้ ตา่ ง ๆ น้นั ตวั Interpreter จะแจ้งให้ทราบได้จาก line ท่ีมีปัญหา เช่นตวั อยา่ งดา้ นลา่ งนไี้ ด้แจ้งไวว้ ่ามาจาก line ที่ 1File \"C:\Documents and Settings\Ford AntiTrust\Desktop\helloworld.py\", line 1 รวมไปถงึ แจ้ง column ของ line วา่ น่าจะผิดทคี่ ำสั่งใด ในทน่ี ้ผี ิดทคี่ ำสง่ั print นัน้ เองprint \"Hello, World!^SyntaxError: EOL while scanning single-quoted string

ภาคผนวก จข้อมูลอา้ งองิ • Python programming language. http://www.python.org/, Python Software Foundation, 2006. • Python programming language. http://en.wikipedia.org/wiki/Python programming language, Wikipedia the free encyclopedia, 2006. • Python software. http://en.wikipedia.org/wiki/Python software, Wikipedia the free encyclope- dia, 2006. • Comparison of programming languages. http://en.wikipedia.org/wiki/Comparison of programming languages, Wikipedia the free en- cyclopedia, 2006. • Python Tutorial Online. http://python.cmsthailand.com/, CMSthailand.com, 2005. • An empirical comparison of C, C++, Java, Perl, Python, Rexx, and Tcl — March 2000 refereed journal paper. http://page.mi.fu-berlin.de/p˜rechelt/Biblio/jccpprt computer2000.pdf, Lutz Prechelt, 2000. • Programming in Python. http://www-128.ibm.com/developerworks/library/os-python5/index.html, Robert Brunner ([email protected]), Research Scientist, National Center for Supercomputing Applications, 2005. • wxPython, a blending of the wxWidgets C++ class library. http://www.wxpython.org/, OS- AF (Open Source Applications Foundation), 2006. • Stani’s Python Editor, Python IDE with Blender, Kiki, PyChecker, wxGlade & XRC support. http://pythonide.stani.be/, S. Michiels, Amsterdam, the Netherlands 2006. • Beginning Python Wiley Publishing, Inc., Peter Norton, Alex Samuel, David Aitel, Eric Foster-Johnson, Leonard Richardson, Jason Diamond, Aleatha Parker, Michael Roberts, 2005. • Python http://veer.exteen.com/, วรี ์ สตั ยมาศ, 2005. • เรอ่ื งที่ห้ามลืมใน Python http://plynoi.exteen.com/20060827/python, Plynoi, 2006. 87

ดรรชนี64 bit double precision, 30 จำนวนเชิงซอ้ น (Complex Numbers), 31Alternatively, 50 จำนวนเต็ม (Integer), 29 จำนวนเต็มธรรมดา (Plain Integer), 29Category และ Application Domains, 16 จำนวนเตม็ แบบยาว (Long integer), 30 3D Graphics Rendering, 17 สายอักขระ (String หรือ Array of Characters), Database Access, 16 39 Desktop GUI, 17 Flow of Control, 50 Education, 17 Function argument, 59 Game, 17 Functions GUI, 17 Network programming, 17 abs(), 26 Numeric computation, 17 complex(), 31 Scientific, 17 float(), 31 Software builder, 17 int(), 30 Software Testing, 17 len(), 34 Web และ Internet Development, 16 max(), 26Colon Symbol, 32 min(), 26, 27Comment, 22 print, 21Concatenation Symbol, 40 range(), 27, 53–55Control flow, 50 raw input, 63 set(), 35Data type, 27 sum(), 27 ชนดิ ข้อมูลแบบการรวมกลุม่ ข้อมลู (Collection type(), 29Data Types), 32 Google, 19ดกิ ชนั นารี (Dictionary หรือ Groupings of Guido van Rossum, 13Data Indexed by Name), 33ทับเบล้ิ (Tuples) และ อนกุ รม (Sequences), Hello World, 21, 85 33 Industrial Light & Magic, 18ลสิ ต์ (List), 32 อาร์เรย์ (Array), 32 Language Evaluation Criteria, 15 เซต็ (Sets), 34 Cost, 15ตวั เลข (Numbers), 29 Readability, 15 imaginary number, 31 Reliability, 15 signed integer, 29 Writability, 15 จำนวนตรรกะ (Boolean), 30จำนวนจรงิ (Floating-point numbers), 30 Multi-paradigm language, 15 88

ดรรชนี 89NASA, 19 return , 22 try, 22, 56Operator while, 22, 53 *, 25 with, 22 **, 25, 30 yield, 22 +, 25 -, 25 Stani’s Python Editor (SPE), 75 /, 25 Browser, 81 %, 25 Explore, 80 Index, 80Python, 13 Notes, 80 Source, 81Repetition Symbol, 21 Editor, 81Reserved words (Keywords), 22 Pydoc, 81 Separators, 81 and, 22, 47 UML view, 81 as, 22 Todo, 80 assert, 22, 55 Tools, 81 break, 22, 54 Local object browser, 81 class, 22 Output, 82 continue, 22, 54 Session, 82 def, 22, 58 Shell, 81 del, 22 อนื่ ๆ, 83 elif, 22, 51 การเขยี น, Debug และส่ังให้โปรแกรมทำงาน, 85 else, 22, 51 การ Debug โปรแกรม, 86 else clauses, 54 การส่ังให้โปรแกรมทำงาน, 85 else if, 51 การเขยี นโปรแกรมใน SPE, 85 except, 22, 56 หน้าต่างโปรแกรม, 80 exec, 22 finally, 22 statement block, statement scope, 48 for, 22, 53 String Concatenation Symbol, 40 from, 22 String formatting operator, 41 global, 22, 49, 62 Symbol if, 22, 51 import, 22 *, 21 in, 22, 45, 53–55 +, 40 is, 22, 45 „ 40 lambda, 22 :, 32 not, 22, 47 #, 22 or, 22, 47 % (String formatting operator), 41 pass, 22, 54 print, 22 type raise, 22, 56 bool, 30 return, 59 complex, 31 dict, 33

90 ดรรชนีFalse, 30 การคำนวณพนื้ ฐาน (normal arithmetic oper-float, 30 ators), 25int, 29 คณู , 25list, 32 บวก, 25long, 30 ยกกำลัง, 25set, 34 ลบ, 25True, 30 หาร, 25tuple, 34 หารเอาเศษ, 25 อนั ดับความสำคัญของการคำนวณ, 25wxPython, 72 การตัง้ ตัวช่อื แปร, 22 การตดิ ตง้ั , 69การควบคุมทิศทางของโปรแกรม, 50 Python, 69การจัดการความผดิ ปกตขิ องโปรแกรม (Error Check- Stani’s Python Editor (SPE), 69, 75ing), 51, 55 wxPython, 69, 72assert Statements, 55 การสรา้ งฟงั กช์ ่ัน (Defined Function), 58try-except และ raise Statements (Exception Global Variable, 62handling), 56 Local Variable, 62การตัดสินใจ (Decisions, Choice or Selection), การคนื คา่ กลบั (return) , 6051 การรับคา่ ของฟงั กช์ ่ัน (Function Argument), 60การตัดสนิ ใจ (Decisions, Choice หรือ Selec- คา่ มาตรฐานของการรบั ค่า (Function Default Ar-tion) gument, 60elif, 51 การเปรียบเทยี บ (Comparisons), 43else, 51 ตัวอยา่ ง, 45else if, 51 การแสดงผลเบอื้ งต้น (Printing) และสญั ลกั ษณ์ทีเ่ กย่ี วขอ้ ง,if, 51 19 switch, 52 ขอ้ เด่นของภาษาไพธอน, 15การวนทำซ้ำ (Loop, Iteration), 51break, 54 คำสงวน, 22continue, 54do-while, 55 ชนิดของตัวแปร, 27else clauses, 54 ช่วงของการทำงาน, 48for, 53 ชว่ งของการทำงาน (Statement block), 49while, 53 ช่วงชวี ติ ของตวั แปร (Life time หรอื Variable s-การคำนวณทางคณติ ศาสตร์ (Arithmetic Mathemat- cope), 49ics), 23 ซอฟต์แวรท์ ี่เขียนด้วยไพธอน, 17การคำนวณผา่ นฟงั กช์ น่ั ภายใน (Built-in Math Battlefield 2, 18Functions), 26 BitTorrent, 17การหาค่าสัมบรู ณ,์ 26 Blender, 18กำหนดจำนวนตวั เลขทศนยิ ม, 27 Chandler, 18จำนวนท่ีน้อยทีส่ ดุ และมากท่สี ดุ ในกลมุ่ , 26 Civilization IV, 18ช่วงของขอ้ มูลตัวเลข, 27 EVE Online, 18หาผลรวมทัง้ หมดในชดุ ขอ้ มูล, 27 Indian Ocean Tsunami Detector, 18

ดรรชนี 91 Kombilo, 18 Mailman, 18 MoinMoin, 18 OpenRPG, 18 Plone, 18 Stani’s Python Editor(SPE), 18 Trac, 18 Turbogears, 18 ViewVC, 18 Zope, 18นพิ จน์ทางตรรกะศาสตร์ (Boolean Expressions), 46 AND, 47 NOT, 47 OR, 47ประวัต,ิ 13 Python 1.0, 13 Python 2.0, 14 อนาคต, 14หลกั ปรชั ญาของภาษาไพธอน, 15


Like this book? You can publish your book online for free in a few minutes!
Create your own flipbook