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)
 
 
 
ไม่มีความคิดเห็น:
แสดงความคิดเห็น