ในบทที่แล้ว (วิทยาการคำนวณ ม.1 ชนิดข้อมูลพื้นฐาน) เราทราบแล้วว่า ข้อมูลพื้นฐานในไพทอนสามารถแบ่งออกเป็น ข้อมูลข้อความ (String) และ ข้อมูลจำนวน (Numeric)
ข้อมูลชนิดข้อความ (String) มักใช้ในการแสดงผล ส่วน ข้อมูลชนิดจำนวน (Numeric) ใช้ในการคำนวณ หากเรานำข้อมูลชนิดข้อความไปคำนวณจะทำให้เกิด Error หรือข้อผิดพลาดขึ้น
ตัวอย่างที่ 1
คำสั่ง
width = "10" length = "3" area = width * length print(area)
ผลลัพท์
area = width * length TypeError: can’t multiply sequence by non-int of type ‘str’ |
จากตัวอย่างจะพบว่า บรรทัดที่ 3 เกิดข้อผิดพลาดขึ้น เนื่องจากชนิดข้อมูลของ width และ length เป็นข้อมูลชนิดข้อความไม่สามารถนำมาคำนวณทางคณิตศาสตร์ได้
ตัวอย่างที่ 2
คำสั่ง
width = "10" length = 3 area = width * length print(area)
ผลลัพท์
101010 |
จากตัวอย่างจะพบว่า ผลลัพท์ไม่ถูกต้อง
เนื่องจากชนิดข้อมูลของ width เป็น ข้อมูลชนิดข้อความ และ length เป็นข้อมูลชนิดจำนวน ผลลัพท์ การใช้ตัวดำเนินการ * จึงเป็นการนำข้อมูล width (“10”) มาพิมพ์ซ้ำ length (3) ครั้ง ผลลัพท์ที่ได้คือ “101010”
จากตัวอย่างจะเห็นว่าชนิดของข้อมูลมีความสำคัญในการเขียนโปรแกรม!!
การตรวจสอบชนิดข้อมูล
ในไพทอนมีคำสั่ง type( ) ใช้ในการตรวจสอบชนิดข้อมูล
ตัวอย่างที่ 1
คำสั่ง
width = "10" length = 3 print(type(width)) print(type(length))
ผลลัพท์
<class ‘str’> <class ‘int> |
จากตัวอย่างจะพบว่า
บรรทัดที่ 3 ค่าของ type(width) ได้ผลลัพท์เป็น <class ‘str’> โดย str ย่อมาจาก Strings แสดงว่าชนิดข้อมูลของ width เป็น ตัวแปรชนิดข้อความ
บรรทัดที่ 4 ค่าของ type(length) ได้ผลลัพท์เป็น <class ‘int’> โดย int ย่อมาจาก Integers แสดงว่าชนิดข้อมูลของ length เป็นตัวแปรชนิดจำนวน
ตัวย่อของชนิดข้อมูล

