หัดเขียน Python การวนลูป For

หัดเขียน Python การวนลูป For

ภาษา python นั้นเป็นภาษาในตระกูล C แต่การใช้ for loop แตกต่างกับภาษาอื่นที่อยู่ในตระกูล C เหมือนกัน ตัวอย่าง for loop ทั่วไปก็อยู่ในรูปแบบ

for(int i = 0; i < n; i++){}

แต่ใน python นั้นจะไม่ใช่แบบนี้เลยครับแตกต่างกันไปเลยที่นี้เรามาดูกันดีกว่ามันมันจะ loop กันยังไง โดยผมจะใช้ Python 3.0 นะครับเพราะฉะนั้นใครใช้ Python 2.0 จะมี syntax แตกต่างกันตรง print ต้องมีวงเล็บกับไม่มี

มาดูลูปแรกกันเลยครับ

for x in range(1, 10):
print("x : ", x)

หัดเขียน Python การวนลูป For

จะเห็นจะไม่เหมือนกับ for loop ในภาษาอื่นที่ต้องกำหนดค่าเริ่มต้น เช็คเงื่อนไข แล้วก็ step การเพิ่มค่า แต่ใน python นั้นใช้ฟังก์ชั่น build in อย่าง range ใส่ค่าเริ่มต้น กับ limit สิ้นสุด จากตัวอย่างคือ 10 นั้นก็คือจะทำถึง 9 เพราะไม่เท่ากับหรือมากกว่า 10 ส่วน step การเพิ่มค่าจะ default ที่ 1 ครับ

ตัวอย่างต่อไปจะเป็นการกำหนดการเพิ่มค่าของ step

print("step loop")
for x in range(1,20, 2):
print ("x : ", x)

จากตัวอย่างก็จะคล้ายกับตัวอย่างที่แล้วแต่มีการใส่ค่า step เข้ามาคือ 2 นั้นเองก็จะได้ผลลัพธ์ดังรูปเลยครับ

หัดเขียน Python การวนลูป For

ต่อมาจะเป็นการวนลูปถอยหลังหรือถ้าในภาษาอื่นก็ for(int i = n; i > 0; i–){} นั้นเอง ใน python นั้นก็จะใช้ range เหมือนเดิมแค่ปรับเปลี่ยนค่าเล็กน้อย ไปดูกันในโค้ดตัวอย่างเลยครับ


print('reverse step')
for x in range(5, 0, -1):
print("x : ", x)

หัดเขียน Python การวนลูป For

จะเห็นว่าแค่ปรับค่าเริ่มต้นให้เป็นค่ามาก แล้วค่า limit เป็น 0 ส่วน step ก็เป็นค่าลบก็เท่านั้น ดังนั้นการวนลูปใน python นั้นจะใช้ range เป็นส่วนใหญ่เลยแต่ก็จะมีอีกอันคือ xrange เท่าที่อ่านคือ xrange นั้นจะมีการใช้ memory และประสิทธิภาพดีกว่าแต่ใน python  3 มีการบอกว่าฟังก์ชั่น range มีการปรับแต่งให้ทำงานเทียบเท่ากับ xrange แล้วเพราะฉะนั้นควรจะใช้ range กันได้แล้วครับ

นอกจากการวนลูปแบบกำหนดเป็นตัวเลขผ่าน range แล้ว for loop ของ python นั้นยังทำออกมาแบบ all in one เลยเพราะในภาษาอื่นจะมีการใช้ for each เพื่อวนตามจำนวนข้อมูลแต่ใน python นั้นแค่ for in ธรรมดานี้แหละใช้ได้หมดเลย


string = "Hello World"
for x in string:
print(x)

หัดเขียน Python การวนลูป For

จากตัวอย่างจะเห็นว่าตัวแปร string เก็บข้อความว่า Hello World พอมาใช้ for in จบเลยง่ายมากเหมือนใช้ foreach ในภาษาอื่นเลย ลดการสับสน สำหรับใครที่เขียนหลายภาษา เพราะบ้างภาษาใช้ in บ้างภาษาใช้ as บ้างก็ข้อมูลอยู่ด้านหน้า บ้างภาษาข้อมูลอยู่หลัง

อีกตัวอย่าง


collection = ['hey', 10, 'F']
for x in collection:
print(x)

หัดเขียน PYTHON การวนลูป FOR

ตัวอย่าง loop array 2 มิติ


list_of_lists = [ ['x1', 'x2', 'x3'], ['y1', 'y2', 'y3'], ['z1', 'z2', 'z3']]
for list in list_of_lists:
for x in list:
print(x)

หัดเขียน PYTHON การวนลูป FOR

จะเห็นว่าไม่ต้องเช็ค length อะไรเลย for in 2 รอบจบ เป็นภาษาที่ใช้ for loop ได้รวดเร็วและสั้นๆง่ายๆเลย ก็เป็นอันจบสำหรับการใช้ For loop ซึ่งแตกต่างจากภาษาอื่นที่อยู่ในเครือ C Family ครับ ผมก็ขอจบบทความนี้ไว้แค่นี้นะครับ

Download Sourcecode

Add a Comment

Your email address will not be published. Required fields are marked *