คำสั่งลูป
ลูป (Loop) เป็นสิ่งที่จำเป็น และทรงพลังที่สุดของการแก้ปัญหาด้วยการเขียนโปรแกรมบนคอมพิวเตอร์ เพราะมันช่วยย่นระยะเวลาของการทำงานได้ไม่จำกัด โดยทั่วไปเกือบทุกภาษาจะมีคำสั่งประเภท ลูป อยู่เป็นจำนวนมาก เพื่อให้เลือกใช้งานได้หลายกรณี แต่สำหรับ ไพธอน ไม่มี เพราะลูป เหล่านี้มักเป็นต้นเหตุของข้อผิดพลาดจากการเขียนโปรแกรม เขียนแล้วมึน เขียนแล้วงง นานเข้าก็ไม่เข้าใจ เนื่องจากคำสั่ง ลูป ที่เขียนนั้นซับซ้อนเกินไปนั่นเอง สรุปแล้ว ไพธอน มีลูปเพียง 2 แบบเท่านั้น ไม่มีมากกว่านี้เด็ดขาด ได้แก่
- for
- while
ถ้าเคยเขียนภาษาอื่นมา for กับ while ก็ดูจะปกติดี ภาษาอื่นมีหมด แล้วอะไรขาดไปกันแน่ สิ่งที่ขาดไปคือรูปแบบการใช้ ไม่ใช่คำสั่งครับ ยกตัวอย่างเช่น C C# และ Java สามารถเขียน for ได้สารพัดแบบ ทำให้ for กลายเป็นสิ่งมหัศจรรย์ ทำทุกอย่างได้ด้วย for แล้วก็งงกันไปหลายตลบ ส่วนใน ไพธอน มีวิธีใช้ for แบบเดียวเท่านั้นครับ for จะต้องอยู่ในรูปแบบดังนี้
for i in lists:
statement1
statement2
ก่อนอื่นจะเห็นว่าคล้ายคล้าย if ครับ มี colon : เพื่อบอกจุดจบของคำสั่งที่มีคำสั่งย่อย จุดที่น่าสนใจอยู่ที่ for i in lists นี่แหละครับ นี่คือรูปแบบที่แน่นอนตายตัว หมายความว่า การวนรอบแต่ละครั้งค่า i จะเปลี่ยนไป โดยค่าที่อยู่ใน i จะถูกนำมาจาก ลิสต์ ที่ชื่อ lists ตามลำดับจนหมด ยกตัวอย่างเช่น
for i in [0,1,2,3,4]:
print ’i’,i
จะได้ผลดังนี้
i 0 i 1 i 2 i 3 i 4
อ่านมาถึงตรงนี้ผู้ที่เคยเขียนโปรแกรมสารพัดภาษา น่าจะเริ่มงง แล้วจะเอาไปใช้ได้อย่างไรกัน เรื่องราวไม่ใหญ่โตอย่างที่คิดครับ ปัญหาคือทุกคนมักจะชินกับการบวกเลขแล้วใช้ index ในการเข้าถึง อาเรย์ หรืออะไรก็แล้วตามในทำนองนี้ เพราะนี้คือจุดประสงค์ของการใช้ ลูป แต่นี่ก็มันจะเป็นจุดที่ทำให้เขียนโปรแกรมผิดกันนั่นเอง เพราะเงื่อนไขการเริ่มและจบนั้นถูกกำหนดด้วยเงื่อนไข เช่น 0 ถึง 4 แต่ถ้าค่าเกิดกระโดดขึ้นมาโดยบังเอิญแทนที่จะมีค่าเป็น 4 แต่กลับมีค่าเป็น 5 ลูปนี้จะไม่มีวันจบ ด้วยเหตุนี้เอง ถ้าเรารู้ขอบเขตแน่นอนการใช้ ลิสต์ จะมีความถูกต้องมากกว่า ดังในกรณีนี้ มีเลขเรียงกัน 0 1 2 3 4 ถ้าใช้ลูปแบบข้างบน ค่าที่ได้จะไม่มีวันกระโดดเด็ดขาด
อย่าพึ่งตกใจว่าวิธีนี้จะบานปลายถ้าต้องลูปเลข 1 ถึง 1000000 เพราะต้องมีลิสต์ใหญ่มหาศาล และก็ไม่จำเป็นต้องมีซะด้วย เพราะมันเป็นเลขเรียงกัน ใช่แล้วครับ ไม่จำเป็น ไพธอน มีวิธีที่ง่ายกว่า ในกรณีของ for นี้ มันเป็นการ for ลงไปในชุดเลขที่เรียงกัน เพราะฉะนั้น ไพธอน จึงมีฟังก์ชั่นเอาไว้สำหรับสร้าง ลิสต์ โดยเฉพาะ 2 คำสั่ง ได้แก่ range() และ xrange() สำหรับตัวอย่างที่ผ่านมา สามารถเขียนแบบ ไพธอน ได้ดังนี้
for i in range(5): print ’i’,i
จริงๆ แล้ว range() กับ xrange() ให้ผลเหมือนกันทุกประการ แต่ต่างกันที่เวลาทำไปใช้งาน โดย range() จะสร้าง ลิสต์ ตามที่ระบุแล้วคืน ลิสต์ นั้นกลับมาทันที แต่ xrange() จะไม่ได้สร้าง ลิสต์ ทั้งหมดขึ้นมาในทีเดียว แต่ละส่งให้ทีละค่า วิธีของ xrange() นี้เรียกว่า Generator ครับ เหมาะสำหรับงานที่มีข้อมูลจำนวนมากและไม่จำเป็นต้องเก็บทุกอย่างในหน่วยความจำในครั้งเดียว
สำหรับ while นั้นตรงไปตรงมาเหมือนกับ while ปกติ แต่ก็เช่นเดียวกับคำสั่งอื่นๆ ของ ไพธอน ที่มีรูปแบบการใช้งานเพียงแบบเดียว ดังนี้
while expression:
statement
statement
เงื่อนไข expression มีลักษณะเดียวกับใน if เพราะฉะนั้นตัวอย่างด้านบนจะเขียนด้วย while ได้ดังต่อไปนี้
i = 0
while i < 5:
print ’i’,i
i += 1 - Printer-friendly version
- 2279 reads

wow gold
lianyk
Welcome to wow gold our wow Gold and wow power leveling store. We wow gold are specilized, wow power leveling professional and reliable wow power leveling website for wow power leveling selling and wow gold service. By the World of Warcraft gold same token,we offer wow power leveling the best WoW service wow power leveling for our long-term and wow powerleveling loyal customers. wow powerleveling You will find wow powerleveling the benefits and value powerleveling we created powerleveling different from other sites. As to most people, power leveling they are unwilling to power leveling spend most of wow power leveling the time wow gold grinding money Rolex for mounts or rolex replica repair when replica rolex they can purchase Watches Rolex what they Rolex Watches are badly need.
Post new comment