โปรแกรมใน EP1 ของเราพูดได้อย่างเดียว บอกให้พูดอะไรก็พูด แต่จำอะไรไม่ได้เลย EP นี้เราจะให้มันมี "ความจำ" ครับ และพอมันจำได้ มันก็เริ่มคำนวณแทนเราได้ทันที
🎯
จบ EP นี้คุณจะทำอะไรได้
สร้างตัวแปรเก็บค่าไว้ใช้ต่อได้ · แยกออกว่าข้อมูลแต่ละอย่างเป็นชนิดไหน · เขียนเครื่องคิดเลขคิดกำไรร้านตัวเองได้ 1 ตัว
ใช้เวลา: อ่าน 15 นาที + ลงมือทำ 25 นาที · ต้องผ่านมาก่อน: EP1
ทบทวน 30 วินาที — EP1 เราติดตั้ง Python กับ VS Code แล้วเขียน print() เพื่อแสดงข้อความบนจอ และรู้ว่าข้อความต้องมีเครื่องหมายคำพูดครอบ แต่ตัวเลขไม่ต้อง
ตัวแปรคือกล่องที่ติดป้ายชื่อไว้
📦
ลองนึกถึงกล่องเก็บของที่คุณเขียนป้ายแปะไว้ข้างกล่อง เวลาจะใช้ของ คุณไม่ต้องจำว่าของอยู่ตรงไหน แค่เรียกชื่อบนป้ายก็หยิบถูก — ตัวแปรก็แบบเดียวกันเป๊ะ คุณเก็บค่าไว้ในกล่อง ตั้งชื่อกล่อง แล้วเรียกใช้ด้วยชื่อนั้นได้ตลอดทั้งโปรแกรม
ลองสร้างไฟล์ใหม่ชื่อ ep2.py แล้วพิมพ์ตามนี้ครับ
shop_name = "ร้านกาแฟหนูดี"
price = 250
print(shop_name)
print(price)
ผลที่ได้
ร้านกาแฟหนูดี
250
สังเกตให้ดีนะครับ ตอนเราสั่ง print(shop_name) เราไม่ได้ใส่เครื่องหมายคำพูด เพราะเราไม่ได้อยากให้มันพิมพ์คำว่า "shop_name" ออกมา แต่อยากให้มันเปิดกล่องชื่อ shop_name แล้วเอาของข้างในออกมาพิมพ์
print(shop_name) # ได้: ร้านกาแฟหนูดี ← เปิดกล่องเอาของข้างใน
print("shop_name") # ได้: shop_name ← พิมพ์ตัวหนังสือตรงๆ
💡
เครื่องหมาย # คืออะไร
ทุกอย่างที่อยู่หลัง # ในบรรทัดนั้น Python จะไม่สนใจเลย เราเรียกว่า คอมเมนต์ มีไว้เขียนโน้ตบอกตัวเองในอนาคตว่าโค้ดตรงนี้ทำอะไร ใช้ให้ติดเป็นนิสัยตั้งแต่วันนี้เลยครับ คุณจะขอบคุณตัวเองในอีก 3 เดือน
ชนิดข้อมูล 4 แบบที่ต้องรู้
Python แยกข้อมูลออกเป็นชนิด และมันสำคัญมากเพราะข้อมูลคนละชนิดทำอะไรกันไม่ได้ เหมือนคุณเอาน้ำหนัก 5 กิโลกรัม มาบวกกับ 3 ชั่วโมง แล้วถามว่าได้เท่าไหร่ — มันตอบไม่ได้
ถ้าไม่แน่ใจว่าอะไรเป็นชนิดไหน ถาม Python ตรงๆ ได้ด้วยคำสั่ง type()
print(type("ร้านกาแฟหนูดี")) # <class 'str'>
print(type(250)) # <class 'int'>
print(type(249.50)) # <class 'float'>
print(type(True)) # <class 'bool'>
คำว่า class ยังไม่ต้องสนใจครับ ดูแค่คำหลัง ' ก็พอ
คำนวณด้วยตัวแปร
พอค่าอยู่ในกล่องแล้ว เราเอากล่องมาบวกลบคูณหารกันได้เลย ตัวดำเนินการพื้นฐานมี 5 ตัว
a = 10
b = 3
print(a + b) # 13 บวก
print(a - b) # 7 ลบ
print(a * b) # 30 คูณ (ใช้ดอกจัน ไม่ใช่ x)
print(a / b) # 3.333 หาร (ได้ทศนิยมเสมอ)
print(a % b) # 1 เศษจากการหาร
ที่ต้องระวังคือ เครื่องหมายคูณคือ * ไม่ใช่ x เพราะ x ถูกใช้เป็นชื่อตัวแปรได้ ถ้าเขียน a x b Python จะงงทันที
สร้างเครื่องคิดเลขคิดกำไรร้าน
ถึงเวลาเอาของจริงมาใช้แล้วครับ สมมติว่าคุณขายกาแฟแก้วละ 250 บาท ต้นทุนแก้วละ 180 บาท วันนี้ขายได้ 12 แก้ว — เราจะให้คอมพิวเตอร์คำนวณให้
# ==== ข้อมูลของร้าน (แก้ตัวเลขตรงนี้ให้เป็นของร้านคุณ) ====
shop_name = "ร้านกาแฟหนูดี"
price = 250 # ราคาขายต่อแก้ว
cost = 180 # ต้นทุนต่อแก้ว
qty = 12 # จำนวนที่ขายได้วันนี้
# ==== คำนวณ ====
revenue = price * qty # ยอดขาย
total_cost = cost * qty # ต้นทุนรวม
profit = revenue - total_cost # กำไร
# ==== แสดงผล ====
print("สรุปยอดวันนี้ของ", shop_name)
print("ขายได้", qty, "แก้ว")
print("ยอดขาย", revenue, "บาท")
print("ต้นทุน", total_cost, "บาท")
print("กำไร", profit, "บาท")
รันแล้วจะได้
สรุปยอดวันนี้ของ ร้านกาแฟหนูดี
ขายได้ 12 แก้ว
ยอดขาย 3000 บาท
ต้นทุน 2160 บาท
กำไร 840 บาท
ลองเปลี่ยนเลข qty จาก 12 เป็น 50 แล้วรันใหม่ครับ — ตัวเลขทุกบรรทัดเปลี่ยนตามให้เองหมด นี่คือพลังของตัวแปร คุณแก้ที่เดียว ที่เหลือมันคิดต่อให้เอง ถ้าเราไม่ใช้ตัวแปร คุณต้องนั่งแก้ตัวเลขทุกบรรทัดเอง
💰
ลองต่อยอดเลย
เพิ่มบรรทัด margin = profit / revenue * 100 แล้ว print ออกมา คุณจะได้ % กำไรของร้านทันที ซึ่งเป็นตัวเลขที่เจ้าของร้านควรรู้แต่ส่วนใหญ่ไม่เคยคำนวณ
กับดักที่คุณจะเจอ
🚫
1. เอาข้อความไปบวกกับตัวเลข
"250" + 50 จะพังทันทีด้วย TypeError เพราะ "250" ที่มีคำพูดครอบคือข้อความ ไม่ใช่ตัวเลข ถ้าอยากแปลงให้ใช้ int("250") + 50 จะได้ 300 — เรื่องนี้จะกลับมาหลอกหลอนคุณอีกครั้งใน EP3 ครับ จำไว้ให้ดี
⚠️
2. ตั้งชื่อตัวแปรผิดกติกา
ห้ามขึ้นต้นด้วยตัวเลข (2price ไม่ได้) ห้ามมีเว้นวรรค (shop name ไม่ได้ ใช้ shop_name) และห้ามใช้คำสงวนของ Python เช่น print, if, list เป็นชื่อตัวแปร
⚠️
3. ใช้ตัวแปรก่อนสร้าง
Python อ่านจากบนลงล่าง ถ้าคุณ print(profit) ก่อนบรรทัดที่คำนวณ profit จะเจอ NameError: name 'profit' is not defined แปลว่า "ไม่รู้จักกล่องชื่อนี้" — ต้องสร้างกล่องก่อนเสมอ แล้วค่อยเรียกใช้
💡
ทำไมไม่ตั้งชื่อตัวแปรเป็นภาษาไทย
ทางเทคนิคทำได้ครับ ราคา = 250 Python ยอมรับ แต่ผมไม่แนะนำ เพราะเวลาไปดูโค้ดคนอื่น ค้นหาวิธีแก้ปัญหาใน Google หรือให้ AI ช่วยเขียน ทุกอย่างเป็นภาษาอังกฤษหมด การชินกับชื่ออังกฤษตั้งแต่วันแรกจะช่วยคุณมากในระยะยาว ส่วนคอมเมนต์เขียนไทยได้เต็มที่ครับ
ลงมือทำ
ข้อ 1 (ง่าย) — สร้างตัวแปร 3 ตัวเก็บชื่อคุณ อายุ และส่วนสูง แล้ว print ออกมาทั้งหมด พร้อมเช็คด้วย type() ว่าแต่ละตัวเป็นชนิดอะไร
ดูเฉลยข้อ 1
name = "ภูมิพัฒน์"
age = 35
height = 172.5
print(name, age, height)
print(type(name)) # str
print(type(age)) # int
print(type(height)) # float
ข้อ 2 (กลาง) — แก้เครื่องคิดเลขข้างบนให้คำนวณเปอร์เซ็นต์กำไรเพิ่ม และให้แสดงผลว่า "กำไร 840 บาท (28.0%)"
ดูเฉลยข้อ 2
price = 250
cost = 180
qty = 12
revenue = price * qty
profit = (price - cost) * qty
margin = profit / revenue * 100
print("กำไร", profit, "บาท", "(", margin, "%)")
จะเห็นว่าผลออกมาหน้าตายังไม่สวย มีเว้นวรรคเกินรอบวงเล็บ และทศนิยมยาวเกินจำเป็น — EP3 เราจะได้เครื่องมือจัดข้อความให้สวยกว่านี้ครับ
ข้อ 3 (ท้าทาย) — ร้านคุณมีสินค้า 2 อย่าง กาแฟ (ขาย 250 ทุน 180 ขายได้ 12) และเค้ก (ขาย 120 ทุน 70 ขายได้ 25) เขียนโปรแกรมสรุปกำไรรวมของทั้งร้าน และบอกด้วยว่าสินค้าไหนทำกำไรได้มากกว่า
ดูเฉลยข้อ 3
coffee_profit = (250 - 180) * 12 # 840
cake_profit = (120 - 70) * 25 # 1250
total = coffee_profit + cake_profit
print("กำไรกาแฟ", coffee_profit, "บาท")
print("กำไรเค้ก", cake_profit, "บาท")
print("กำไรรวม", total, "บาท")
เค้กทำกำไรมากกว่า (1,250 บาท) ทั้งที่ราคาถูกกว่าครึ่ง — ส่วนการให้โปรแกรมตอบเองว่าตัวไหนมากกว่า ต้องใช้เงื่อนไข ซึ่งเป็นเรื่องของ EP4 ครับ
เช็คว่าคุณผ่าน EP นี้จริง
- อธิบายได้ว่า
price = 250ทำงานยังไง และทำไม = ไม่ได้แปลว่า "เท่ากับ" - บอกความต่างระหว่าง
250กับ"250"ได้ - เครื่องคิดเลขกำไรของคุณรันได้ และเปลี่ยนตัวเลขแล้วผลลัพธ์เปลี่ยนตามถูกต้อง
- เขียนคอมเมนต์ด้วย
#อธิบายโค้ดตัวเองได้
EP หน้าเจออะไร
ตอนนี้โปรแกรมของเรายังต้องให้คุณเข้าไปแก้ตัวเลขในโค้ดเองทุกครั้ง ซึ่งคนอื่นใช้ไม่ได้เลย EP3 เราจะทำให้โปรแกรมถามผู้ใช้เองว่าขายอะไร กี่ชิ้น แล้วออกใบเสร็จหน้าตาสวยๆ ให้ พร้อมเรียนวิธีจัดข้อความให้ตัวเลขมีลูกน้ำคั่นหลักพันและทศนิยม 2 ตำแหน่งเป๊ะครับ