ผู้สอน: ผศ.พิศาล สุขขี
สังกัด: สาขาวิชาวิทยาการคอมพิวเตอร์ คณะศิลปศาสตร์และวิทยาศาสตร์ มหาวิทยาลัยราชภัฏศรีสะเกษ
เอกสารประกอบการสอนชุดนี้ออกแบบในรูปแบบ Interactive Jupyter Notebook (.ipynb) เพื่อให้ผู้เรียนสามารถศึกษาเนื้อหาทฤษฎี ทดลองรันโค้ดตัวอย่าง ทำแบบฝึกหัดระหว่างเรียน (🧠 ตรวจสอบความเข้าใจ / ✍️ ลงมือทำ) และทำแบบประเมินความรู้หลังเรียน (Post-test) พร้อมระบบตรวจคำตอบอัตโนมัติได้ในที่เดียว
เนื้อหาแบ่งออกเป็น 4 ส่วนหลัก ครอบคลุมตั้งแต่พื้นฐานคอมพิวเตอร์และขั้นตอนวิธี ไปจนถึงการเขียนโปรแกรมเชิงวัตถุ (OOP) รวมทั้งสิ้น 12 บทเรียน และ 9 ชุดแบบฝึกหัดพร้อมเฉลยแยกโฟลเดอร์:
| หมวดหมู่ | บทเรียน | เนื้อหาหลัก | แบบฝึกหัด / เฉลยแยกไฟล์ |
|---|---|---|---|
| ส่วนที่ 1: ปูพื้นฐานก่อนเขียนโปรแกรม | บทที่ 1 – บทที่ 3 | คอมพิวเตอร์เบื้องต้น, การคิดเชิงขั้นตอนวิธีและผังงาน, แนะนำไพธอนและเครื่องมือ (Anaconda, PyCharm, Jupyter) | แบบฝึกหัดท้ายบทในไฟล์บทเรียน |
| ส่วนที่ 2: พื้นฐานภาษาไพธอนและโครงสร้างควบคุม | บทที่ 4 – บทที่ 7 | ไวยากรณ์และการรับ-แสดงผล, ตัวแปรและชนิดข้อมูลพื้นฐาน/เชิงประกอบ, นิพจน์และตัวดำเนินการ, โครงสร้างควบคุม (if, for, while) |
✅ มีชุดแบบฝึกหัดและเฉลยแยกไฟล์ (บทที่ 4–7) |
| ส่วนที่ 3: การจัดการโปรแกรมและอาร์เรย์คำนวณ | บทที่ 8 – บทที่ 9 | การสร้างและออกแบบฟังก์ชัน, การคำนวณทางวิทยาศาสตร์และอาร์เรย์หลายมิติด้วย NumPy |
✅ มีชุดแบบฝึกหัดและเฉลยแยกไฟล์ (บทที่ 8–9) |
| ส่วนที่ 4: การประยุกต์ใช้งานและการเขียนโปรแกรมเชิงวัตถุ | บทที่ 10 – บทที่ 12 | การจัดการแฟ้มข้อมูลและ CSV, การจัดการสิ่งผิดปรกติ (try-except), การเขียนโปรแกรมเชิงวัตถุ (Class & OOP) |
✅ มีชุดแบบฝึกหัดและเฉลยแยกไฟล์ (บทที่ 10–12) |
ตารางลิงก์สำหรับคลิกเปิดไฟล์บทเรียนทั้ง 12 บท คู่กับไฟล์แบบฝึกหัดหลังเรียนในโฟลเดอร์ แบบฝึกหัด/ และไฟล์เฉลยในโฟลเดอร์ เฉลยแบบฝึกหัด/:
| บทที่ | ไฟล์บทเรียนหลัก (Notebook) | แบบฝึกหัดหลังเรียน (Post-test) | เฉลยแบบฝึกหัด |
|---|---|---|---|
| 01 | 📘 บทที่ 1 ความรู้เบื้องต้นเกี่ยวกับคอมพิวเตอร์และการเขียนโปรแกรม | (อยู่ในหัวข้อ 1.6 ท้ายบท) | (อยู่ในไฟล์บทเรียน) |
| 02 | 📘 บทที่ 2 การแก้ปัญหาและขั้นตอนวิธี | (อยู่ในหัวข้อ 2.7 ท้ายบท) | (อยู่ในไฟล์บทเรียน) |
| 03 | 📘 บทที่ 3 แนะนำภาษาไพธอน | (อยู่ในหัวข้อ 3.6 ท้ายบท) | (อยู่ในไฟล์บทเรียน) |
| 04 | 📘 บทที่ 4 พื้นฐานโปรแกรมภาษาไพธอน | 📝 แบบฝึกหัดบทที่ 4 | ✅ เฉลยบทที่ 4 |
| 05 | 📘 บทที่ 5 ตัวแปร การกำหนดค่า และชนิดข้อมูล | 📝 แบบฝึกหัดบทที่ 5 | ✅ เฉลยบทที่ 5 |
| 06 | 📘 บทที่ 6 นิพจน์และตัวดำเนินการ | 📝 แบบฝึกหัดบทที่ 6 | ✅ เฉลยบทที่ 6 |
| 07 | 📘 บทที่ 7 โครงสร้างการควบคุม | 📝 แบบฝึกหัดบทที่ 7 | ✅ เฉลยบทที่ 7 |
| 08 | 📘 บทที่ 8 ฟังก์ชัน | 📝 แบบฝึกหัดบทที่ 8 | ✅ เฉลยบทที่ 8 |
| 09 | 📘 บทที่ 9 NumPy | 📝 แบบฝึกหัดบทที่ 9 | ✅ เฉลยบทที่ 9 |
| 10 | 📘 บทที่ 10 การจัดการแฟ้มข้อมูล | 📝 แบบฝึกหัดบทที่ 10 | ✅ เฉลยบทที่ 10 |
| 11 | 📘 บทที่ 11 การจัดการสิ่งผิดปรกติ | 📝 แบบฝึกหัดบทที่ 11 | ✅ เฉลยบทที่ 11 |
| 12 | 📘 บทที่ 12 คลาส | 📝 แบบฝึกหัดบทที่ 12 | ✅ เฉลยบทที่ 12 |
- ไฟล์บทเรียน:
บทที่01_ความรู้เบื้องต้นเกี่ยวกับคอมพิวเตอร์และการเขียนโปรแกรม.ipynb - หัวข้อสำคัญ:
- 1.1 ความสำคัญของคอมพิวเตอร์ — บทบาทของคอมพิวเตอร์ในชีวิตประจำวันและงานด้านต่าง ๆ
- 1.2 ฮาร์ดแวร์และซอฟต์แวร์
- 1.2.1 ฮาร์ดแวร์ (Hardware): CPU, หน่วยความจำหลัก (RAM), หน่วยความจำสำรอง, อุปกรณ์อินพุต, อุปกรณ์เอาต์พุต
- 1.2.2 ซอฟต์แวร์ (Software): ซอฟต์แวร์ระบบ (System Software) และซอฟต์แวร์ประยุกต์ (Application Software)
- 1.3 วิธีเก็บข้อมูลของคอมพิวเตอร์
- 1.3.1 การจัดเก็บข้อมูลประเภทตัวเลข (บิต, ไบต์, เลขฐานสอง) · 1.3.2 ข้อมูลประเภทอักขระ (ASCII, Unicode) · 1.3.3 ข้อมูลตัวเลขขั้นสูง (จำนวนลบและทศนิยม) · 1.3.4 ข้อมูลประเภทภาพและเสียง
- 1.4 วิธีการทำงานของโปรแกรม — วงจร Fetch–Decode–Execute, ภาษาเครื่อง, ภาษาแอสเซมบลี, ภาษาระดับสูง, คอมไพเลอร์ (Compiler) และอินเตอร์พรีเตอร์ (Interpreter)
- 1.5 สรุป · 1.6 คำถามท้ายบท · 1.7 บรรณานุกรม
- ไฟล์บทเรียน:
บทที่02_การแก้ปัญหาและขั้นตอนวิธี.ipynb - หัวข้อสำคัญ:
- 2.1 การแก้ปัญหาด้วยคอมพิวเตอร์ — แนวคิดและลำดับขั้นการแก้ปัญหา
- 2.2 การระบุข้อมูลเข้า ข้อมูลออก และเงื่อนไขของปัญหา
- 2.2.1 ปัญหาการหาตัวหารร่วมมาก (ห.ร.ม.) · 2.2.2 ปัญหาคะแนนสอบ · 2.2.3 การแบ่งกลุ่มทำงาน
- 2.3 การออกแบบขั้นตอนวิธี (Algorithm) — รหัสลำลอง (Pseudocode) และลักษณะของขั้นตอนวิธีที่ดี
- 2.4 การเขียนผังงาน (Flowchart)
- 2.4.1 หลักการทำงานของผังงาน · 2.4.2 ประโยชน์ของผังงาน · 2.4.3 สัญลักษณ์ของผังงาน · 2.4.4 รูปแบบการเขียนผังงาน (ลำดับ, เลือกทำ, วนซ้ำ)
- 2.5 ตัวอย่างการแก้ปัญหาและออกแบบขั้นตอนวิธี
- 2.5.1 ระบบรดน้ำต้นไม้อัตโนมัติ · 2.5.2 การหาค่าสูงสุดจากชุดข้อมูลตัวเลข
- 2.6 สรุป · 2.7 คำถามท้ายบท · 2.8 บรรณานุกรม
- ไฟล์บทเรียน:
บทที่03_แนะนำภาษาไพธอน.ipynb - หัวข้อสำคัญ:
- 3.1 ประวัติความเป็นมาและจุดเด่นของภาษาไพธอน
- 3.1.1 ประวัติของภาษาไพธอน · 3.1.2 ลักษณะเด่นของภาษาไพธอน
- 3.2 การติดตั้งโปรแกรมอนาคอนดา (Anaconda)
- 3.2.1 รู้จัก Anaconda · 3.2.2 การติดตั้งบนระบบปฏิบัติการ Windows · 3.2.3 ทดสอบการใช้งานผ่าน Python Shell
- 3.3 โปรแกรม PyCharm
- 3.3.1 การติดตั้งโปรแกรม PyCharm · 3.3.2 ทดสอบการสร้างโปรเจกต์และรันโปรแกรม
- 3.4 การใช้งาน Jupyter Notebook
- 3.4.1 หน้าจอการทำงานของ Jupyter Notebook · 3.4.2 การใช้งานเซลล์โค้ดและ Markdown · 🔬 ทัวร์ Jupyter ภาคปฏิบัติ · การเปรียบเทียบวิธีรันโปรแกรมไพธอน
- 3.5 สรุป · 3.6 คำถามท้ายบท · 3.7 บรรณานุกรม
- 3.1 ประวัติความเป็นมาและจุดเด่นของภาษาไพธอน
- ไฟล์บทเรียน:
บทที่04_พื้นฐานโปรแกรมภาษาไพธอน.ipynb - แบบฝึกหัดและเฉลย:
- 📝 แบบฝึกหัดบทที่ 4 พื้นฐานโปรแกรมภาษาไพธอน — รวม 59 ข้อ (ปรนัย 20 ข้อ, ถูก/ผิด 10 ข้อ, ทำนายผลลัพธ์ 8 ข้อ, แก้ข้อผิดพลาด 4 ข้อ, เขียนโปรแกรม 11 ข้อ, อัตนัย 6 ข้อ)
- ✅ เฉลยแบบฝึกหัดบทที่ 4 พื้นฐานโปรแกรมภาษาไพธอน
- หัวข้อสำคัญ:
- 4.1 ไวยากรณ์ของภาษาไพธอน (Syntax & Semantics)
- 4.1.1 ไอเด็นติฟายเออร์ (Identifiers) · 4.1.2 คำสงวน (Reserved Words) · 4.1.3 บรรทัดและการเยื้องหน้า (Indentation) · 4.1.4 การแสดงคำสั่งหลายบรรทัด
- 4.1.5 การใช้เครื่องหมายคำพูด (Quotation) · 4.1.6 คำอธิบายโปรแกรม (Comment) · 4.1.7 บรรทัดว่าง · 4.1.8 หลายคำสั่งในบรรทัดเดียว
- 4.2 การรับข้อมูลเข้าและการแสดงผล
- 4.2.1 การรับข้อมูลจากแป้นพิมพ์ด้วย
input()· 4.2.2 การแสดงผลด้วยprint(), เมธอดformat(), และ 🆕f-string
- 4.2.1 การรับข้อมูลจากแป้นพิมพ์ด้วย
- 4.3 การรันโปรแกรมภาษาไพธอน — ตัวแปลภาษาไพธอน, โหมดโต้ตอบ (Interactive Mode), และโหมดสคริปต์ (Script Mode)
- 4.4 แนวทางการพัฒนาโปรแกรมด้วยภาษาไพธอน — The Zen of Python (
import this) - 4.5 สรุป · 4.6 คำถามท้ายบท · 4.7 บรรณานุกรม
- 4.1 ไวยากรณ์ของภาษาไพธอน (Syntax & Semantics)
- ไฟล์บทเรียน:
บทที่05_ตัวแปร_การกำหนดค่า_และชนิดข้อมูล.ipynb - แบบฝึกหัดและเฉลย:
- 📝 แบบฝึกหัดบทที่ 5 ตัวแปร การกำหนดค่า และชนิดข้อมูล — รวม 62 ข้อ (ปรนัย 20 ข้อ, ถูก/ผิด 10 ข้อ, ทำนายผลลัพธ์ 10 ข้อ, แก้ข้อผิดพลาด 5 ข้อ, เขียนโปรแกรม 11 ข้อ, อัตนัย 6 ข้อ)
- ✅ เฉลยแบบฝึกหัดบทที่ 5 ตัวแปร การกำหนดค่า และชนิดข้อมูล
- หัวข้อสำคัญ:
- 5.1 ความหมายของตัวแปร — การอ้างอิงวัตถุในหน่วยความจำและ Dynamic Typing
- 5.2 การตั้งชื่อตัวแปร — หลักการตั้งชื่อ (Naming Rules & Conventions) และคำสงวนในภาษาไพธอน
- 5.3 การประกาศและกำหนดค่าตัวแปร — การกำหนดค่าเดี่ยวและกำหนดค่าหลายตัวแปรพร้อมกัน (Multiple Assignment)
- 5.4 ชนิดข้อมูลพื้นฐาน (Primitive Data Types)
- 5.4.1 ตัวเลข (
int,float,complex) · 🆕 บูลีน (bool) และNone· 5.4.2 สตริง (str), การเข้าถึงด้วยดัชนี และการตัดช่วง (Slicing)
- 5.4.1 ตัวเลข (
- 5.5 ข้อมูลเชิงประกอบ (Compound Data Types)
- 5.5.1 ลิสต์ (
list) · 5.5.2 ทูเพิล (tuple) · 5.5.3 ดิกชันนารี (dict) · 5.5.4 เซต (set) · 📊 ตารางเปรียบเทียบคุณลักษณะ
- 5.5.1 ลิสต์ (
- 5.6 สรุป · 5.7 คำถามท้ายบท · 5.8 บรรณานุกรม
- ไฟล์บทเรียน:
บทที่06_นิพจน์และตัวดำเนินการ.ipynb - แบบฝึกหัดและเฉลย:
- 📝 แบบฝึกหัดบทที่ 6 นิพจน์และตัวดำเนินการ — รวม 62 ข้อ (ปรนัย 20 ข้อ, ถูก/ผิด 10 ข้อ, ทำนายผลลัพธ์ 10 ข้อ, แก้ข้อผิดพลาด 5 ข้อ, เขียนโปรแกรม 11 ข้อ, อัตนัย 6 ข้อ)
- ✅ เฉลยแบบฝึกหัดบทที่ 6 นิพจน์และตัวดำเนินการ
- หัวข้อสำคัญ:
- 6.1 นิพจน์ (Expressions) — ความหมายของนิพจน์, นิพจน์เลขคณิต, และนิพจน์ทางตรรกะ
- 6.2 ตัวดำเนินการ (Operators)
- 6.2.1 ตัวดำเนินการกำหนดค่า (
=,+=,-=, ...) · 6.2.2 ตัวดำเนินการทางคณิตศาสตร์ (+,-,*,/,//,%,**) - 6.2.3 ตัวดำเนินการสัมพันธ์ (
==,!=,<,>,<=,>=) · 6.2.4 ตัวดำเนินการตรรกะ (and,or,not) - 6.2.5 ตัวดำเนินการสมาชิก (
in,not in) · 6.2.6 ตัวดำเนินการเอกลักษณ์ (is,is not) · 6.2.7 ตัวดำเนินการระดับบิต (Bitwise Operators)
- 6.2.1 ตัวดำเนินการกำหนดค่า (
- 6.3 ลำดับการดำเนินการ (Operator Precedence) — กฎลำดับความสำคัญและการใส่วงเล็บ
- 6.4 สรุป · 6.5 คำถามท้ายบท · 6.6 บรรณานุกรม
- ไฟล์บทเรียน:
บทที่07_โครงสร้างการควบคุม.ipynb - แบบฝึกหัดและเฉลย:
- 📝 แบบฝึกหัดบทที่ 7 โครงสร้างควบคุม — รวม 63 ข้อ (ปรนัย 20 ข้อ, ถูก/ผิด 10 ข้อ, ทำนายผลลัพธ์ 10 ข้อ, แก้ข้อผิดพลาด 5 ข้อ, เขียนโปรแกรม 12 ข้อ, อัตนัย 6 ข้อ)
- ✅ เฉลยแบบฝึกหัดบทที่ 7 โครงสร้างควบคุม
- หัวข้อสำคัญ:
- 7.1 โครงสร้างควบคุมแบบเลือกทำ (Selection Statements)
- 7.1.1 คำสั่ง
if· 7.1.2 คำสั่งif…else…· 7.1.3 คำสั่งif…elif…else· 7.1.4 คำสั่งNested if· 🆕 ค่าความจริง (Truthiness) และนิพจน์เงื่อนไขแบบย่อ (Ternary)
- 7.1.1 คำสั่ง
- 7.2 โครงสร้างควบคุมแบบวนซ้ำ (Repetition / Loop Statements)
- 7.2.1 คำสั่ง
forและฟังก์ชันrange()· 7.2.2 คำสั่งwhile· 7.2.3 ลูปซ้อน (Nested Loop) · 7.2.4 ลูปไม่สิ้นสุด (Infinite Loop) - 7.2.5 คำสั่งควบคุมการวนซ้ำ (
break,continue,pass) · 7.2.6 ตัวอย่างการคำนวณด้วยการวนซ้ำ
- 7.2.1 คำสั่ง
- 7.3 สรุป · 7.4 คำถามท้ายบท · 7.5 บรรณานุกรม
- 7.1 โครงสร้างควบคุมแบบเลือกทำ (Selection Statements)
- ไฟล์บทเรียน:
บทที่08_ฟังก์ชัน.ipynb - แบบฝึกหัดและเฉลย:
- 📝 แบบฝึกหัดบทที่ 8 ฟังก์ชัน — รวม 63 ข้อ (ปรนัย 20 ข้อ, ถูก/ผิด 10 ข้อ, ทำนายผลลัพธ์ 10 ข้อ, แก้ข้อผิดพลาด 5 ข้อ, เขียนโปรแกรม 12 ข้อ, อัตนัย 6 ข้อ)
- ✅ เฉลยแบบฝึกหัดบทที่ 8 ฟังก์ชัน
- หัวข้อสำคัญ:
- 8.1 พื้นฐานของฟังก์ชัน — ความหมาย ประโยชน์ และการนิยามฟังก์ชันด้วย
def - 8.2 การใช้งานฟังก์ชัน — 8.2.1 การเรียกฟังก์ชัน · 8.2.2 Docstring · 8.2.3 การคืนค่าด้วยคำสั่ง
return - 8.3 ขอบเขตและเวลาชีวิตของตัวแปร (Scope & Lifetime) — Local variable, Global variable, และคำสั่ง
global - 8.4 การส่งผ่านอาร์กิวเมนต์ — 8.4.1 การส่งผ่านตามค่า (Pass by Value / Immutable) · 8.4.2 การส่งผ่านตามการอ้างอิง (Pass by Reference / Mutable)
- 8.5 ประเภทของอาร์กิวเมนต์ — 8.5.1 Required · 8.5.2 Keyword · 8.5.3 Default · 8.5.4 Variable-length (
*args,**kwargs) - 8.6 ฟังก์ชันแบบเวียนเกิด (Recursive Function) — 8.6.1 การหาค่าแฟกทอเรียล · 8.6.2 จำนวนฟีโบนัชชี
- 8.7 การออกแบบโปรแกรมโดยใช้ฟังก์ชัน — กรณีศึกษาการจำลองระบบตู้ ATM
- 8.8 สรุป · 8.9 คำถามท้ายบท · 8.10 บรรณานุกรม
- 8.1 พื้นฐานของฟังก์ชัน — ความหมาย ประโยชน์ และการนิยามฟังก์ชันด้วย
- ไฟล์บทเรียน:
บทที่09_NumPy.ipynb - แบบฝึกหัดและเฉลย:
- 📝 แบบฝึกหัดบทที่ 9 NumPy — รวม 64 ข้อ (ปรนัย 20 ข้อ, ถูก/ผิด 10 ข้อ, ทำนายผลลัพธ์ 10 ข้อ, แก้ข้อผิดพลาด 5 ข้อ, เขียนโปรแกรม 13 ข้อ, อัตนัย 6 ข้อ)
- ✅ เฉลยแบบฝึกหัดบทที่ 9 NumPy
- หัวข้อสำคัญ:
- 9.1 แนะนำ NumPy — ประวัติ ความสำคัญ และการนำเข้าโมดูล
import numpy as np - 9.2 ความแตกต่างระหว่าง NumPy Arrays และลิสต์ — ประสิทธิภาพหน่วยความจำและความเร็วในการคำนวณ
- 9.3 NumPy ndarray — โครงสร้าง
ndarray, คุณสมบัติ (ndim,shape,size,dtype), และการสร้างอาร์เรย์ (array,zeros,ones,arange,linspace,random) - 9.4 การคำนวณทางคณิตศาสตร์กับ NumPy Arrays — Vectorization และ 🆕 Broadcasting
- 9.5 การเข้าถึงข้อมูลสมาชิกในอาร์เรย์ (Indexing) — อาร์เรย์ 1 มิติ, 2 มิติ และหลายมิติ
- 9.6 การหั่นช่วงอาร์เรย์ (Slicing) — การตัดช่วงข้อมูล และ 🆕 การเลือกข้อมูลด้วยเงื่อนไข (Boolean Indexing)
- 9.7 การปรับรูปร่างอาร์เรย์ (Reshape) —
reshape(),flatten(),ravel(), และการสลับแกน (Transpose) - 9.8 การต่อและการแยกอาร์เรย์ — 9.8.1 Concatenation (
concatenate,vstack,hstack) · 9.8.2 Splitting (split,vsplit,hsplit) - 9.9 Universal Functions (UFuncs) — ฟังก์ชันคำนวณระดับสมาชิกบนอาร์เรย์
- 9.10 ค่าต่ำสุด ค่าสูงสุด และการสรุปค่าข้อมูลเชิงสถิติ —
sum,min,max,mean,std, และการระบุแกนaxis - 9.11 การจัดเรียงข้อมูลภายในอาร์เรย์ (Sorting) —
np.sort(), การเรียงตามแถวหรือคอลัมน์ - 9.12 สรุป · 9.13 คำถามท้ายบท · 9.14 บรรณานุกรม
- 9.1 แนะนำ NumPy — ประวัติ ความสำคัญ และการนำเข้าโมดูล
- ไฟล์บทเรียน:
บทที่10_การจัดการแฟ้มข้อมูล.ipynb - แบบฝึกหัดและเฉลย:
- 📝 แบบฝึกหัดบทที่ 10 การจัดการแฟ้มข้อมูล — รวม 63 ข้อ (ปรนัย 20 ข้อ, ถูก/ผิด 10 ข้อ, ทำนายผลลัพธ์ 10 ข้อ, แก้ข้อผิดพลาด 5 ข้อ, เขียนโปรแกรม 12 ข้อ, อัตนัย 6 ข้อ)
- ✅ เฉลยแบบฝึกหัดบทที่ 10 การจัดการแฟ้มข้อมูล
- หัวข้อสำคัญ:
- 10.1 พื้นฐานเกี่ยวกับไฟล์ — 🆕 ไฟล์ข้อความ (Text File) กับไฟล์ไบนารี (Binary File), พาธสัมบูรณ์และพาธสัมพัทธ์
- 10.2 การเปิดไฟล์ — 10.2.1 คำสั่ง
open()· 10.2.2 โหมดอาร์กิวเมนต์ (r,w,a,x,b,+) · 🆕 การกำหนดencoding="utf-8" - 10.3 ไฟล์ออบเจกต์ (File Object) — 10.3.1 การอ่านและเขียนไฟล์ (
read,write,close) · 🆕 ตัวชี้ตำแหน่ง (seek,tell) · 10.3.2 คำสั่งwith(Context Manager) - 10.4 การอ่านและเขียนไฟล์ทีละบรรทัด —
readline(),readlines(),writelines(), และการวนลูปอ่านไฟล์ - 10.5 พาธและไดเรกทอรี — โมดูล
os,os.path,shutilและ 🆕pathlibสำหรับการจัดการไฟล์และไดเรกทอรี - 10.6 การจัดการไฟล์ประเภท CSV — การอ่านและเขียนไฟล์ CSV ด้วยโมดูล
csv(reader,writer, 🆕DictReader,DictWriter) - 10.7 การประยุกต์วิธีจัดการแฟ้มข้อมูลในการทำงานจริง — กรณีศึกษางานวิจัยเหมืองข้อความสมุนไพร
- 10.8 สรุป · 10.9 คำถามท้ายบท (ลงมือเขียนโปรแกรม) · 10.10 บรรณานุกรม
- ไฟล์บทเรียน:
บทที่11_การจัดการสิ่งผิดปรกติ.ipynb - แบบฝึกหัดและเฉลย:
- 📝 แบบฝึกหัดบทที่ 11 การจัดการสิ่งผิดปรกติ — รวม 63 ข้อ (ปรนัย 20 ข้อ, ถูก/ผิด 10 ข้อ, ทำนายผลลัพธ์ 10 ข้อ, แก้ข้อผิดพลาด 5 ข้อ, เขียนโปรแกรม 12 ข้อ, อัตนัย 6 ข้อ)
- ✅ เฉลยแบบฝึกหัดบทที่ 11 การจัดการสิ่งผิดปรกติ
- หัวข้อสำคัญ:
- 11.1 ความหมายของสิ่งผิดปรกติ — 11.1.1 ข้อผิดพลาดทางไวยากรณ์ (Syntax Errors) · 11.1.2 สิ่งผิดปรกติขณะทำงาน (Exceptions)
- 11.2 สิ่งผิดปรกติในภาษาไพธอน — ชนิดของ Built-in Exceptions, 🆕 วิธีอ่านข้อความ Traceback, และ 🆕 ลำดับชั้นของ Exception (Exception Hierarchy)
- 11.3 การตรวจจับและควบคุมสิ่งผิดปรกติ
- 11.3.1 คำสั่ง
try-except· 11.3.2 การตรวจจับสิ่งผิดปรกติหลายประเภท · 11.3.3 การจัดการสิ่งผิดปรกติทั้งหมด - 11.3.4 ประโยค
else· 11.3.5 ประโยคfinally· 🆕 11.3.6 การสร้างสิ่งผิดปรกติด้วยคำสั่งraiseและแนวคิด EAFP vs LBYL
- 11.3.1 คำสั่ง
- 11.4 สรุป · 11.5 คำถามท้ายบท · 11.6 บรรณานุกรม
- ไฟล์บทเรียน:
บทที่12_คลาส.ipynb - แบบฝึกหัดและเฉลย:
- 📝 แบบฝึกหัดบทที่ 12 คลาส — รวม 63 ข้อ (ปรนัย 20 ข้อ, ถูก/ผิด 10 ข้อ, ทำนายผลลัพธ์ 10 ข้อ, แก้ข้อผิดพลาด 5 ข้อ, เขียนโปรแกรม 12 ข้อ, อัตนัย 6 ข้อ)
- ✅ เฉลยแบบฝึกหัดบทที่ 12 คลาส
- หัวข้อสำคัญ:
- 12.1 การสร้างและใช้งานคลาส
- 12.1.1 การสร้างคลาสและเมธอด
__init__()· 12.1.2 การสร้างอินสแตนซ์ (Instance) · 12.1.3 การเข้าถึงแอตทริบิวต์ · 12.1.4 การเรียกเมธอด · 12.1.5 การสร้างหลายอินสแตนซ์ · 🆕 เมธอดพิเศษ__str__()
- 12.1.1 การสร้างคลาสและเมธอด
- 12.2 การทำงานกับคลาสและอินสแตนซ์
- 12.2.1 สร้างคลาส
Car· 12.2.2 การตั้งค่าเริ่มต้นให้แอตทริบิวต์ · 12.2.3 การแก้ไขค่าโดยตรง · 12.2.4 การแก้ไขค่าผ่านเมธอด · 🆕 การห่อหุ้มข้อมูล (Encapsulation) และ Class Attribute vs Instance Attribute
- 12.2.1 สร้างคลาส
- 12.3 การสืบทอด (Inheritance)
- 12.3.1 ความหมายของการสืบทอด · 12.3.2 การสืบทอดด้วย
super()· 12.3.3 การเพิ่มแอตทริบิวต์และเมธอดให้คลาสลูก · 12.3.4 การสืบทอดจากหลายคลาส (Multiple Inheritance) · 12.3.5 การลบล้างเมธอด (Method Overriding) และ 🆕 Polymorphism
- 12.3.1 ความหมายของการสืบทอด · 12.3.2 การสืบทอดด้วย
- 12.4 การนำเข้าคลาส (Importing Classes)
- การจัดเก็บคลาสในโมดูล (
.py), การนำเข้าคลาสเดี่ยว/หลายคลาส/ทั้งโมดูล, และ 🆕 ความสัมพันธ์แบบ Composition (has-a)
- การจัดเก็บคลาสในโมดูล (
- 12.5 สรุป · 12.6 คำถามท้ายบท · 12.7 บรรณานุกรม
- 12.1 การสร้างและใช้งานคลาส