ไวยากรณ์ (Syntax) ของภาษา Python
Python มีลักษณะเป็นภาษาโปรแกรมที่มีรูปแบบการเขียนโค้ดที่เป็นมาตรฐาน (standardized) และอ่านง่าย เนื่องจากมีการกำหนดลักษณะของโค้ดให้มีการเว้นวรรค (indentation) ที่เป็นส่วนหนึ่งของไวยากรณ์ซึ่งจะช่วยให้โค้ดอ่านง่ายและสื่อความหมายได้ชัดเจนขึ้น
Python มีลักษณะเป็นภาษาโปรแกรมที่มีรูปแบบการเขียนโค้ดที่เป็นมาตรฐาน ทำให้ผู้ใช้งานสามารถเข้าใจได้ง่าย และยังช่วยลดการเกิดข้อผิดพลาดที่อาจจะเกิดขึ้นได้เช่นกัน โดยในภาษา Python จะใช้ whitespace (ช่องว่างหรือ tab) เป็นตัวกำหนดขอบเขตของโค้ดแทนเครื่องหมายปีกกา {} ที่ใช้ในภาษาโปรแกรมอื่น นอกจากนี้ภาษา Python ยังมีเครื่องหมายพิเศษบางอย่างเช่น : (colon), . (dot), () (parentheses), [] (square brackets), {} (curly brackets) ซึ่งจะช่วยให้โค้ดเข้าใจและอ่านได้ง่าย อีกทั้งยังมีบทบาทสำคัญในการกำหนดโครงสร้างของโค้ดด้วย
การเว้นวรรค (indentation) เป็นสิ่งที่สำคัญและมีความหมายอย่างมากในการเขียนโค้ด เพราะว่าการเว้นวรรคจะบอก Python ว่าบล็อกของโค้ดเริ่มต้นจากที่ไหน และสิ้นสุดที่ไหน โดยภาษา Python จะไม่ใช้เครื่องหมายปีกกา ({}) หรือคีย์เวิร์ดเปิด-ปิด (begin-end) ในการกำหนดบล็อกโค้ด แต่จะใช้การเว้นวรรคเพื่อบอกให้ Python รู้ว่าโค้ดนั้นอยู่ในบล็อกเดียวกัน เว้นวรรคจะต้องเป็นความเท่ากันในบรรทัดเดียวกันของโค้ดในบล็อกเดียวกัน โดยปกติการเว้นวรรคจะใช้ที่เท่ากับ 4 ช่องว่าง (4 spaces) หรือ 1 แท็บ (tab) แต่ไม่ควรใช้รวมกันในบรรทัดเดียวกัน
ไวยากรณ์ (Syntax) ของภาษา Python มีลักษณะที่เป็นโครงสร้างแบบบล็อก (block structure) โดยโค้ดจะถูกกำหนดความสำคัญโดยการเว้นวรรค (indentation) ซึ่งทำให้โค้ดเป็นไปอย่างสม่ำเสมอ และง่ายต่อการอ่านและเข้าใจโค้ด นอกจากนี้ยังมีฟีเจอร์การเขียนโค้ดแบบพ้อยเตอร์ (punctuation-free) ที่ช่วยให้โค้ดของ Python มีความสั้นและอ่านง่ายกว่าภาษาอื่น ๆ ที่มีเครื่องหมายมากกว่า Python
นอกจากนี้ โครงสร้างของภาษา Python ยังใช้คำสั่งควบคุมเหมือนกับภาษาอื่น ๆ เช่น คำสั่ง if, else, for, while เป็นต้น โดยใช้สัญลักษณ์ของภาษาซึ่งถูกออกแบบมาเพื่อให้เข้าใจง่ายและใช้งานได้สะดวก โครงสร้างแบบนี้ทำให้โค้ด Python อ่านและเข้าใจได้ง่าย และช่วยลดโอกาสในการเขียนโค้ดที่ผิดพลาดอย่างมากโดยเฉพาะเมื่อเทียบกับภาษาที่มีโครงสร้างที่ซับซ้อนมากขึ้น เช่น C หรือ C++
ตัวอย่าง การใช้งานคำสั่ง if ใน Python จะมีรูปแบบดังนี้
if condition:
statement(s)
ตัวอย่าง การใช้งานการเว้นวรรคใน Python:
if 9 > 7:
print("Nine is greater than seven")
ในตัวอย่างข้างต้น การเว้นวรรคที่อยู่หน้าบรรทัดที่ 2 บอก Python ว่าบล็อกของคำสั่ง if
เริ่มต้นจากนั้น และคำสั่ง print
อยู่ในบล็อกของ if
นั้น โดยถ้าไม่มีการเว้นวรรคหน้าบรรทัดที่ 2 จะทำให้ Python ไม่รู้ว่าคำสั่ง print
อยู่ในบล็อกของ if
และจะเกิด Error ขึ้นในการแปลงโค้ด
ในภาษา Python มีการกำหนดลักษณะการเว้นวรรค (indentation) ที่สำคัญกับไวยากรณ์ (syntax) ของโค้ด Python โดยการเว้นวรรคจะใช้เพื่อระบุบล็อกโค้ด โดยการเว้นวรรคจะต้องเป็นแบบเดียวกันภายในบล็อกโค้ดเดียวกัน ถ้าไม่เป็นแบบเดียวกันจะทำให้เกิด SyntaxError หรือการรันโค้ดไม่ได้ ตัวอย่างเช่น
# ตัวอย่างโค้ดที่เว้นวรรคไม่ถูกต้อง
if True:
print('Hello, World!')
# Output: IndentationError: expected an indented block
# ตัวอย่างโค้ดที่เว้นวรรคถูกต้อง
if True:
print('Hello, World!')
# Output: Hello, World!
จากตัวอย่างข้างต้น การเว้นวรรคถูกต้องในบล็อก if
ทำให้โค้ดสามารถรันได้ แต่ถ้าเว้นวรรคไม่ถูกต้องอย่างในบล็อก if
จะทำให้เกิด SyntaxError และไม่สามารถรันโค้ดได้
เทคนิคและรูปแบบการเขียนไวยากรณ์ Python
การเขียนโค้ดในภาษา Python มีเทคนิคและรูปแบบการเขียนไวยากรณ์ที่ช่วยให้โค้ดอ่านง่าย และเข้าใจได้ง่ายมากขึ้น โดยเทคนิคการเขียนที่นิยมกันมีดังนี้
-
การใช้ชื่อตัวแปรที่อ่านง่าย ใช้ชื่อตัวแปรที่อ่านง่ายและบอกความหมายได้ชัดเจน เช่น ถ้าต้องการเก็บชื่อผู้ใช้งานในระบบ ให้ใช้ชื่อตัวแปร “username” แทนที่จะใช้ “u” หรือ “usr” เป็นต้น
-
การจัดรูปแบบโค้ด (Code Formatting) การจัดรูปแบบโค้ดสามารถช่วยให้โค้ดดูสะอาด และอ่านง่ายขึ้น ซึ่งควรปฏิบัติตามหลักการต่อไปนี้
- การเว้นวรรค (Indentation): ในภาษา Python จะใช้การเว้นวรรคแทนการใช้วงเล็บในการกลุ่มคำสั่งเหมือนในภาษาอื่น การเว้นวรรคจะช่วยให้โค้ดดูสะอาด และอ่านง่ายขึ้น ดังนั้นควรเว้นวรรคให้สอดคล้องกับระดับของคำสั่ง เช่น คำสั่ง if และ for ควรมีการเว้นวรรคเท่ากัน
- การแยกบรรทัด (Line Breaks): การแยกบรรทัดจะช่วยให้โค้ดดูสะอาด และอ่านง่ายขึ้น ควรแยกบรรทัดเมื่อคำสั่งหรือความหมายของโค้ดเปลี่ยนแปลง โดยสามารถแยกบรรทัดด้วยเครื่องหมาย “” เพื่อให้โค้ดอ่านง่าย
- ใช้คำสั่งเงื่อนไขแบบตรรกะ (Ternary conditional operator) เป็นวิธีการเขียนเงื่อนไขใน Python ที่ช่วยให้โค้ดดูสั้นและกระชับกว่าการใช้คำสั่ง if/else ซึ่งมักจะใช้เมื่อต้องการสร้างตัวแปรที่มีค่าขึ้นอยู่กับเงื่อนไขที่กำหนด
ตัวอย่างเช่น สมมติว่าต้องการตั้งค่าตัวแปร x เท่ากับ 1 ถ้าตัวแปร y มีค่ามากกว่า 10 และมีค่าเท่ากับ 0 ถ้า y มีค่าน้อยกว่าหรือเท่ากับ 10 สามารถเขียนได้ดังนี้
x = 1 if y > 10 else 0
4. ใช้กฎความสัมพันธ์ของตัวดำเนินการ (Operator precedence) เป็นเทคนิคที่ใช้ในการกำหนดลำดับความสำคัญของตัวดำเนินการต่างๆ ในภาษา Python โดยจะใช้ในกรณีที่มีการใช้งานหลายตัวดำเนินการในแต่ละบรรทัด หรือในกรณีที่ต้องการกำหนดลำดับของการประมวลผลเพื่อให้ได้ผลลัพธ์ที่ถูกต้องตามต้องการ
ตัวอย่างเช่น ในการคำนวณผลรวมของเลข 1 ถึง 10 โดยใช้การคูณและการบวก เราสามารถใช้กฎความสัมพันธ์ของตัวดำเนินการในการกำหนดลำดับของการประมวลผลได้ ดังนี้
result = 1 * 2 + 3 * 4 + 5 * 6 + 7 * 8 + 9 * 10
print(result) # 110
ในตัวอย่างข้างต้น ตัวดำเนินการการคูณมีลำดับความสำคัญสูงกว่าตัวดำเนินการการบวก ดังนั้น Python จะทำการคูณเลขก่อน แล้วจึงทำการบวกเลข ตามลำดับของตัวดำเนินการ
แต่ในกรณีที่ต้องการกำหนดลำดับของการประมวลผลให้ต่างจากลำดับความสำคัญที่กำหนดไว้ตามค่าคงที่ ใน Python เราสามารถใช้วงเล็บ () เพื่อกำหนดลำดับการทำงานได้ ดังตัวอย่างต่อไปนี้
result = (1 * 2) + (3 * 4) + (5 * 6) + (7 * 8) + (9 * 10)
print(result) # 110