Python – Statement, Indentation และ Comments

ประโยคคำสั่ง( Statement )

ประโยคใดๆ(statement) ที่ถูกต้องตามหลักภาษา(syntax) และตัวแปลภาษา(interpretor)สามารถประมวลผลเพื่อนำไปดำเนินการได้นั้น เรียกว่าประโยคคำสั่ง(statement)
ตัวอย่างการใช้งาน

age = 20 # กำหนดค่าให้ตัวแปร age ซึ่งไว้เก็บข้อมูลอายุมีค่าเป็น 20

จากตัวอย่าง ประโยคคำสั่งดังกล่าวจัดเป็นประโยคคำสั่งเพื่อใช้กำหนดค่า(assign statement) อีกทั้งยังมี ประโยคคำสั่งที่มีเงื่อนไขกำกับเช่น if statement, for statement, while statement

ประโยคคำสั่งแบบหลายบรรทัด(Multi-line statement)

ประโยคคำสั่งซึ่งเป็นคำสั่งเดียวกันแต่เขียนไว้หลายบรรทัด เพื่อให้ง่ายแก่การอ่านโค้ดดังกล่าว โดยปกติแล้ววิธีการบอกจุดสิ้นสุดของแต่ละประโยคคำสั่ง(statement) ทำได้โดยการเพิ่มอักขระสำหรับขึ้นบรรทัดใหม่(newline)เข้าไป แต่สำหรับประโยคคำสั่งแบบหลายบรรทัดนี้แต่ละบรรทัดยังคงมีอักขระสำหรับขึ้นบรรทัดใหม่โดยที่จะเชื่อมคำสั่งหลายบรรทัดให้กลายเป็นคำสั่งเดียวกันโดยอาศัยอักขระ “\”
ตัวอย่างการใช้งาน

total = 1 + 2 + 3 + \
    4 + 5 + 6 + \
    7 + 8 + 9
print(total)
# โปรแกรมทำการปรินท์ค่า 45 

ซึ่งวิธีข้างต้นเป็นการสร้างประโยคคำสั่งแบบหลายบรรทัด โดยเรายังสามารถใช้วิธีอื่นๆ เพื่อเชื่อม ประโยคคำสั่ง ได้โดยการใส่ (), [], {} เพื่อระบุขอบเขตของประโยคคำสั่ง
ตัวอย่างการใช้งาน

total = (1 + 2 + 3 +
    4 + 5 + 6 +
    7 + 8 + 9)
print(total)
# โปรแกรมทำการปรินท์ค่า 45 

colors = ['red',
          'blue',
          'green']
print(colors)
# โปรแกรมจะทำการปรินต์ค่า ['red', 'blue', 'green']

เรายังสามารถจะนำประโยคคำสั่งหลายประโยค มาเขียนในบรรทัดเดียวกันด้วยการใส่เครื่องหมาย “;” ลงไปคั่นระหว่างแต่ละประโยคคำสั่ง 
ตัวอย่างการใช้งาน

a = 1; b = 2; c = 3
การย่อหน้า(Indentation)

ในภาษาอื่นๆ ส่วนใหญ่ไม่ว่าจะเป็น C, C++, java นั้น การกำหนดขอบเขตของกลุ่มคำสั่ง(block) มักจะใช้เครื่องหมาย{ } เพื่อแสดงขอบเขตของกลุ่มคำสั่ง แต่สำหรับภาษา python นั้นจะใช้การย่อหน้า(indentation)เพื่อแสดงขอบเขตของกลุ่มคำสั่ง
การระบุขอบเขตของกลุ่มคำสั่งนั้นจะบอกจุดเริ่มต้นด้วยการใช้การย่อหน้า และจะบอกจุดสิ้นสุดคำสั่งด้วย การกลับมาใช้ระยะเดียวกับก่อนการทำการย่อหน้า ระยะสำหรับการย่อหน้า(indentation) นั้นขึ้นอยู่กับความเหมาะสมของผู้เขียนโค้ดเองและอาจจะต่างไปตามการใช้งาน editor สำหรับการเขียนโค้ด แต่ก็ควรจะใช้ระยะที่เท่ากันเสมอเพื่อความสะดวกในการทำความเข้าใจโค้ด สำหรับการย่อหน้านั้นโดยปกติจะใช้ whitespace 4 ตัว และมักจะนิยมกว่าการใช้ tab
ตัวอย่างการใช้งาน

courses = ['Biology', 'Math', 'Art', 'Physics', 'English']
for course in courses:
    print( course )
# โปรแกรมจะทำการพิมพ์ค่า
# Biology
# Math
# Art
# Physics
# English

จะเห็นว่าคำสั่ง print( course ) นั้นใช้การย่อหน้าเพื่อบอกว่า คำสั่งดังกล่าวนั้นเป็นหนึ่งคำสั่งในกลุ่มคำสั่งที่ใช้งานกับ for ลูป

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

score = 70; 
if score > 60: print( 'Pass' );

ซึ่งเราสามารถเขียนให้อ่านง่ายกว่า ด้วยการใช้ indentation

score = 70
if score > 60:
    print( 'Pass' )
# โปรแกรมจะทำการปรินท์ค่า Pass

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

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

คอมเมนท์หลายบรรทัด( Multi-line comments )

หากเราต้องการเขียนคอมเมนท์ต่อกันหลายบรรทัด เราอาจจะใช้เครื่องหมาย # วางไว้ตรงหน้าข้อความในแต่ละบรรทัด หรือ เราอาจจะใช้เครื่องหมาย ”’ หรือ “””   ไว้ก่อนหน้าและเมื่อสิ้นสุดข้อความที่เป็นคอมเมนท์ ซึ่งโดยปกติแล้วเครื่องหมายดังกล่าวมักจะใช้กับการกำหนดค่าให้ string หลายบรรทัด แต่ก็นำมาใช้กับคอมเมนท์หลายบรรทัดได้ด้วย
ตัวอย่างการใช้งาน

""" 
This is the example of comments
"""
Docstring

ใช้สำหรับเป็นข้อความเพื่อเขียนอธิบายเกี่ยวกับการทำงานโดยย่อ จะเขียนไว้เป็นคำสั่งแรกสุดใน module , function, class, method definition เรามักจะใช้เขียนกำกับว่า function/class ทำอะไรไว้ที่ docstring โดยจะแตกต่างจากคอมเมนท์ตรงที่ docstring จะถูกประมวลผลจากตัวแปลภาษา(interpretor) และเรียกใช้งานในโปรแกรมได้
ตัวอย่างการใช้งาน

def double_score(score):
    "Function to double score"
    return 2*score

ข้อมูล docstring นั้นยังสามารถเรียกใช้ในฐานะคุณลักษณะ(attribute)หนึ่งของฟังก์ชัน
ตัวอย่างการใช้งาน

score = double_score(5)
print(score) 
# โปรแกรมทำการปรินท์ค่า 10

print(double_score.__doc__) 
# โปรแกรมทำการปรินท์ค่า Function to double the value