ตัวอย่างพื้นฐาน

การคำนวณพื้นฐาน

# คำนวณแฟกทอเรียล
นิยาม แฟกทอเรียล(n):
    ถ้า n <= 1:
        คืนค่า 1
    คืนค่า n * แฟกทอเรียล(n - 1)

# หาตัวหารร่วมมาก
นิยาม หา_หรม(a, b):
    ขณะที่ b:
        a, b = b, a % b
    คืนค่า a

# ทดสอบจำนวนเฉพาะ
นิยาม เป็นจำนวนเฉพาะ(n):
    ถ้า n < 2:
        คืนค่า เท็จ
    สำหรับ i ใน ช่วง(2, จำนวนเต็ม(n ** 0.5) + 1):
        ถ้า n % i == 0:
            คืนค่า เท็จ
    คืนค่า จริง

การจัดการข้อความ

# นับคำในประโยค
นิยาม นับคำ(ข้อความ):
    คำ = ข้อความ.split()
    คืนค่า ความยาว(คำ)

# เช็คว่าเป็น palindrome
# (คำที่อ่านกลับหน้าหลังก็มีความหมายเหมือนกัน เช่น madam หรือ racecar)
นิยาม เป็นพาลินโดรม(ข้อความ):
    ข้อความ = ''.join(c สำหรับ c ใน ข้อความ.lower() ถ้า c.isalnum())
    คืนค่า ข้อความ == ข้อความ[::-1]

# แปลงเลขโรมัน
นิยาม แปลงเลขโรมัน(เลข):
    ค่า = {'I': 1, 'V': 5, 'X': 10, 'L': 50, 'C': 100, 'D': 500, 'M': 1000}
    ผลลัพธ์ = 0
    สำหรับ i ใน ช่วง(ความยาว(เลข)):
        ถ้า i + 1 < ความยาว(เลข) และ ค่า[เลข[i]] < ค่า[เลข[i + 1]]:
            ผลลัพธ์ -= ค่า[เลข[i]]
        อื่น:
            ผลลัพธ์ += ค่า[เลข[i]]
    คืนค่า ผลลัพธ์

การจัดการรายการ

# หาค่าที่ซ้ำกัน
นิยาม หาค่าซ้ำ(รายการ):
    พบแล้ว = เซ็ต()
    ซ้ำ = เซ็ต()
    สำหรับ x ใน รายการ:
        ถ้า x ใน พบแล้ว:
            ซ้ำ.add(x)
        อื่น:
            พบแล้ว.add(x)
    คืนค่า รายการ(ซ้ำ)

# จัดกลุ่มตามเงื่อนไข
นิยาม จัดกลุ่มคู่คี่(รายการ):
    คู่ = []
    คี่ = []
    สำหรับ เลข ใน รายการ:
        ถ้า เลข % 2 == 0:
            คู่.append(เลข)
        อื่น:
            คี่.append(เลข)
    คืนค่า (คู่, คี่)

# หาผลรวมย่อยที่มากที่สุด
นิยาม ผลรวมย่อยสูงสุด(รายการ):
    ผลรวมปัจจุบัน = ผลรวมสูงสุด = รายการ[0]
    สำหรับ x ใน รายการ[1:]:
        ผลรวมปัจจุบัน = ค่าสูงสุด(x, ผลรวมปัจจุบัน + x)
        ผลรวมสูงสุด = ค่าสูงสุด(ผลรวมสูงสุด, ผลรวมปัจจุบัน)
    คืนค่า ผลรวมสูงสุด

การจัดการไฟล์

# อ่านและนับคำในไฟล์
นิยาม นับคำในไฟล์(ชื่อไฟล์):
    ลอง:
        ด้วย เปิด(ชื่อไฟล์, 'r', encoding='utf-8') เป็น ไฟล์:
            เนื้อหา = ไฟล์.read()
            คำ = เนื้อหา.split()
            คืนค่า ความยาว(คำ)
    ยกเว้น FileNotFoundError:
        พิมพ์(f"ไม่พบไฟล์: {ชื่อไฟล์}")
        คืนค่า 0

# เขียนรายการลงไฟล์ CSV
นิยาม เขียนไฟล์ CSV(ชื่อไฟล์, ข้อมูล):
    จาก csv นำเข้า writer
    ด้วย เปิด(ชื่อไฟล์, 'w', newline='', encoding='utf-8') เป็น ไฟล์:
        เขียน = writer(ไฟล์)
        สำหรับ แถว ใน ข้อมูล:
            เขียน.writerow(แถว)

โครงสร้างข้อมูลพื้นฐาน

# สร้าง Stack อย่างง่าย
ชั้น Stack:
    นิยาม __เริ่มต้น__(ตัว):
        ตัว.ข้อมูล = []

    นิยาม ใส่(ตัว, ค่า):
        ตัว.ข้อมูล.append(ค่า)

    นิยาม นำออก(ตัว):
        ถ้า ไม่ ตัว.ว่าง():
            คืนค่า ตัว.ข้อมูล.pop()
        ยก ValueError("Stack ว่าง")

    นิยาม ว่าง(ตัว):
        คืนค่า ความยาว(ตัว.ข้อมูล) == 0

# สร้าง Queue อย่างง่าย
ชั้น Queue:
    นิยาม __เริ่มต้น__(ตัว):
        ตัว.ข้อมูล = []

    นิยาม ใส่(ตัว, ค่า):
        ตัว.ข้อมูล.append(ค่า)

    นิยาม นำออก(ตัว):
        ถ้า ไม่ ตัว.ว่าง():
            คืนค่า ตัว.ข้อมูล.pop(0)
        ยก ValueError("Queue ว่าง")

    นิยาม ว่าง(ตัว):
        คืนค่า ความยาว(ตัว.ข้อมูล) == 0

การใช้งาน

# ทดสอบฟังก์ชันคำนวณ
พิมพ์(แฟกทอเรียล(5))            # 120
พิมพ์(หา_หรม(48, 18))           # 6
พิมพ์(เป็นจำนวนเฉพาะ(17))       # จริง

# ทดสอบฟังก์ชันข้อความ
พิมพ์(นับคำ("สวัสดี ชาวโลก"))    # 2
พิมพ์(เป็นพาลินโดรม("racecar"))   # จริง
พิมพ์(แปลงเลขโรมัน("IV"))       # 4

# ทดสอบฟังก์ชันรายการ
พิมพ์(หาค่าซ้ำ([1, 2, 2, 3, 3, 4]))      # [2, 3]
พิมพ์(จัดกลุ่มคู่คี่([1, 2, 3, 4, 5]))     # ([2, 4], [1, 3, 5])
พิมพ์(ผลรวมย่อยสูงสุด([-2, 1, -3, 4, -1, 2, 1, -5, 4]))  # 6

# ทดสอบโครงสร้างข้อมูล
stack = Stack()
stack.ใส่(1)
stack.ใส่(2)
พิมพ์(stack.นำออก())  # 2

queue = Queue()
queue.ใส่("ก")
queue.ใส่("ข")
พิมพ์(queue.นำออก())  # "ก"