ตัวแปร ชนิดข้อมูล นิพจน์และตำดำเนินการ

(Variable Data Type, Expression and Operator)

1. การตั้งชื่อตัวแปรในภาษาไพธอน (Variable)

ตัวแปร (Variable) คือ ชื่อที่ตั้งขึ้นมาใช้สำหรับเก็บค่าหรือชนิดข้อมูลต่าง ๆ ที่ต้องการ แล้วนำตัวแปรที่ตั้งขึ้นมาไปเขียนเป็นคำสั่งโปรแกรมสำหรับประมวลผล ตัวแปรที่ตั้งขึ้นมาใช้งานนั้นสามารถเปลี่ยนค่าข้อมูลที่เก็บอยู่ในขณะที่โปรแกรมทำการประมวลผลได้ กฎการตั้งชื่อตัวแปรมีดังนี้

  1. การตั้งชื่อตัวแปรด้วยตัวอักษรตัวพิมพ์เล็กหรือตัวอักษรพิมพ์ใหญ่ ภาษาไพธอนจะถือว่าเป็นคนละชื่อของตัวแปร

  2. ชื่อตัวแปรต้องขึ้นต้นด้วยตัวอักษรภาษาอังกฤษ (A-Z, a-z) เท่านั้น แล้วตามด้วยตัวเลข เช่น Animal, animal_01, big10, book10group เป็นต้น

  3. ชื่อตัวแปรต้องไม่มีช่องว่าง จุด และสัญลักษณ์พิเศษ ยกเว้นเครื่องหมาย underscore(_) เช่น msg_1

  4. ควรตั้งชื่อตัวแปรให้สื่อความหมายกับค่าข้อมูลที่จะเก็บ เพราะทำใหอ่านและเข้าใจได้ง่าย เช่น Tax ใช้เก็บค่าภาษี, studentName หรือ std_name ใช้เก็บชื่อนักเรียน เป็นต้น

  5. เมื่อต้องการผสมคำตั้งชื่อตัวแปรควรใช้เครื่องหมาย underscore(_) เชื่อม เช่น table_name

  6. การตั้งชื่อตัวแปรต้องไม่ซ้ำกับคำสงวน (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

ในกรณีที่ต้องการแปลงชนิดข้อมูล