🔁 การแปลงชนิดข้อมูล (Casting) ที่ต้องทำความเข้าใจ!

การแปลงชนิดข้อมูลเป็นทักษะพื้นฐานที่สำคัญมากในการจัดการและคำนวณข้อมูลใน Python ค่ะ/ครับ! เราใช้ฟังก์ชันเหล่านี้เพื่อเปลี่ยน Type ของตัวแปร:

⚙️ 3 ฟังก์ชันหลักในการ Casting:

• 1. int() (แปลงเป็นจำนวนเต็ม)

• รับได้ทั้ง Int, Float, หรือ String ที่เป็นตัวเลขเต็ม

• สำคัญ! ถ้ามาจาก Float (2.8) ฟังก์ชันจะ ตัดทศนิยมทิ้ง (Truncate) เหลือแค่ 2 ไม่ได้ปัดเศษ (Round up)!

• 2. float() (แปลงเป็นทศนิยม)

• รับได้ทั้ง Int, Float, หรือ String ที่เป็นตัวเลข (ทั้งเต็มและทศนิยม)

• ถ้ามาจาก Int (1) จะได้เป็นทศนิยม (1.0)

• 3. str() (แปลงเป็นข้อความ)

• รับได้จากข้อมูลแทบทุกชนิด (Int, Float, Bool, List, Dict, ฯลฯ)

• ผลลัพธ์จะเป็น String เสมอ

💡 ข้อควรระวัง: การแปลง String เป็นตัวเลข (int() หรือ float()) จะใช้ได้ก็ต่อเมื่อ String นั้นมีรูปแบบเป็นตัวเลขที่ถูกต้องเท่านั้น ไม่งั้นจะเกิด Error นะคะ

การทำความเข้าใจหลักการ Casting จะช่วยให้โค้ดของเรายืดหยุ่นและป้องกันข้อผิดพลาดได้ดีขึ้นค่ะ

#programming #programmer #data #ai #learnonlemon8

2025/11/6 แก้ไขแล้ว

... อ่านเพิ่มเติมถ้าพูดถึง “ชนิดข้อมูล Python” สิ่งที่ทำให้โค้ดพังบ่อยไม่ใช่แค่จำชื่อ type ไม่ได้ แต่คือ “ใช้ผิดบริบท” โดยเฉพาะตอนรับค่าจาก input/ไฟล์/เว็บ แล้วดันได้มาเป็นสตริงทั้งหมด เลยอยากเสริมภาพรวมชนิดข้อมูลที่เจอบ่อย + เช็กลิสต์ก่อน casting ให้ใช้ได้ปลอดภัยขึ้นค่ะ/ครับ ชนิดข้อมูลพื้นฐานที่เจอประจำใน Python - int: จำนวนเต็ม เช่น 1, -10 - float: ทศนิยม เช่น 3.14, 2.0 - str: ข้อความ เช่น "123" (ถึงจะเป็นตัวเลข แต่ยังเป็นข้อความ) - bool: True/False (สำคัญมากเพราะ True/False เป็นคนละเรื่องกับ "true"/"false") - list/tuple: กลุ่มข้อมูล เช่น [1,2,3] - dict: เก็บข้อมูลเป็นคู่ key:value เช่น {"age": 20} ทริคที่ช่วยให้เข้าใจเร็ว: ใช้ type() เช็กก่อนเสมอ เวลาไม่แน่ใจว่าค่าที่ได้มาเป็นอะไร ลองพิมพ์ type(x) ก่อน แล้วค่อยตัดสินใจว่าจะใช้ int() / float() / str() หรือไม่ จะช่วยลด error ได้เยอะมาก ข้อควรระวังยอดฮิตตอนแปลง string เป็นตัวเลข 1) มีช่องว่าง/เครื่องหมายปนมา เช่น " 12 " แปลง int ได้ แต่ถ้าเป็น "12,000" หรือ "12 บาท" จะ error ทันที วิธีที่ชอบใช้คือจัดรูปก่อน เช่น strip() ลบช่องว่าง หรือ replace(",", "") เพื่อลบ comma แล้วค่อยแปลง 2) สตริงเป็นทศนิยม แต่ไปใช้ int() เช่น "2.8" ใช้ int("2.8") จะ error (เพราะมีจุด) ถ้าต้องการแปลงให้เป็นจำนวนเต็มจริง ๆ ให้ทำเป็น int(float("2.8")) และอย่าลืมว่ามัน “ตัดทศนิยมทิ้ง” ไม่ได้ปัดเศษ 3) เรื่องการปัดเศษ (คนมักสับสนกับ int) ถ้าต้องการปัดเศษจริง ๆ ให้ใช้ round() เช่น round(2.8) ได้ 3 แต่ถ้าใช้ int(2.8) จะได้ 2 การแปลงชนิดข้อมูลที่เจอบ่อยในงานจริง - ต่อข้อความกับตัวเลข: "อายุ: " + str(age) - คำนวณจากค่าที่รับมาเป็นข้อความ: total = int(price) * int(qty) - แปลงเพื่อเก็บ/ส่งข้อมูล: บางทีต้องแปลงเป็น str ก่อนส่งออกเป็น JSON หรือพิมพ์ log วิธีเลี่ยง error แบบง่าย ๆ เวลาแปลง ถ้าไม่มั่นใจว่าข้อมูลสะอาดไหม ลองใช้ try/except ครอบตอน casting เช่นตอนแปลง int() หรือ float() เพื่อกันโปรแกรมเด้ง แล้วค่อยแจ้งผู้ใช้ว่าใส่ข้อมูลไม่ถูกต้อง สรุปสั้น ๆ: เข้าใจชนิดข้อมูล Python + เช็ก type() + เลือก int()/float()/str() ให้ตรง และจำไว้ว่า int จาก float คือ “ตัดทศนิยม” จะช่วยให้โค้ดยืดหยุ่นและดีบักง่ายขึ้นมากค่ะ/ครับ