2.2 การรับข้อมูลจากแป้นพิมพ์
ภาษาไพธอนได้กำหนดให้มีคำสั่งเพื่อรับข้อมูลจากผู้ใช้
พิมพ์ข้อมูลจากแป้นพิมพ์
เข้าสู่หน่วยความจำ ได้ 2 ประเภท ได้แก่ ข้อมูลประเภทตัวเลข
และข้อมูลประเภทตัวอักขระหรือสายอักขระ
1. การป้อนข้อมูลเพื่อรับค่าตัวเลข
การรับข้อมูลจากแป้นพิมพ์เป็นการนำเข้าข้อมูล
เฉพาะข้อมูลประเภทตัวเลขเท่านั้น รูปแบบคำสั่ง ได้แก่
<variable> = input("text") เช่น
number =
input("กรุณาป้อนจำนวนนักศึกษา : ")
การทำงานของคำสั่ง
จะแสดงข้อความ "กรุณาป้อนจำนวนนักศึกษา : " ถ้าผู้ใช้ป้อนตัวเลขจำนวนใด
ๆ แล้วกดปุ่ม Enter ตัวเลขค่านั้นจะจัดเก็บอยู่ในตัวแปร number หลังจากนั้นนำตัวแปร number ไปใช้ในคำสั่งใด ๆ
เพื่อการคำนวณได้
2. การป้อนข้อมูลเพื่อรับค่าตัวอักขระ
การรับข้อมูลจากแป้นพิมพ์ เป็นการนำเข้าข้อมูลจากผู้ใช้อีกกรณีหนึ่ง
แต่เหมาะสำหรับตัวอักขระหรือสายอักขระเท่านั้น เช่น ชื่อ นามสกุล
ที่อยู่ เป็นต้น มีรูปแบบดังนี้
<variable> = raw_input(" text") เช่น
name = raw_input("กรุณาป้อนชื่อนักศึกษา
: ")
การทำงานของคำสั่งนี้
มีความหมายเดียวกับคำสั่งการรับค่าตัวเลข คือ ข้อมูลที่ถูกป้อนโดยผู้ใช้
จะเก็บไว้ในตัวแปร name แล้วนำตัวแปร
name ไปใช้เพื่อประมวลผลคำสั่งอื่น ๆ ได้ต่อไป
แต่ถ้าผู้เขียนโปรแกรมเขียนคำสั่งรับค่าผิดไป
หรือในกรณีที่ผู้ป้อนข้อมูลป้อนผิดพลาด จะเกิดข้อผิดพลาด เกิดขึ้นได้
ดังกรณีต่อไปนี้
>>> inp =
input("กรุณาป้อนรายชื่อ : ")
กรุณาป้อนรายชื่อ
: ทวีรัตน์
Traceback (most recent
call last):
File "<pyshell#16>",
line 1, in <module>
inp = input("กรุณาป้อนรายชื่อ
: ")
File "<string>", line 1, in <module>
NameError: name 'ทวีรัตน์' is not defined |
ภาพที่ 2.13 แสดงคำสั่งเพื่อรับการป้อนข้อมูลที่ไม่ถูกต้อง
จากภาพที่
2.13 สาเหตุที่โปรแกรมไพธอน
รายงานข้อผิดพลาดเพราะผู้เขียนคำสั่ง ต้องการรับข้อมูลประเภทตัวเลข แต่ผู้ใช้ป้อนข้อมูลประเภทสายอักขระเข้าไป
ซึ่งไพธอนจะกำหนดให้ผู้ป้อนต้องป้อนตัวเป็นตัวเลขเท่านั้น
วิธีแก้ปัญหาเหล่านี้สามารถแก้ปัญหาได้โดยการใช้คำสั่ง raw_input แทน input ทุกกรณีได้ เพียงแต่ไปเปลี่ยนชนิดตัวแปรเดิมด้วยฟังก์ชัน int เช่น
input_no
= raw_input("กรุณาป้อนจำนวนตัวเลข
: ")
กรุณาป้อนจำนวนตัวเลข : 123
input_no =
int(input_no)
ไม่มีความคิดเห็น:
แสดงความคิดเห็น