Skip to content

บทที่ 1.1: โครงสร้างไวยากรณ์ ตัวแปร และการจัดการข้อมูล (Syntax & Variables)

เอกสารนี้ครอบคลุมโครงสร้างภาษา Python หลักการย่นระยะบรรทัด (Indentation) กฎการตั้งชื่อตัวแปร การรับและแสดงผลข้อมูล และการจัดรูปแบบข้อความ


1. โครงสร้างไวยากรณ์และการจัดบล็อกโค้ด (Syntax & Indentation)

ภาษา Python ไม่ใช้เครื่องหมายปีกกา {} หรือเซมิโคลอน ; ในการแบ่งบล็อกคำสั่ง แต่ใช้ การเว้นวรรค (Indentation) เป็นตัวกำหนดขอบเขตของโค้ด

1.1 กฎการย่นระยะ (Indentation Rules)

  • มาตรฐาน PEP 8 กำหนดให้ใช้ Space 4 ช่อง ต่อ 1 ระดับชั้น
  • ห้ามผสมการใช้ Tab และ Space ในไฟล์เดียวกัน
# ตัวอย่างการใช้ Indentation
if True:
    print("บรรทัดนี้อยู่ในบล็อก if")  # เว้นวรรค 4 ช่อง
    if True:
        print("บรรทัดนี้อยู่ในบล็อกชั้นใน")  # เว้นวรรค 8 ช่อง
print("บรรทัดนี้อยู่นอกบล็อก")  # ไม่เว้นวรรค

1.2 การเขียนคอมเมนต์ (Comments)

# คอมเมนต์แบบบรรทัดเดียว (Single-line comment)

"""
คอมเมนต์แบบหลายบรรทัด (Multi-line comment หรือ Docstring)
มักใช้สำหรับอธิบายฟังก์ชันหรือคลาส
"""

2. การประกาศตัวแปรและการจัดการหน่วยความจำ (Variables)

Python เป็นภาษาแบบ Dynamic Typing ไม่จำเป็นต้องประกาศชนิดข้อมูลของตัวแปรล่วงหน้า ตัวแปรจะถูกกำหนดประเภทตามค่าที่บรรจุอยู่ทันที

2.1 ตัวอย่างการประกาศตัวแปร

x = 10             # Integer
user_name = "Alex" # String
is_active = True   # Boolean
pi = 3.14159       # Float

2.2 การกำหนดค่าหลายตัวแปรพร้อมกัน (Multiple Assignment)

# กำหนดค่าต่างกันในบรรทัดเดียว
a, b, c = 1, 2.5, "Hello"

# กำหนดค่าเดียวกันให้หลายตัวแปร
x = y = z = 0

# การสลับค่าตัวแปร (Swapping)
a, b = 10, 20
a, b = b, a  # a จะกลายเป็น 20 และ b จะกลายเป็น 10

2.3 กฎการตั้งชื่อตัวแปร (Naming Conventions)

  1. ขึ้นต้นด้วยตัวอักษรภาษาอังกฤษ (a-z, A-Z) หรือเครื่องหมาย _ เท่านั้น
  2. ห้ามขึ้นต้นด้วยตัวเลข
  3. ประกอบด้วยตัวอักษร ตัวเลข และ _ เท่านั้น
  4. เป็น Case-sensitive (Name และ name คือคนละตัวแปร)
  5. ห้ามใช้คำสงวน (Reserved Keywords) เช่น if, class, def, return
# รูปแบบการตั้งชื่อตามมาตรฐาน PEP 8 (Snake Case)
total_score = 100
user_first_name = "John"
_private_variable = "Secret"

3. การแสดงผลและการรับข้อมูล (Input / Output)

3.1 ฟังก์ชัน print() และ Parameter สำคัญ

name = "Sebastian"
age = 20

# การใช้งานทั่วไป
print(name, age)  # Output: Sebastian 20

# การกำหนดตัวแยกด้วย sep (Default คือ Space)
print("2026", "07", "23", sep="-")  # Output: 2026-07-23

# การกำหนดตัวปิดท้ายด้วย end (Default คือ \n)
print("Hello", end=" ")
print("World")  # Output: Hello World

3.2 ฟังก์ชัน input()

การรับค่าจากผู้ใช้งานผ่าน Terminal ค่าที่ได้จะอยู่ในรูปแบบ String (str) เสมอ

# การรับค่า String
raw_input = input("กรุณากรอกข้อมูล: ")

# การรับค่าและแปลงเป็นตัวเลขทันที
user_age = int(input("กรุณากรอกอายุ: "))
price = float(input("กรุณากรอกราคา: "))

4. การจัดรูปแบบข้อความ (String Formatting)

4.1 Formatted String Literals (f-strings) - แนะนำ

เริ่มใช้งานตั้งแต่ Python 3.6 เป็นวิธีการแทรกตัวแปรใน String ที่มีประสิทธิภาพสูงและอ่านง่ายที่สุด

item = "Laptop"
price = 25900.50
quantity = 2

# แสดงผลตัวแปรและคำนวณนิพจน์ภายใน {}
print(f"สินค้า: {item} | ราคารวม: {price * quantity:,.2f} บาท")
# Output: สินค้า: Laptop | ราคารวม: 51,801.00 บาท

4.2 วิธีการจัดรูปแบบรูปแบบอื่น

name = "Alex"
score = 95.5

# 1. str.format()
print("Name: {} | Score: {:.1f}".format(name, score))

# 2. %-formatting (Legacy Style)
print("Name: %s | Score: %.1f" % (name, score))