3.3 ชนิดข้อมูลพื้นฐาน
โปรแกรมภาษาไพทอนมีการแบ่งประเภทของข้อมูลออกเป็นหลายประเภท โดยมีประเภทข้อมูลพื้นฐาน คือ ข้อมูลประเภทข้อความ (string data type) และ ข้อมูลประเภทจํานวน (numerical data type)
3.3.1 ข้อมูลประเภทข้อความ
การกําหนดข้อมูลที่เป็นข้อความหรือสตริงให้ใช้เครื่องหมายอัญประกาศครอบข้อความที่ต้องการ กําหนด โดยเลือกใช้ได้ทั้งอัญประกาศเดี่ยว (1) หรือคู่ (") ตามความเหมาะสม
หรือ กรณีที่มีข้อความยาว หลายบรรทัด ต้องใช้เครื่องหมาย " หรือ " ติดต่อกัน 3 ตัว ครอบหน้าและหลังข้อความ ดังตัวอย่าง ต่อไปนี้
ตัวอย่างที่ 3.4 การกําหนดข้อมูลชนิดข้อความ
พิมพ์คําสั่งต่อไปนี้ในคอนโซล
>>> organization = "สสวท" # บรรทัดที่ 1
>>> address = "924 ถนนสุขุมวิท เขตคลองเตย กรุงเทพฯ 10110" #บรรทัดที่ 2
>>> print (organization) # บรรทัดที่ 3
>>> print (address) # บรรทัดที่ 4
>>> address = "สสวท." # บรรทัดที่ 5
... 921 ถนนสุขุมวิท
... เขตคลองเตย กรุงเทพฯ
... 10110
>>> print (address) # บรรทัดที่ 6
จะได้ผลลัพธ์คือ
>>> organization = "สสวท" # บรรทัดที่ 1
>>> address = "924 ถนนสุขุมวิท เขตคลองเตย กรุงเทพฯ 10110" # บรรทัดที่ 2
>>> print (organization) # บรรทัดที่ 3
"สสวท"
>>> print (address) # บรรทัดที่ 4
921 ถนนสุขุมวิท เขตคลองเตย กรุงเทพฯ 10110
>>> address = "สสวท." # บรรทัดที่ 5
... 924 ถนนสุขุมวิท
... เขตคลองเตย กรุงเทพฯ
... 10110
>>> print (address) # บรรทัดที่ 6
"สสวท."
924 ถนนสุขุมวิท
เขตคลองเตย กรุงเทพฯ
10110
จากตัวอย่างที่ 3.4 อธิบายดังนี้
1. คําสั่งในบรรทัดที่ 1 เป็นการใช้เครื่องหมายอัญประกาศเดี่ยวเพื่อกําหนดตัวแปร organizationเป็น "สสวท" ทําให้มีความยาว
6 ตัวอักษร (รวมเครื่องหมายอัญประกาศคู่ด้วย)
2. คําสั่งในบรรทัดที่ 2 ใช้เครื่องหมายอัญประกาศคู่เพื่อกําหนดสตริงให้กับตัวแปร address
3. คําสั่ง print () ในบรรทัดที่ 3 และ 4 นําค่าในตัวแปร organization และ address ออกมาแสดงผล
4. คําสั่งในบรรทัดที่ 5 ใช้เครื่องหมาย จํานวน 3 ตัว กําหนดสตริงจํานวน 4 บรรทัด ให้กับตัวแปร address
5. คําสั่งในบรรทัดที่ 6 นําค่าที่เก็บในตัวแปร address ออกมาแสดงผล
เกร็ดน่ารู้
ตัวดําเนินการ + และ * กับสตริง
เมื่อใช้ตัวดําเนินการ + ระหว่างสตริง 2 ตัว จะเป็นการนําสตริงสองตัวมาต่อกัน เช่น 'Hello'+ "World' จะเกิดสตริงใหม่ คือ 'HelloWorld' และถ้าใช้ตัวดําเนินการ * ระหว่างสตริงกับค่า จํานวนเต็ม จะเป็นการนําสตริงมาต่อกันตามจํานวนครั้งของจํานวนเต็มหลังเครื่องหมาย * เช่น "Go! * 3 จะเกิดสตริงใหม่ คือ 'GoGoGo!
3.3.2 ข้อมูลจํานวน
ภาษาไพทอนมีข้อมูลจํานวนที่สามารถนําไปคํานวณทางคณิตศาสตร์ได้หลายชนิด ในที่นี้จะแนะนํา 2 ชนิด คือ จํานวนเต็มแบบมีเครื่องหมาย (signed integer) หรือเรียกว่า จํานวนเต็ม (integer หรือ int) สามารถเก็บค่าจํานวนเต็มบวกและจํานวนเต็มลบ และจํานวนจริง (floating point number หรือ float) สามารถเก็บค่าทั้งจํานวนจริงบวกและจํานวนจริงลบ ที่อยู่ในรูปทศนิยมได้
ตัวอย่างที่ 3.5 การกําหนดข้อมูลจํานวนและการคํานวณพื้นฐาน
พิมพ์คําสั่งต่อไปนี้ในคอนโซล
base = 10 # บรรทัดที่ 1
height = 15 # บรรทัดที่ 2
area = (1/2)* base * height # บรรทัดที่ 3
print ("base =", base) # บรรทัดที่ 4
print ("height =", height) # บรรทัดที่ 5
print ("area =", area) # บรรทัดที่ 6
ผลลัพธ์ที่ได้คือ
>>> base = 10 # บรรทัดที่ 1
>>> height = 15 # บรรทัดที่ 2
>>> area = (1/2)* base * height # บรรทัดที่ 3
>>> print ("base =", base) base = 10 # บรรทัดที่ 4
>>> print ("height =", height) height = 15 # บรรทัดที่ 5
>>> print ("area =", area) area = 75.0 # บรรทัดที่ 6
จากตัวอย่างที่ 3.5 อธิบายได้ดังนี้
1. บรรทัดที่ 1 และ 2 กําหนดให้ตัวแปร base และ height ชี้ไปที่ 10 และ 15 ตามลําดับ
2. บรรทัดที่ 3 กําหนดให้ตัวแปร area ชี้ไปที่ผลจากการคํานวณ (1/2) * base * height ซึ่งเป็นการหาพื้นที่สามเหลี่ยมนั่นเอง
(เมื่อใช้เครื่องหมาย * และ / กับข้อมูลจํานวน จะหมายถึง การคูณ และหารทางคณิตศาสตร์ตามลําดับ)
3. บรรทัดที่ 4-6 เป็นคําสั่งแสดงผลของตัวแปร มีข้อสังเกตว่า คําสั่ง print () สามารถรับค่าที่ต้องการให้แสดงผลได้มากกว่า
หนึ่งค่า โดยเขียนแต่ละค่าหรือแต่ละตัวแปรเรียงกันไป คั่นด้วยเครื่องหมาย จุลภาค (,) เช่น บรรทัดที่ 4-6 สามารถเขียนรวมกันได้
ดังนี้
print ("base =", base, "height =", height, "area =", area)
4. สังเกตอีกว่า คําสั่งในบรรทัดที่ 6 ได้ผลลัพธ์ของตัวแปร area แสดงออกมาในรูปแบบจํานวนจริง
ชวนคิด
1. หลังจากจบคําสั่งในบรรทัดที่ 6 หากต้องการตรวจสอบชนิดข้อมูลของตัวแปรทั้งสามตัว จะทําได้อย่างไร และได้ผลลัพธ์
เป็นอย่างไร
2. 1 และ 2 เป็นข้อมูลชนิดจํานวนเต็ม แล้ว 1 / 2 เป็นข้อมูลชนิดใด
เกร็ดน่ารู้ ตัวดําเนินการทางคณิตศาสตร์
ตัวดําเนินการสําหรับการ บวก ลบ คูณ และหาร ในไพทอนจะใช้เครื่องหมาย +, -, * และ / ตามลําดับ นอกจากนี้ยังมีเครื่องหมาย
เพิ่มเติม เช่น
** หมายถึง ยกกําลัง ตัวอย่างคือ 4* *3 หมายถึง 4 กำลัง 3
// หมายถึง หารปัดเศษทิ้ง ตัวอย่างคือ 7 / 3 ได้ผลลัพธ์เป็นจํานวนเต็ม 2
% หมายถึง เศษที่ได้จากการหาร ตัวอย่างคือ 7% 3 ได้ผลลัพธ์เป็นจํานวนเต็ม 1
โดยสามารถใช้เครื่องหมาย () ล้อมรอบนิพจน์ที่ต้องการให้ดําเนินการก่อน เช่นเดียวกับการเขียน นิพจน์ทางคณิตศาสตร์
ตัวอย่างที่ 3.6 ทอนเท่าไร
นักเรียนซื้อแฟลชไดรฟ์ ขนาด 32 GB ราคา 117 บาท ที่ร้านสะดวกซื้อ โดยจ่ายเงินด้วยธนบัตร หนึ่งร้อยบาท 2 ใบ ในลิ้นชักเก็บ
เงินของร้าน มีแต่ธนบัตร 20 บาท และเหรียญหนึ่งบาท พนักงานจะต้อง ทอนเงินเป็นธนบัตร 20 บาท จํานวนกี่ใบ และเหรียญ
หนึ่งบาทจํานวนกี่เหรียญ ให้ใช้คําสั่งไพทอนแสดง วิธีหาคําตอบที่ละลําดับ
แนวคิดการแก้ปัญหา
1. คํานวณจํานวนเงินทอน
2. คํานวณจํานวนธนบัตรยี่สิบบาทที่ได้รับ จากจํานวนเงินทอน หารด้วย 20 โดยปัดเศษทิ้ง
3. คํานวณจํานวนเหรียญบาทที่ได้รับ จากจํานวนเงินทอน หารด้วย 20 โดยนํามาเฉพาะเศษที่ได้จากการหาร
พิมพ์คําสั่งต่อไปนี้ในคอนโซล
change = 200 - 117
note20 = change // 20
coin1 = change % 20 print("เงินทอนทั้งหมด", change , "บาท")
print("เป็นธนบัตรยี่สิบบาท จํานวน", note20, "ใบ")
print("เป็นเหรียญหนึ่งบาท จํานวน", coin1, "เหรียญ")
จะได้ผลลัพธ์คือ
>>> change = 200 - 117
>>> note20 = change // 20
>>> coin1 = change % 20
>>> print("เงินทอนทั้งหมด", change ,"บาท")
เงินทอนทั้งหมด 83 บาท
>>> print("เป็นธนบัตรยี่สิบบาท จํานวน", note20, "ใบ")
เป็นธนบัตรยี่สิบบาท จํานวน 4 ใบ
>>> print(" เป็นเหรียญหนึ่งบาท จํานวน", coinl, "เหรียญ)
เป็นเหรียญหนึ่งบาท จํานวน 3 เหรียญ