October 30, 2011

Python: การควบคุมทางเลือก และการวนซ้ำ

ใน Python เมือจบการถาม if ต้องตามด้วยเครื่องหมาย : (colon) และขึ้นบรรทัดใหม่เสมอ ซึ่งบรรทัดใหม่ต้องเว้นด้านหน้าเพิ่มจากเดิม 1 indent level เท่านั้นด้วย มากกว่าน้อยกว่านี้ไม่ได้

นี่อาจฟังดูยุ่งยากเกินกว่าที่จะจำได้ ไม่ต้องจำครับ เพราะตอนใช้งานจริง จะพบว่ามันเป็นธรรมชาติมากๆ

อย่างไรก็ตาม มีเรื่องที่ผิดกันบ่อยๆ คือ หลังประกาศ if แล้ว ยังไม่รู้ว่าจะทำอะไรกับมันต่อ (แต่รู้แน่ๆ ว่าต้อง check if แบบนี้) ตรงนี้จะปล่อยว่างๆ ไว้ไม่ได้ครับ (เขียนคอมเมนท์ก็ไม่ช่วย) ต้องใช้คำสั่ง pass อย่างนี้

ข้อดี (หรือเสีย) ของ pass คือ กลับมาเขียน code ต่อไม่ต้องลบ pass ทิ้งก็ได้ (แต่ก็ควรจะลบทิ้ง)

การเข้า elif และ else สังเกตว่าตัว check statement จะอยู่ที่ความลึก indent เดียวกันกับ if นะครับ

อ๋อ... Python ไม่มี switch case ให้ใช้นะครับ



การวน for ใน Python จะประหลาดกว่าภาษาอื่นหน่อย ตรงที่ต้องอาศัย range() เข้าช่วย

การจบ loop ทันทีเมื่อเจอ condition หรือข้ามบาง condition ใช้ break และ continue เหมือนภาษาอื่นครับ

ส่วนการวน loop แบบ while ก็จะคล้ายๆ for ครับ
ลูกเล่นพิเศษของ Python คือ else สำหรับ loop ครับ มันจะทำงานก็ต่อเมื่อ loop จบลงธรรมดาๆ และจะไม่ทำงานถ้า loop จบด้วย break เช่น
อนึ่ง Python ไม่มี do ... while แบบภาษาอื่นให้ใช้ด้วยนะครับ (เพราะ while เฉยๆ ก็ครอบคลุมแล้ว)

2 comments:

  1. code ตัวอย่างล่างสุด ตรง line 5 กะ 15 ผิดอยุ่ป่าวคับ ?

    จาก
    if n > 32:
    ต้องเป็น
    if i > 32:

    ครับผม

    ReplyDelete
    Replies
    1. ผิดจริงด้วย แก้ไขแล้วฮะ ขอบคุณมาก

      Delete