614185001
การแสดงผลและการรบั คา่
• การรับข้อมลู
• โหมดสครปต์
การรับขอ้ มลู
• คําสัง input ทาํ หน้าทีรับข้อมลู จากผใู้ ชง้ านโปรแกรมผา่ นทางคียบ์ อร์ด
เพือนํามาใชป้ ระมวลผลภายในโปรแกรม
• พมิ พ์คาํ สังในคอนโซล
• พมิ พค์ าํ สงั name = input("ใส่ชอื ของคณุ ")
• เมือกด Enter จะเห็นเครองหมาย >?
ในคอนโซล หมายถงึ ให้ผู้ใชพ้ มิ พ์
ขอ้ มลู สง่ ให้กับโปรแกรมทางคียบ์ อร์ด
• พมิ พ์ สมศักดิ แลว้ กด Enter
ขอ้ ความ "สมศักด"ิ จะถกู เกบ็ ในตวั แปร name
• เมือพมิ พ์คําสงั print(name) แล้วกด Enter
จะแสดงผลข้อความ สมศกั ดิ
• เมอื พิมพค์ าํ สงั type(name) แล้วกด Enter จะพบว่า name เก็บขอ้ มูลสตรง
การรับข้อมูล
• คําสัง input( ) สามารถระบุข้อความคาํ ถามทีจะถามผู้ใชไ้ ด้ โดยใสส่ ตรง
ของคาํ ถามในวงเลบ็
• เช่น answer = input("พมิ พ์ ใช่ หรอ ไม่ใช่")
• ขอ้ มลู ทไี ดร้ ับจากผูใ้ ช้ผ่านคาํ สัง input() จะเปนข้อมลู ชนดิ สตรงเสมอ
• พิมพ์คาํ สัง number = input("พิมพจ์ ํานวนเตม็ 1 จาํ นวน")
• พมิ พ์ 25 แลว้ กด Enter
• พมิ พ์ print(number) จะแสดงคา่ 25
• พิมพ์ type(number) จะพบวา่
number เกบ็ ขอ้ มลู ชนดิ สตรง
(เกบ็ สตรงของจํานวนเต็ม "25")
การรับขอ้ มลู
• ในการใช้งานขอ้ มูลทรี ับจากผูใ้ ช้ จะตอ้ งแปลงชนดิ ข้อมลู ใหต้ รงตามที
ต้องการก่อนนาํ ไปประมวลผล
• หากตอ้ งการรับข้อมูลสตรงจากผูใ้ ช้ ใหใ้ ชค้ าํ สัง
input_str = input("พมิ พส์ ตรงทตี ้องการ")
• หากต้องการรับข้อมูลจาํ นวนเต็มจากผู้ใช้ ให้ใชค้ าํ สัง
input_str = input("พมิ พ์จาํ นวนเตม็ ทตี อ้ งการ")
input_int = int(input_str)
จะได้ input_int เปนขอ้ มลู จากผ้ใู ช้ทีแปลงเปนจํานวนเตม็ แลว้
หรออาจเขยี นสัน ๆ ไดว้ ่า input_int = int( input("พมิ พ์จาํ นวนเต็มทีตอ้ งการ") )
• หากตอ้ งการรับขอ้ มลู จํานวนจรงจากผ้ใู ช้ ใหใ้ ช้คาํ สัง
input_float = float( input("พิมพจ์ าํ นวนจรงทตี อ้ งการ") )
การรับขอ้ มูล
• คําสงั input() รับขอ้ มูลจากผูใ้ ชท้ ลี ะ 1 ข้อมลู
• ถ้าอยากรับขอ้ มูลจากผ้ใู ชห้ ลายขอ้ มูล ตอ้ งรับทลี ะ 1 ข้อมลู หลายครัง เชน่
>>> a = int( input("พมิ พจ์ ํานวนเตม็ จํานวนแรก") )
พิมพจ์ าํ นวนเตม็ จํานวนแรก>? 3
>>> b = int( input("พมิ พจ์ ํานวนเต็มจาํ นวนทสี อง") )
พิมพจ์ าํ นวนเตม็ จํานวนทสี อง>? 4
>>> print("ผลบวกคอื ", a+b)
ผลบวกคอื 7
การรับขอ้ มลู
• ขอ้ ควรระวงั ถ้าไม่แปลงชนดิ ขอ้ มลู ใหถ้ กู ต้อง อาจมีข้อผิดพลาด
• input() รับข้อมลู เปนสตรง ซึงไมส่ ามารถคณู กนั ได้
>>> a = input("พิมพ์จาํ นวนเตม็ จาํ นวนแรก")
พมิ พจ์ ํานวนเต็มจํานวนแรก>? 3
>>> b = input("พิมพ์จํานวนเตม็ จํานวนทีสอง")
พมิ พจ์ ํานวนเตม็ จํานวนทีสอง>? 4
>>> print("ผลคูณคือ", a*b)
Traceback (most recent call last):
File "<input>", line 1, in <module>
TypeError: can't multiply sequence by non-int of type 'str'
การรับขอ้ มลู
• ตวั อยา่ งการรับข้อมลู และคาํ นวณเพอื แกป้ ญหาทางคณิตศาสตร์
>>> birth_year = int( input("ระบปุ พ.ศ. ทีเกดิ ") )
ระบปุ พ.ศ. ทเี กิด>? 2545
>>> current_year = int( input("ระบุป พ.ศ. ปจจบุ นั ") )
ระบปุ พ.ศ. ปจจบุ ัน>? 2561
>>> age = current_year – birth_year
>>> print("คณุ อายุ", age, "ป")
คณุ อายุ 16 ป
การรับข้อมูล
• ตวั อยา่ งการรับขอ้ มลู และคํานวณเพือแก้ปญหาทางคณิตศาสตร์
>>> price = float( input("ใสร่ าคาสนิ ค้า") )
ใส่ราคาสนิ คา้ >? 1580.75
>>> discount = float( input("ระบุสว่ นลดทไี ด้รับ (เปนเปอร์เซ็นต์)") )
ระบสุ ว่ นลดทีได้รับ (เปนเปอร์เซน็ ต์)>? 15.0
>>> pay = price * (100 – discount) / 100
>>> print("ยอดตอ้ งชาํ ระ", pay, "บาท")
ยอดตอ้ งชําระ 1343.6375 บาท
จบบทที 3