ตัวแปร ชนิดข้อมูล นิพจน์และตำดำเนินการ
(Variable Data Type, Expression and Operator)
1. การตั้งชื่อตัวแปรในภาษาไพธอน (Variable)
ตัวแปร (Variable) คือ ชื่อที่ตั้งขึ้นมาใช้สำหรับเก็บค่าหรือชนิดข้อมูลต่าง ๆ ที่ต้องการ แล้วนำตัวแปรที่ตั้งขึ้นมาไปเขียนเป็นคำสั่งโปรแกรมสำหรับประมวลผล ตัวแปรที่ตั้งขึ้นมาใช้งานนั้นสามารถเปลี่ยนค่าข้อมูลที่เก็บอยู่ในขณะที่โปรแกรมทำการประมวลผลได้ กฎการตั้งชื่อตัวแปรมีดังนี้
การตั้งชื่อตัวแปรด้วยตัวอักษรตัวพิมพ์เล็กหรือตัวอักษรพิมพ์ใหญ่ ภาษาไพธอนจะถือว่าเป็นคนละชื่อของตัวแปร
ชื่อตัวแปรต้องขึ้นต้นด้วยตัวอักษรภาษาอังกฤษ (A-Z, a-z) เท่านั้น แล้วตามด้วยตัวเลข เช่น Animal, animal_01, big10, book10group เป็นต้น
ชื่อตัวแปรต้องไม่มีช่องว่าง จุด และสัญลักษณ์พิเศษ ยกเว้นเครื่องหมาย underscore(_) เช่น msg_1
ควรตั้งชื่อตัวแปรให้สื่อความหมายกับค่าข้อมูลที่จะเก็บ เพราะทำใหอ่านและเข้าใจได้ง่าย เช่น Tax ใช้เก็บค่าภาษี, studentName หรือ std_name ใช้เก็บชื่อนักเรียน เป็นต้น
เมื่อต้องการผสมคำตั้งชื่อตัวแปรควรใช้เครื่องหมาย underscore(_) เชื่อม เช่น table_name
การตั้งชื่อตัวแปรต้องไม่ซ้ำกับคำสงวน (Reserved Keywords) ซึ่งมีทั้งหมด 33 คำ สามารถตรวจสอบคำสงวนได้โดยการเพิ่มคำสั่ง import keyword ลงในส่วนประกาศแล้วใช้คำสั่ง print(keyword.kwlist) มีดังต่อไปนี้
2. การประกาศตัวแปร (Declaration)
การประกาศการสร้างตัวแปร คือ การสร้างตัวแปรสำหรับเก็บค่าข้อมูล เช่น ตัวเล ตัวอัขระ ข้อความ เป็นต้น ก่อนนำไปประมวลผลอีกครั้ง ภาษาไพธอนไม่จำเป็นต้องกำหนดชนิดของข้อมูลให้กับตัวแปร ตัวแปรที่ประกาศสร้างขึ้นมาใช้งานจะกำหนดค่าข้อมูลไว้ หรืออาจสร้างตัวแปรขึ้นมาเป็นค่าว่างไว้ก่อนก็ได้ แล้วจึงกำหนดค่าข้อมูลให้กับตัวแปรทีหลัง ตัวอย่างการสร้างตัวแปรจะเป็นดังต่อไปนี้
msg = "Python Programming" #ประกาศตัวแปร msg เป็นชนิดข้อมูลสายอักขระหรือสตริง (String)
num = 2415 #ประกาศตัวแปร num เป็นชนิดข้อมูลจำนวนเต็ม (Integer)
score = 78.54 #ประกาศตัวแปร score เป็นชนิดข้อมูลจำนวนจริงหรือทศนิยม (Floating)
grade = "" #ประกาศตัวแปร grade เก็บค่าว่าง
ชื่อตัวแปรจะอยู่ทางด้านซ้ายของเครื่องหมายเท่ากับ (=) ส่วนทางด้านขวามือของเครื่องหมายเท่ากับคือ ชนิดข้อมูลที่กำหนดให้กับตัวแปร ถ้าเป็นชนิดข้อมูลสายอักขระหรือสตริง หรือเรียกสั้น ๆ ว่า "สตริง" จะอยู่ในเครื่อง '...' (Single Quotes) หรือ "..." (Double Quotes) ถ้ายังไม่กำหนดค่าให้กับตัวแปรหรือต้องการให้ตัวแปรเก็บค่าว่างให้ตั้งเป็น var = "" หรือถ้ายังไม่ได้กำหนดชนิดข้อมูลให้กับตัวแปรให้ใช้ None เช่น var = None ถ้าเพียงแต่ตั้งชื่อตัวแปรแล้วสั่งให้โปรแกรมทำงานจะเกิดการแจ้งเตือนผิดพลาด (Error) ขึ้น
ในภาษาไพธอนเวอร์ชัน 3 สามารถสร้างตัวแปรเป็นภาษาไทยได้ แต่ถึงอย่างไรก็ตามเพื่อความเป็นมาตรฐานในการเขียนโปรแกรม และง่ายต่อการนำโปรแกรมไปพัฒนาต่อในอนาคต ดังนั้นจึงควรสร้างตัวแปรเป็นภาษาอังกฤษและตั้งชื่อตัวแปรให้สื่อความหมาย
ตัวอย่างที่ 3.1 การเขียนคำสั่งโปรแกรมตั้งชื่อตัวแปรเป็นภาษาไทย
ปากกา = "สีแดง" #ประกาศตัวแปรชื่อ "ปากกา" เป็นชนิดข้อมูลสตริง
โทรศัพท์ = "iPhone13" #ประกาศตัวแปรชื่อ "โทรศัพท์" เป็นชนิดข้อมูลสตริง
print("ปากกาสี :", ปากกา) #แสดงผลข้อมูลจากค่าตัวแปร "ปากกา"
print("ยี่ห้อโทรศัพท์ :", โทรศัพท์) #แสดงผลข้อมูลจากค่าตัวแปร "โทรศัพท์"
ผลลัพธ์
ปากกาสี : สีแดง
ยี่ห้อโทรศัพท์ : iPhone13
3. ตัวแปรชนิดค่าคงที่ (Constant)
ค่าคงที่ คือ ตัวแปรที่สร้างขึ้นมาเก็บค่าข้อมูลที่จะไม่มีการเปลี่ยนแปลงค่าในระหว่างการประมวลผล เช่น ค่า π (Pi) มีค่าเท่ากับ 3.14 สามารถตั้งชื่อตัวแปรเป็นค่าคงที่ได้เท่ากับ pi = 3.14 หรือค่าภาษีมูลค่าเพิ่มมีค่าเท่ากับ 7% สามารถตั้งชื่อตัวแปรเป็นค่าคงที่ได้เท่ากับ vat = 0.07 เป็นต้น ดังแสดงตัวอย่างต่อไปนี้
ตัวอย่างที่ 3.2 การประกาศตัวแปรชนิดค่าคงที่หาพื้นที่วงกลม ด้วยการกำหนดค่า pi = 3.14
pi = 3.14 #สร้างตัวแปร pi เป็นค่าคงที่
area = pi * 5 ** 2 #คูณค่าตัวแปร pi เพื่อหาพื้นที่วงกลม
circumference = 2 * pi * 10 #คูณค่าตัวแปร pi เพื่อหาเส้นรอบวงกลม
print("พื้นที่วงกลม :", area) #แสดงผลลัพธ์ตัวแปร area
print("เส้นรอบวงกลม :", circumference) #แสดงผลลัพธ์ตัวแปร circumference
ผลลัพธ์
พื้นที่วงกลม : 78.5
เส้นรอบวงกลม : 62.800000000000004
4. ชนิดข้อมูลจำนวนเต็ม (Integer)
ชนิดข้อมูลจำนวนเต็มประกอบไปด้วยตัวเลขจำนวนเต็มบวกและตัวเลขจำนวนเต็มลบ เช่น 10, 15, 255, -14. 2 เป็นตัน และยังรวมไปถึงเลขฐานต่างๆ ได้แก่ เลขฐานสอง (Binary) เลขฐานแปด (Octal) และเลขฐานสิบ (Hexadecimal) จำนวนเต็มเลขฐานสิบประกอบด้วยตัวเลข 0-9 เลขฐานสองประกอบตัวเลข 2 ตัว ได้แก่ 0 และ 1 เลขฐานแปดประกอบด้วยตัวเลข 8 ตัว ได้แก่ 0-7 และเลขฐานสิบหกประกอบด้วยตัวเลข 10 ตัวได้แก่ 0-9 และตัวอักษรอีก 6 ตัว ได้แก่ A-F
ในภาษาไพธอนไม่ได้กำหนดความยาวของชนิดข้อมูลจำนวนเต็ม นั่นหมายความว่าผู้เขียนโปรแกรมสามารถประกาศตัวแปรเก็บชนิดข้อมูลจำนวนเต็มให้มีความยาวเท่าไหร่ก็ได้ แต่ก็มีผลกระทบต่อการประมวลผลหากเครื่องคอมพิวเตอร์มีหน่วยความจำไม่เพียงพอ
ตัวอย่างที่ 3.3 การดำเนินการกับชนิดข้อมูลจำนวนเต็มที่ความยาวไม่จำกัด
num1 = 546135478945123456214 #สร้างตัวแปร num1 เป็นชนิดข้อมูลจำนวนเต็ม
num2 = 14567489412457845679 #สร่างตัวแปร num2 เป็นชนิดข้อมูลจำนวนเต็ม
print("ผลบวกของ num1 กับ num2 =", num1 + num2) #แสดงผลล์พธ์ num1 + num2
print("ผลลบของ num1 กับ num2 =", num1 - num2) #แสดงผลลัพธ์ nนm1 - num2
ผลลัพธ์
ผลบวกของ num1 กับ num2 = 560702968357581301893
ผลลบของ num1 กับ num2 = 531567989532665610535
การดำเนินการกับชนิดข้อมูลจำนวนเต็มเลขฐานสอง ฐานแปด และฐานสิบหก มีวิธีการดำเนินการดังต่อไปนี้
ถ้าต้องการกำหนดเลขจำนวนเต็มเป็นเลขฐานสองให้ใช้สัญลักษณ์ 0b นำหน้า เช่น 0b1001011 + 0b1101101
ถ้าต้องการกำหนดเลขจำนวนเต็มเป็นเลขฐานแปดให้ใช้สัญลักษณ์ 0o นำหน้า เช่น 0012451 + 0054125
ถ้าต้องการกำหนดเลขจำนวนเต็มเป็นเลขฐานสิบหกให้ใช้สัญลักษณ์ 0x นำหน้า เช่น 0x76ade + 0x97c7a
นอกจากนี้สามารถเรียกใช้ฟังก์ชันแปลงเลขฐานให้เป็นเลขฐานอื่นๆ ได้ โดยรูปแบบการใช้งาน คือ ชื่อฟังก์ชัน(ตัวแปร)
ฟังก์ชัน int() เป็นฟังก์ชันแปลงเลขฐานที่ต้องการให้เป็นเลขฐานสิบ
ฟังก์ชัน bin() เป็นฟังก์ชันแปลงเลขฐานที่ต้องการให้เป็นเลขฐานสอง
ฟังก์ชัน oct() เป็นฟังก์ชันแปลงเลขฐานที่ต้องการให้เป็นเลขฐานแปด
ฟังก์ชัน hex() เป็นฟังก์ชันแปลงเลขฐานที่ต้องการให้เป็นเลขฐานสิบหก
ตัวอย่างที่ 3.4 การแปลงเลขฐานสิบเป็นเลขฐานสอง ฐานแปด และฐานสิบหก
x = 6749 #สร้างตัวแปร x เก็บชบิดข้อมูลจำนวนเต็มเลขฐานสิบ
print("แปลงเลขฐานสิบเป็นฐานสอง =", bin(x)) #ฟังก์ชันแปลงเลขฐานสิบเป็นฐานสอง
print("แปลงเลขฐานสิบเป็นฐานแปด =", oct(x)) #ฟังก์ชันแปลงเลขฐานสิบเป็นฐานแปด
print("แปลงเลขฐานสิบเป็นฐานสิบหก =", hex(x))#ฟังก์ชันแปลงเลขฐานสิบเป็นฐานสิบหก
ผลลัพธ์
แปลงเลขฐานสิบเป็นฐานสอง = 0b1101001011101
แปลงเลขฐานสิบเป็นฐานแปด = 0o15135
แปลงเลขฐานสิบเป็นฐานสิบหก = 0x1A5D
ตัวอย่างที่ 3.5 การแปลงเลขฐานสอง ฐานแปด และฐานสิบหก เป็นเลขฐานสิบ
a = 0b100111011001 #สร้างตัวแปร a เก็บชนิดข้อมูลจำนวนเต็มเลขฐานสอง
b = 0o6453 #สร้างตัวแปร b เก็บชนิดข้อมูลจำนวนเต็มเลขฐานแปด
c = 0xAC41 #สร้างตัวแปร c เก็บชนิดข้อมูลจำนวนเต็มเลขฐานสิบหก
print("แปลงเลขฐานสองเป็นฐานสิบ =", int(a)) #ฟังก์ชันแปลงข้อมูลเป็นเลขฐานสิบ(เลขจำนวนเต็ม)
print("แปลงเลขฐานแปดเป็นฐานสิบ =", int(b))
print("แปลงเลขฐานสิบหกเป็นฐานสิบ =", int(c))
ผลลัพธ์
แปลงเลขฐานสองเป็นฐานสิบ = 2521
แปลงเลขฐานแปดเป็นฐานสิม = 3371
แปลงเลขฐานสิบหกเป็นฐานสิบ = 44097
ตัวอย่างที่ 3.6 การบวกเลขฐานและการแปลงผลลัพธ์จากเลขฐานสิบ เป็นฐานสอง ฐานแปด และฐานสิบหก
a = 0b1001011; b = 0b1101101 #สร้างตัวแปร a เและ b
c = a + b #บวกค่าตัวแปร a และ b ผลลัพธ์เก็บไว้ในตัวแปร c
print("ผลบวกของ a กับ b =", c) #แสดงผลลัพธ์ตัวแปร c
print("แปลงผลลัพธ์จากผลบวก a กับ b เป็นเลขฐานสอง =", bin(c))
print("แปลงผลลัพธ์จากผลบวก a กับ b เป็นเลขฐานแปด =", oct(c))
print("แปลงผลลัพธ์จากผลบวก a กับ b เป็นเลขฐานสิบหก =", hex(c))
ผลลัพธ์
แปลงผลลัพธ์จากผลบวก a กับ b เป็นเลขฐานสอง = 0b10111000
แปลงผลลัพธ์จากผลบวก a กับ b เป็นเลขฐานแปด = 0o270
แปลงผลลัพธ์จากผลบวก a กับ b เป็นเลขฐานสิบหก = 0xB8
5. ชนิดข้อมูลจำนวนทศนิยม (Float)
ชนิดข้อมูลประเกทนี้ประกอบด้วยตัวเลข 2 ส่วน โดยมีเครื่องหมายจุด (.) คั่นระหว่างตัวเลขที่อยู่ด้านหน้าและด้านหลัง ตัวเลขด้านหน้าเป็นตัวเลขจำนวนเต็ม และตัวเลขที่อยู่ด้านหลังจุดเรียกว่า ทศนิยม การเขียนเลขทศนิยมสามารถเขียนได้สองแบบ คือ แบบแรก เช่น 15.5, 20.451, 4.5134000000 เป็นต้น และแบบที่สอง เช่น 4517.458E-2 = 4517.458 x 10^-2 หรือ 1465.47e4 = 1465.47e4 x 10^4 เป็นต้น ในแบบที่สองจะสังเกดเห็นว่ามีตัวอักษร E และ e ซึ่งเป็นการเขียนในรูปแบบของเลขยกกำลังสิบ (Exponential Form)
ตัวอย่างที่ 3.7 การแสดงผลการดำเนินการบวก ลบ กับชนิดข้อมูลจำนวนทศนิยม
a = 341.451E-3; b = 251.147e-2; x = 10.5; y = 17.5; #สร้างตัวแปร a, b, x และ y
d = a - b #ตัวแปร a - b เก็บค่าไว้ในตัวแปร d
z = x + y #ตัวแปร x + y เก็บค่าไว้ในตัวแปร z
print("ผลลัพธ์ของ a - b =", d) #แสดงผลลัพธ์ตัวแปร d
print("ผลลัพธ์ของ x + y =", z) #แสดงผลลัพธ์ตัวแปร z
ผลลัพธ์
ผลลัพธ์ของ a - b = -2.170019
ผลลัพธ์ของ x + y = 28.0
ในกรณีที่ต้องการแปลงชนิดข้อมูล