เนื่องจากไม่มีเน็ต เราต้องลงโปรแกรมให้ครบก่อนวันแข่ง หรือก่อนตัดสัญญาณเน็ตครับ สิ่งที่ต้องมีคือ "ตัวแปลภาษา (Python)" และ "เครื่องมือเขียนโค้ด (IDE)"
ขั้นตอนที่ 1: ติดตั้ง Python (หัวใจสำคัญ)
ไปที่เว็บ python.org/downloads
ดาวน์โหลดเวอร์ชันล่าสุด (เช่น Python 3.12.x)
จุดสำคัญที่สุด: ตอนกดติดตั้ง (Install) ต้องติ๊กถูกช่อง "Add Python to PATH" ด้านล่างสุดก่อนกด Install ไม่งั้นเครื่องจะหาคำสั่ง python ไม่เจอครับ
ขั้นตอนที่ 2: ติดตั้งโปรแกรมเขียนโค้ด (IDE)
สำหรับนักเรียนที่ย้ายมาจาก Colab ผมแนะนำ "Thonny" ครับ เพราะหน้าตาเรียบง่าย มีปุ่ม Run ชัดเจน และเห็นตัวแปรทำงานง่ายเหมือน Colab หรือถ้าอยากดูโปรขึ้นมาหน่อยก็ "VS Code" ครับ
แนะนำ: Thonny (โหลดที่ thonny.org)
ข้อดี: ติดตั้งง่ายมาก (มาพร้อม Python ในตัวด้วยซ้ำ), หน้าตาสะอาด, เหมาะกับมือใหม่สุดๆ
โจทย์เหล่านี้เน้นใช้ Standard Library (ที่มีมากับ Python อยู่แล้ว) ไม่ต้องต่อเน็ตโหลดเพิ่มครับ
แอพที่ 1: โปรแกรมคำนวณเกรด (Grade Calculator)
เป้าหมาย: ฝึกใช้ if, elif, else และการรับค่า input
คอนเซปต์: รับคะแนน แล้วบอกเกรด
Python
def calculate_grade():
print("--- โปรแกรมคำนวณเกรด ---")
try:
score = float(input("กรุณากรอกคะแนน (0-100): "))
if score > 100 or score < 0:
print("คะแนนไม่ถูกต้อง! ต้องอยู่ระหว่าง 0-100")
elif score >= 80:
print(f"คุณได้เกรด A (คะแนน {score})")
elif score >= 70:
print(f"คุณได้เกรด B (คะแนน {score})")
elif score >= 60:
print(f"คุณได้เกรด C (คะแนน {score})")
elif score >= 50:
print(f"คุณได้เกรด D (คะแนน {score})")
else:
print(f"คุณได้เกรด F (คะแนน {score}) - พยายามเข้านะ!")
except ValueError:
print("Error: กรุณากรอกเป็นตัวเลขเท่านั้น")
# เรียกใช้งานฟังก์ชัน
calculate_grade()
แอพที่ 2: เกมทายตัวเลข (Number Guessing Game)
เป้าหมาย: ฝึกใช้ loop (while), import random
คอนเซปต์: คอมพิวเตอร์สุ่มเลข 1-100 ให้เราทายไปเรื่อยๆ จนกว่าจะถูก
Python
import random
def guess_number_game():
target = random.randint(1, 100) # สุ่มเลข 1-100
attempts = 0
print("--- เกมทายใจ ทายตัวเลข 1-100 ---")
while True:
try:
guess = int(input("ทายเลขมาเลย: "))
attempts += 1
if guess < target:
print("น้อยไปครับ! ลองใหม่")
elif guess > target:
print("มากไปครับ! ลดลงหน่อย")
else:
print(f"ถูกต้องครับ! เลขคือ {target}")
print(f"คุณทายไปทั้งหมด {attempts} ครั้ง")
break # จบเกม ออกจากลูป
except ValueError:
print("ใส่ตัวเลขเท่านั้นนะครับ")
guess_number_game()
แอพที่ 3: โปรแกรมบันทึกรายรับ-รายจ่าย (Simple Ledger)
เป้าหมาย: ฝึกการจัดการ List และ Loop เบื้องต้น (จำลองฐานข้อมูล)
คอนเซปต์: เก็บรายการไว้ในตัวแปร List แล้วสรุปยอดรวม
Python
transactions = [] # List ว่างสำหรับเก็บข้อมูล
def add_transaction():
item = input("รายการ (เช่น ข้าวมันไก่): ")
price = float(input("ราคา (บาท): "))
transactions.append({"item": item, "price": price})
print("บันทึกเรียบร้อย!")
def show_summary():
total = 0
print("\n--- สรุปรายการ ---")
for t in transactions:
print(f"- {t['item']}: {t['price']} บาท")
total += t['price']
print("------------------")
print(f"ยอดรวมทั้งหมด: {total} บาท")
# Main Loop เพื่อให้โปรแกรมทำงานวนไปเรื่อยๆ
while True:
print("\n1. เพิ่มรายการ | 2. สรุปยอด | 3. ออกจากโปรแกรม")
choice = input("เลือกเมนู (1-3): ")
if choice == '1':
add_transaction()
elif choice == '2':
show_summary()
elif choice == '3':
print("บ๊ายบาย!")
break
else:
print("เลือกผิดครับ")
แอพที่ 4: นาฬิกาดิจิทัล (GUI Clock - มีหน้าต่าง)
เป้าหมาย: ฝึกทำ GUI (Graphic User Interface) แบบง่ายด้วย tkinter (มีติดเครื่องทุกเครื่องที่เป็น Python)
คอนเซปต์: หน้าต่างเด้งขึ้นมาบอกเวลาปัจจุบัน
Python
import tkinter as tk
from time import strftime
def time():
string = strftime('%H:%M:%S %p') # ดึงเวลาปัจจุบัน
label.config(text=string) # อัปเดตข้อความบนจอ
label.after(1000, time) # เรียกฟังก์ชันตัวเองซ้ำทุก 1000ms (1วินาที)
root = tk.Tk()
root.title("นาฬิกาของฉัน")
# ตกแต่งตัวอักษร
label = tk.Label(root, font=('calibri', 40, 'bold'),
background='black',
foreground='cyan')
label.pack(anchor='center')
time()
root.mainloop()
แอพที่ 5: โปรแกรมแปลงหน่วย (Unit Converter)
เป้าหมาย: ฝึกตรรกะคณิตศาสตร์และการสร้างฟังก์ชันย่อย
คอนเซปต์: แปลงอุณหภูมิ หรือ ระยะทาง
Python
def cm_to_inch(cm):
return cm / 2.54
def inch_to_cm(inch):
return inch * 2.54
print("--- โปรแกรมแปลงความยาว ---")
print("1. เซนติเมตร -> นิ้ว")
print("2. นิ้ว -> เซนติเมตร")
choice = input("เลือกโหมด (1 หรือ 2): ")
if choice == '1':
val = float(input("ระบุจำนวนเซนติเมตร: "))
print(f"{val} cm = {cm_to_inch(val):.2f} นิ้ว")
elif choice == '2':
val = float(input("ระบุจำนวนนิ้ว: "))
print(f"{val} นิ้ว = {inch_to_cm(val):.2f} cm")
else:
print("เลือกผิดจ้า")
การ Save ไฟล์: ใน Colab มันเซฟให้อัตโนมัติ แต่ใน Offline ต้องสอนนักเรียนกด File > Save As เป็นนามสกุล .py (เช่น my_game.py) เสมอ
ระวังเรื่อง Indent (ย่อหน้า): ใน Colab บรรทัดมันจัดให้อัตโนมัติเก่งมาก แต่ใน Editor ทั่วไป ถ้าย่อหน้าผิด (เช่น ใน if หรือ while) โปรแกรมจะ Error ทันที (IndentationError) ต้องย้ำนักเรียนเรื่องนี้ครับ