
เขียนโปรแกรมภาษา 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
เขียนโปรแกรมภาษา Python
- ตอนที่ 1 ทำความรู้จักกับภาษาไพธอน Python
- ตอนที่ 2 เตรียมเครื่องมือ
- ตอนที่ 3 Python Syntax
- ตอนที่ 4 การเขียนคอมเม้นต์
- ตอนที่ 5 การใช้ฟังก์ชัน print
- ตอนที่ 6 ตัวแปร
- ตอนที่ 7 การตั้งชื่อตัวแปร
- ตอนที่ 8 การกำหนดค่าให้ตัวแปรทีละหลายตัว
- ตอนที่ 9การแสดงค่าจากตัวแปร
- ตอนที่ 10 ตัวแปรประเภท Global
- ตอนที่ 11 ชนิดข้อมูล
- ตอนที่ 12 ข้อมูลชนิดตัวเลข
- ตอนที่ 13 การแปลงชนิดข้อมูล
- ตอนที่ 14 ข้อมูลชนิด String
- ตอนที่ 15 slice syntax
- ตอนที่ 16 การเปลี่ยนแปลงข้อมูล String
- ตอนที่ 17 การต่อข้อมูลชนิด String
- ตอนที่ 18 การจัดรูปแบบ String
- ตอนที่ 19 Escape Character
- เตอนที่ 20 เมธอด zfill()
- ตอนที่ 21 เมธอด upper()
- ตอนที่ 22 เมธอด title()
- ตอนที่ 23 เมธอด swapcase()
- ตอนที่ 24 เมธอด strip()
- ตอนที่ 25 เมธอด startswith()
- ตอนที่ 26 เมธอด splitlines()
- ตอนที่ 27 เมธอด split()
- ตอนที่ 28 เมธอด rstrip()
- ตอนที่ 29 เมธอด rsplit()
- ตอนที่ 30 เมธอด rpartition()
- ตอนที่ 31 เมธอด rjust()
- ตอนที่ 32 เมธอด rindex()
- ตอนที่ 33 เมธอด rfind()
- ตอนที่ 34 เมธอด replace()
- ตอนที่ 35 เมธอด partition()
- ตอนที่ 36 เมธอด lstrip()
- ตอนที่ 37 เมธอด lower()
- ตอนที่ 38 เมธอด ljust()
- ตอนที่ 39 เมธอด join()
- ตอนที่ 40 เมธอด isupper()
- ตอนที่ 41 เมธอด istitle()
- ตอนที่ 42 เมธอด isspace()
- ตอนที่ 43 เมธอด isprintable()
- ตอนที่ 44 เมธอด isnumeric()
- ตอนที่ 45 เมธอด islower()
- ตอนที่ 46 เมธอด isidentifier()
- ตอนที่ 47 เมธอด isdigit()
- ตอนที่ 48 เมธอด isdecimal()
- ตอนที่ 49 เมธอด isalpha()
- ตอนที่ 50 เมธอด isalnum()
- ตอนที่ 51 เมธอด index()
- ตอนที่ 52 เมธอด format()
- ตอนที่ 53 เมธอด find()
- ตอนที่ 54 เมธอด expandtabs()
- ตอนที่ 55 เมธอด endswith()
- ตอนที่ 56 เมธอด encode()
- ตอนที่ 57 เมธอด count()
- ตอนที่ 58 เมธอด center()
- ตอนที่ 59 เมธอด casefold()
- ตอนที่ 60 เมธอด capitalize()
- ตอนที่ 61 เมธอด format_map()
- ตอนที่ 62 เมธอด maketrans()
- ตอนที่ 63 เมธอด translate()
- ตอนที่ 64 ข้อมูลชนิด Boolean
- ตอนที่ 65 ตัวดำเนินการ
- ตอนที่ 66 ข้อมูลประเภท List
- ตอนที่ 67 การเข้าถึงสมาชิกใน List
- ตอนที่ 68 การเปลี่ยนแปลงข้อมูลใน List
- ตอนที่ 69 การเพิ่มข้อมูลใน List
- ตอนที่ 70 การลบข้อมูลใน List
- ตอนที่ 71 การเข้าถึงข้อมูลใน List ด้วย loop
- ตอนที่ 72 List Comprehension
- ตอนที่ 73 การเรียงข้อมูลใน List
- ตอนที่ 74 การคัดลอก List
- ตอนที่ 75 การรวม List เข้าด้วยกัน
- ตอนที่ 76 เมธอด append()
- ตอนที่ 77 เมธอด clear()
- ตอนที่ 78 เมธอด copy()
- ตอนที่ 79 เมธอด count()
- ตอนที่ 80 เมธอด extend()
- ตอนที่ 81 เมธอด index()
- ตอนที่ 82 เมธอด insert()
- ตอนที่ 83 เมธอด pop()
- ตอนที่ 84 เมธอด remove()
- ตอนที่ 85 เมธอด reverse()
- ตอนที่ 86 เมธอด sort()
- ตอนที่ 87 ข้อมูลชนิด Tuple
- ตอนที่ 88 การเข้าถึงข้อมูลใน Tuple
- ตอนที่ 89 การแก้ไขข้อมูลใน Tuple
- ตอนที่ 90 การแยกข้อมูลใน Tuple
- ตอนที่ 91 เข้าถึงข้อมูลใน Tuple ด้วยลูป
- ตอนที่ 92 การรวม Tuple เข้าด้วยกัน
- ตอนที่ 93 เมธอด count()
- ตอนที่ 94 เมธอด index()
- ตอนที่ 95 ข้อมูลประเภท Set
- ตอนที่ 96 การเข้าถึงข้อมูลใน Set
- ตอนที่ 97 การเพิ่มข้อมูลใน Set
- ตอนที่ 98 การลบข้อมูลใน Set
- ตอนที่ 99 การเข้าถึงข้อมูลใน Set ด้วยลูป for
- ตอนที่ 100 การจอย Join ข้อมูลใน Set
- ตอนที่ 101 เมธอด add()
- ตอนที่ 102 เมธอด clear()
- ตอนที่ 103 เมธอด copy()
- ตอนที่ 104 เมธอด difference()
- ตอนที่ 105 เมธอด difference_update()
- ตอนที่ 106 เมธอด discard()
- ตอนที่ 107 เมธอด intersection()
- ตอนที่ 108 เมธอด intersection_update()
- ตอนที่ 109 เมธอด isdisjoint()
- ตอนที่ 110 เมธอด issubset()
- ตอนที่ 111 เมธอด issuperset()
- ตอนที่ 112 เมธอด pop()
- ตอนที่ 113 เมธอด remove()
- ตอนที่ 114 เมธอด symmetric_difference()
- ตอนที่ 115 เมธอด symmetric_difference_update()
- ตอนที่ 116 เมธอด union()
- ตอนที่ 117 เมธอด update()
- ตอนที่ 118 ข้อมูลประเภท Dictionary
- ตอนที่ 119 การเข้าถึงข้อมูลใน Dictionary
- ตอนที่ 120 การเปลี่ยนแปลงข้อมูลใน Dictionary
- ตอนที่ 121 การเพิ่มข้อมูลใน Dictionary
- ตอนที่ 122 การลบข้อมูลใน Dictionary
- ตอนที่ 123 การวนลูปเข้าถึงสมาชิกใน Dictionary
- ตอนที่ 124 การคัดลอก Dictionary
- ตอนที่ 125 Dictionary ซ้อนกัน
- ตอนที่ 126 เมธอด clear()
- ตอนที่ 127 เมธอด copy()
- ตอนที่ 128 เมธอด fromkeys()
- ตอนที่ 129 เมธอด get()
- ตอนที่ 130 เมธอด items()
- ตอนที่ 131 เมธอด keys()
- ตอนที่ 132 เมธอด pop()
- ตอนที่ 133 เมธอด popitem()
- ตอนที่ 134 เมธอด setdefault()
- ตอนที่ 135 เมธอด update()
- ตอนที่ 136 เมธอด values()
- ตอนที่ 137 การตรวจสอบเงื่อนไขด้วย If statement
- ตอนที่ 138 การใช้ while loop