Python ตอนที่ 3 Python Syntax

การเขียนโปรแกรมภาษา Python มีรูปแบบที่แตกต่างกับการเขียนโปรแกรมในภาษาอื่น ๆ อยู่พอสมควร เช่น ไม่ต้องมีเซมิโคลอน ; ปิดท้ายคำสั่ง ให้ความสำคัญกับการจัดย่อหน้า เป็นต้น

Python Indentation การจัดย่อหน้าในภาษาไพธอน

โดยปกติ ในภาษาโปรแกรมอื่น ๆ เราจัดย่อหน้าเพียงเพื่อให้เกิดความสวยงาม อ่านโค้ดง่าย โดยไม่มีผลต่อการทำงานของโปรแกรมเลย แต่สำหรับภาษา Python นั้นไม่ใช่

ในภาษา Python การจัดย่อหน้ามีความสำคัญมากกว่าเรื่องความสวยงาม เพราะไพธอนใช้การจัดย่อหน้าเพื่อบ่งบอกขอบเขตของโค้ด (Block of code)

ตัวอย่างการใช้ย่อหน้าเพื่อกำหนดขอบเขตของโค้ดใน Python

gender = 'M'
if gender == 'M':
    print("You are a man")
else:
    print("You are a woman")

จากโค้ดตัวอย่างด้านบน บรรทัดที่ 2 เราเขียนคำสั่งตรวจสอบเงื่อนไขด้วย if โค้ดบรรทัดถัดมาที่เป็นคำสั่งทำงานตามเงื่อนไข ต้องย่อหน้าเข้ามา 1 แท็บ เพื่อเป็นการบอกให้รู้ว่าโค้ดบรรทัดนี้อยู่ภายในบล็อกของคำสั่ง if

ถ้าไม่มีการจัดย่อหน้าดังกล่าว ตัว Editor จะแจ้งข้อผิดพลาดว่าต้องจัดย่อหน้า ดังตัวอย่าง (ในตัวอย่างใช้ PyCharm)

จากตัวอย่างด้านบน PyCharm แจ้งข้อผิดพลาดในโค้ดบรรทัดที่ 3 ว่า Indent expected คือบรรทัดนี้ต้องมีการจัดย่อหน้า เพราะเป็นคำสั่งที่อยู่ภายในคำสั่ง if อีกที

ดังนั้น เมื่อเขียนโปรแกรมด้วยภาษา Python สิ่งหนึ่งที่ต้องระวังอย่างมากก็คือการจัดย่อหน้า

จัดย่อหน้าเกิน 1 แท็บ ได้หรือไม่

การจัดย่อหน้าใน Python ดังหัวข้อที่แล้ว ที่บอกว่าให้จัดย่อหน้า 1 แท็บ ก็เพราะว่า เราไม่มีความจำเป็นที่จะต้องเคาะถึง 2 หรือ 3 แท็บ (โดยปกติเราก็คงไม่ทำใช่ไหมครับ)

แต่อย่างไรก็ตาม ในแต่ละบล็อกคำสั่ง เราสามารถจัดย่อหน้าโดยเคาะแท็บเกิน 1 แท็บก็ได้ โดยจะไม่มีผลกับการทำงานของโปรแกรม ดังตัวอย่าง

gender = 'M'
if gender == 'M':
        print("You are a man")
else:
    print("You are a woman")

จากตัวอย่าง โค้ดบรรทัดที่ 3 ผมเคาะแท็บไป 2 แท็บ โค้ดก็ยังสามารถทำงานได้เหมือนเดิม ไม่มีอะไรผิดพลาด

สรุปว่า เราจะเคาะแท็บกี่แท็บก็ได้ แต่อย่างน้อยที่สุดต้องมี 1 แท็บ

โค้ดในบล็อกเดียวกัน ต้องจัดแท็บเท่ากัน

