การแปลงชนิดข้อมูล

ในบทที่แล้ว (วิทยาการคำนวณ ม.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/ เพื่อเป็นกำลังใจให้กับทีมงานด้วยนะครับ


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: