HomeComSci M.4Python 101 : input() และ Cast ข้อมูล

Python 101 : input() และ Cast ข้อมูล

คำสั่ง input()

Input หมายถึง สิ่งที่ได้รับเข้ามา ซึ่งในการเขียนโปรแกรม Input จะหมายถึงการที่โปรแกรมนั้นจะรับค่าอะไรมาซักอย่าง เพื่อที่จะให้นำไปใช้ในขณะที่โปรแกรมกำลังทำงาน
โดยในภาษา Python นั้นจะใช้คำสั่ง input() เพื่อทำการรับ input เข้ามาสู่ระบบ

*การป้อนค่าในคอมไพเลอร์ ทำได้โดยการพิมพ์ลงไปในส่วนที่แสดงผลโปรแกรม และยืนยันข้อมูลด้วยปุ่ม Enter

แต่เดี๋ยวก่อน!!

การใช้คำสั่ง input() ดังตัวอย่างนั้น ไม่สามารถนำไปใช้งานจริงได้ เพราะข้อมูลที่รับเข้ามายังไม่มีที่สำหรับจัดเก็บ

จึงต้องมีสร้างตัวแปรขึ้นมา เพื่อใช้จัดเก็บข้อมูลที่รับเข้ามาผ่านคำสั่ง input

x = input()

ตามโค้ดตัวอย่างด้านบนนั้น ข้อมูลที่ได้รับผ่านคำสั่ง input() จะถูกนำไปจัดเก็บที่ตัวแปร x

คำสั่ง input() ในการใช้งานจริง

เมื่อเขียนโปรแกรม ที่ต้องรับข้อมูลเข้าจากคนที่ใช้โปรแกรม ผู้เขียนโปรแกรม จะต้อง สื่อสาร กับ ผู้ใช้งานโปรแกรมด้วย ว่าต้องการให้ผู้ใช้งาน ป้อนข้อมูลอะไรเข้ามา

ซึ่งคำสั่ง input() สามารถใช้เขียนข้อความเพื่อสื่อสารได้เลย ด้วยการเขียนข้อความในช่อง () ของคำสั่ง input()

สถานการณ์ตัวอย่าง

โจอี้ ต้องการสร้างโปรแกรมสำหรับ นำชื่อและนามสกุลของผู้ใช้งานมาต่อกัน (สร้างทำไมหว่า?? 🤔)

โดยเขาต้องการให้ผู้ใช้งานโปรแกรม ป้อนเป็นข้อความเข้ามาสองค่า ค่าแรกเป็นชื่อของผู้ใช้งาน ค่าที่สองเป็นนามสกุล

ซึ่งถ้าโจอี้ ไม่สื่อสารอะไรกับผู้ใช้งานโปรแกรมเลย ผู้ใช้ก็ไม่สามารถเข้าใจความต้องการของโปรแกรมได้ ว่าต้องการให้เขาใช้งานอย่างไร ผู้ใช้อาจจะป้อนชื่อแมวเข้ามาก็ได้

แมทธิว เห็นโปรแกรมเอาชื่อมาต่อกันของโจอี้ ในบทเรียนที่แล้ว แมทธิวจึงอยากใช้คำสั่ง input() เพื่อเขียนโปรแกรมสำหรับบวกเลขสองตัว ให้คนเอาไปใช้บวกเลขกัน

นักเรียนทุกคน ทดลองเอาโปรแกรมของแมทธิวไปใช้งานดู ว่าใช้บวกเลขได้ถูกต้องหรือไม่ ?

เมื่อทดลองแล้ว จะพบว่า แทนที่โปรแกรมจะบวกเลขให้ กลับกลายเป็นเอาเลขมาต่อกัน!!

ทำไมถึงเกิดปัญหาเช่นนี้

นั่นก็เพราะ เมื่อรับข้อมูลด้วยคำสั่ง input() ข้อมูลที่ได้รับเข้ามา จะถูกเปลี่ยนไปเป็นประเภท string ทั้งหมด

ดังนั้น เมื่อเอาข้อมูลที่เป็น string มา บวก กัน จึงกลายเป็นการนำ string สองตัวมาต่อกัน
(ถ้าเอาไป ลบ คูณ หรือ หาร นี่โปรแกรม Error ทันทีเลย เพราะ string เอามาลบ คูณ หาร กันไม่ได้ )

จะแก้ไขปัญหาอย่างไร

ปัญหานี้ แก้ได้ด้วยการเปลี่ยนประเภทข้อมูลที่รับเข้ามา ให้กลายเป็นข้อมูลประเภท ตัวเลข (Integer หรือ Float) ที่สามารถนำมาบวก ลบ คูณ หาร ตามกระบวนการทางคณิตศาสตร์ได้ ซึ่งการเปลี่ยนประเภทข้อมูลนั้น ทำได้โดยวิธีการที่เรียกว่า การทำ Data type casting

การทำ Data type casting เพื่อเปลี่ยนประเภทของข้อมูล

Data type casting (อ่านว่า เดต้า ไทป์ แคสติ้ง) หรือ เรียกย่อๆ ว่าการ Casting นั้น คือกระบวนการที่ใช้ในการเปลี่ยนประเภทของข้อมูล ด้วยคำสั่ง ต่อไปนี้

ประเภทตัวแปรคำสั่งที่ใช้
Stringstr()
Intergerint()
Floatfloat()
Booleanboolean()

*จริงๆ Data type มีหลายประเภท แต่จะยกตัวอย่างเฉพาะประเภทที่จะได้ใช้ระหว่างเรียนรายวิชานี้

 การแปลง String ไปเป็น Integer หลังจากเก็บค่าเข้าตัวแปลแล้ว

การแปลง String ไปเป็น Float ในขั้นตอนเดียวกับการรับข้อมูลเข้า

Share: 

No comments yet! You be the first to comment.

Leave a Reply

Your email address will not be published. Required fields are marked *