จากที่ได้กล่าวในหัวข้อก่อนหน้านี้ว่า เราสามารถจัดย่อหน้าโค้ดในบล็อกโดยเคาะมากกว่า 1 แท็บก็ได้ แต่มีข้อแม้สำคัญอยู่ว่า โค้ดทุกบรรทัดที่อยู่ในบล็อกเดียวกัน ต้องจัดแท็บให้เท่ากัน ไม่ใช่ว่า บรรทัดหนึ่ง 1 แท็บ อีกบรรทัดหนึ่ง 2 แท็บ แบบนี้ไม่ได้เด็ดขาด

ตัวอย่างโค้ดที่ถูกต้องต้องเป็นแบบนี้

gender = 'M'
if gender == 'M':
    print("You are a man")
    print("You are handsome")
else:
    print("You are a woman")

ถ้าจัดแท็บไม่เท่ากันจะเกิด Error ขึ้น

จัดย่อหน้าด้วยช่องว่าง Space เพียงเคาะเดียวก็ยังได้

การจัดย่อหน้าใน Python ไม่ได้จำกัดว่าต้องจัดด้วยปุ่ม Tab เท่านั้น เราสามารถจัดย่อหน้าด้วยปุ่ม Space bar คือจัดย่อหน้าด้วยช่องว่างก็ได้เช่นกัน ที่สำคัญคือ ถ้ามีโค้ดหลายบรรทัดในบล็อกคำสั่งเดียวกัน ต้องเคาะ Space bar ให้เท่ากันด้วย ดังโค้ดตัวอย่าง

gender = 'M'
if gender == 'M':
 print("You are a man")
 print("You are handsome")
else:
    print("You are a woman")

จากโค้ดด้านบน โค้ดบรรทัดที่ 3 และ 4 (อยู่ในขอบเขตของคำสั่ง if) ถูกจัดย่อหน้าด้วย Space bar เพียงหนึ่งเคาะ ส่วนบรรทัดที่ 6 (อยู่ในขอบเขตของคำสั่ง else) จัดย่อหน้าด้วย Tab 1 แท็บ

การสร้างตัวแปรในภาษา Python

ในภาษา Python ไม่มีคำสั่งสำหรับการประกาศตัวแปร เราสามารถพิมพ์ตัวอักษรหรือวลีตามที่ต้องการ ตามด้วยเครื่องหมาย = และค่าที่ต้องการกำหนดให้กับตัวอักษรหรือวลีนั้น ๆ แล้วไพธอนจะมองว่าตัวอักษรหรือวลีนั้น ๆ เป็นตัวแปร เช่น

a = 5
b = 20
x = "DCRUB.COM"
y = False

จากโค้ดด้านบน คำสั่งทุกคำสั่งคือการประกาศตัวแปร

ศึกษาเพิ่มเติมเกี่ยวกับการสร้างตัวแปรในภาษา Python

การเขียนคอมเม้นต์ Comments ในภาษา Python

การเขียนคอมเม้นต์ Comments ในภาษาไพธอน จะใช้เครื่องหมาย # ขึ้นต้นบรรทัดหรือประโยคที่ต้องการคอมเม้นต์ ตามด้วยประโยคที่ต้องการทำเป็นคอมเม้นต์ ตัวแปรภาษาจะไม่ประมวลผลคำสั่งหรือสเตทเม้นต์ใด ๆ ที่อยู่หลังเครื่องหมาย #

ตัวอย่างการเขียนคอมเม้นต์ในภาษาไพธอน

gender = 'M'
if gender == 'M':
    # Print if gender is M
    print("You are a man")
else:
    # Print if gender is not M
    print("You are a woman")

จากโค้ดตัวอย่างด้านบน บรรทัดที่ 3 และบรรทัดที่ 6 เป็นคอมเม้นต์ ตัวแปรภาษาจะไม่นำข้อความตั้องแต่เครื่องหมาย # เป็นต้นไป ไปประมวลผล

ศึกษาเพิ่มเติมเรื่องการเขียนมคอมเม้นต์ใน Python