นอกจากนี้ยังมีชนิดข้อมูลอื่นอีก เช่น list , dict , tup , set สามารถหาข้อมูลเพิ่มเติมได้ที่ >> การเขียนโปรแกรมภาษา Python
การแปลงชนิดของข้อมูล
คำสั่ง int( ) ใช้ในการแปลงข้อมูลเป็นจำนวนจริง (Integers) โดยสามารถแปลงข้อมูลที่เป็นทศนิยม และข้อความที่เป็นตัวเลขได้
คำสั่ง
int(3.12) int('2020') int('สิบหก')
บรรทัดที่ 1 ผลลัพท์เท่ากับ 3 คำสั่ง int( ) แปลงจากเลขทศนิยมเป็นจำนวนเต็มโดยตัดเลขทศนิยมด้านหลังทั้งหมดออก
บรรทัดที่ 2 ผลลัพท์เท่ากับ 2020 คำสั่ง int( ) แปลงจากข้อความเป็นจำนวนเต็ม
บรรทัดที่ 3 เกิดข้อผิดพลาดขึ้น เนื่องจากข้อความไม่ใช่ตัวเลข
คำสั่ง float( ) ใช้ในการแปลงข้อมูลเป็นทศนิยม (Floating point)โดยสามารถแปลงข้อมูลที่เป็นจำนวนเต็ม และข้อความที่เป็นตัวเลขได้
คำสั่ง
float(12) float('300') float('3.14') float('สามจุดหนึ่งสี่')
บรรทัดที่ 1 ผลลัพท์เท่ากับ 12.0 คำสั่ง float( ) แปลงจากจำนวนเต็มเป็นเลขทศนิยมโดยเติมจุดศูนย์ต่อท้าย
บรรทัดที่ 2 ผลลัพท์เท่ากับ 300.0 คำสั่ง int( ) แปลงจากข้อความเป็นเลขทศนิยม โดยเติมจุดศูนย์ต่อท้าย
บรรทัดที่ 3 ผลลัพท์เท่ากับ 3.14 คำสั่ง int( ) แปลงจากข้อความเป็นเลขทศนิยม
บรรทัดที่ 4 เกิดข้อผิดพลาดขึ้น เนื่องจากข้อความไม่ใช่ตัวเลข
คำสั่ง str( ) ใช้ในการแปลงข้อมูลเป็นข้อความ (String) โดยสามารถแปลงข้อมูลจากชนิดอื่น ๆ เป็นข้อความได้หลากหลาย
คำสั่ง
str(12) str(3.14) str(02020) str(0o2020)
บรรทัดที่ 1 ผลลัพท์เท่ากับ ’12’ คำสั่ง str( ) แปลงจากจำนวนเต็มเป็นข้อความ
บรรทัดที่ 2 ผลลัพท์เท่ากับ ‘3.14’ คำสั่ง str( ) แปลงจากเลขทศนิยมเป็นข้อความ
บรรทัดที่ 3 เกิดข้อผิดพลาด เนื่องจาก การใส่เลข 0 นำหน้าตัวเลข จะทำให้ตัวแปรภาษาไพทอนเข้าใจว่าประกาศตัวแปรเลขฐานผิด
บรรทัดที่ 4 ผลลัพท์เท่ากับ ‘1040’ คำสั่ง str( ) แปลงจากจำนวนเต็มฐาน 8 (octal integers) เป็นข้อความในรูปของจำนวนเต็มฐาน 10
สรุป
การเขียนโปรแกรมต้องคำนึงถึงชนิดข้อมูล เนื่องจากข้อมูลแต่ละชนิดใช้งานต่างกัน
ข้อมูลชนิดข้อความ (String) มักใช้ในการแสดงผล ไม่สามารถนำมาคำนวณทางคณิตศาสตร์
ข้อมูลชนิดจำนวน (Numeric) ใช้ในการคำนวณทางคณิตศาสตร์
ตัวดำเนินการของแต่ละชนิดข้อมูล จะทำงานแตกต่างกัน เช่น
เครื่องหมายดอกจัน ” * ” ถ้าชนิดข้อมูลเป็นข้อความ หมายถึงให้พิมพ์ข้อความซ้ำ
ถ้าชนิดข้อมูลเป็นจำนวน หมายถึงให้ทำการคูณ
คำสั่ง type( ) ใช้ในการตรวจสอบชนิดของข้อมูล
คำสั่ง int ( ) ใช้ในการแปลงข้อมูลเป็นจำนวนจริง (Integers)
คำสั่ง float( ) ใช้ในการแปลงข้อมูลเป็นทศนิยม (Floating point)
คำสั่ง str( ) ใช้ในการแปลงข้อมูลเป็นข้อความ (String)
อ้างอิง
หนังสือเรียนรายวิชาพื้นฐานวิทยาศาสตร์เทคโนโลยี (วิทยาการคำนวณ) ชั้น ม.1 – สสวท.
สำหรับคนที่ชอบบทความนี้ อย่าลืมกด share หรือ กด like ที่ช่อง Fackbook: https://www.facebook.com/KidsCodeOnlineTH/ เพื่อเป็นกำลังใจให้กับทีมงานด้วยนะครับ