ตัวแปร (Variables) ในภาษา Python

ตัวแปร (Variables) เป็นชื่อที่กำหนดขึ้นมาเพื่อใช้ในการอ้างอิงค่าต่าง ๆ ในโปรแกรม ภาษา Python เป็นภาษาที่มีการกำหนดตัวแปรได้อย่างง่ายดาย โดยไม่ต้องระบุประเภทของข้อมูล (data type) ไว้ล่วงหน้า การตั้งค่าตัวแปรในภาษา Python สามารถทำได้โดยใช้เครื่องหมาย = โดยมีรูปแบบดังนี้

variable_name = value

โดย variable_name คือชื่อตัวแปรที่ต้องการตั้งค่า และ value คือค่าที่ต้องการให้ตัวแปรนั้นมีค่าเท่ากับนั้น สำหรับชื่อตัวแปรสามารถตั้งได้ตามมาตรฐานของภาษา Python โดยปกติใช้ตัวอักษรพิมพ์เล็กหรือใช้ตัวเลข และสามารถใช้เครื่องหมาย underscore (_) ได้เช่นกัน

ใน Python การกำหนดค่าให้ตัวแปร ทำได้โดยใช้เครื่องหมายเท่ากับ (=) ในการเชื่อมต่อชื่อตัวแปรกับค่าที่ต้องการกำหนด เช่น

x = 5
y = "Hello, world!"

ในตัวอย่างด้านบน ตัวแปร x ถูกกำหนดค่าเป็น 5 และตัวแปร y ถูกกำหนดค่าเป็น “Hello, world!” โดย Python จะทำการตรวจสอบประเภทของข้อมูลที่กำหนดให้กับตัวแปรโดยอัตโนมัติ

หากต้องการเปลี่ยนค่าของตัวแปรที่เคยกำหนดไว้แล้ว สามารถกำหนดค่าใหม่โดยใช้ชื่อตัวแปรเดิมและเครื่องหมายเท่ากับ อีกครั้ง ตัวอย่างเช่น

x = 5
print(x)  # แสดงผลลัพธ์ 5

x = 10
print(x)  # แสดงผลลัพธ์ 10

การเปลี่ยนค่าของตัวแปรนี้มีผลต่อการอ้างอิงในที่อื่นในโปรแกรมโดยตรง ถ้าค่าถูกเปลี่ยน ค่าเดิมจะถูกแทนที่ด้วยค่าใหม่ทันที ตัวอย่างเช่น

x = 5
y = x
print(y)  # แสดงผลลัพธ์ 5

x = 10
print(y)  # แสดงผลลัพธ์ 5 (ไม่เปลี่ยนค่า)

การเปลี่ยนค่าของตัวแปรนี้มีผลต่อการอ้างอิงในที่อื่นในโปรแกรมโดยตรง ถ้าค่าถูกเปลี่ยน ค่าเดิมจะถูกแทนที่ด้วยค่าใหม่ทันที ตัวอย่างเช่น

สำหรับชื่อตัวแปร (variable names) ในภาษา Python จะต้องเป็นตัวอักษรภาษาอังกฤษตัวพิมพ์ใหญ่หรือตัวพิมพ์เล็ก และสามารถประกอบด้วยตัวเลขและเครื่องหมายขีดล่าง (_) โดยตัวแปรจะต้องขึ้นต้นด้วยตัวอักษรหรือเครื่องหมายขีดล่าง แต่ไม่สามารถขึ้นต้นด้วยตัวเลขหรือเครื่องหมายพิเศษได้ เช่น

first_name = "John"
age = 30
is_student = True

นอกจากนั้นใน Python ยังมีการเปลี่ยนแปลงค่าของตัวแปรได้หลังจากกำหนดค่าแล้ว ทำให้มีความยืดหยุ่นสูง อย่างไรก็ตามการเปลี่ยนแปลงค่าของตัวแปรอาจส่งผลกระทบต่อโค้ดอื่น ๆ ภายหลัง ดังนั้นจึงควรระมัดระวังในการเปลี่ยนค่าตัวแปรเพื่อป้องกันไม่ให้เกิดข้อผิดพลาดโปรแกรมในภายหลัง

การตั้งชื่อตัวแปรใน Python มักจะใช้ตัวอักษรตัวเล็ก โดยตั้งชื่อตัวแปรให้สื่อความหมายเกี่ยวกับค่าที่เก็บไว้ในตัวแปร เช่น age หมายถึงอายุ โดยมีข้อกำหนดในการตั้งชื่อตัวแปรดังนี้

  • ชื่อตัวแปรต้องเป็นตัวอักษรหรือตัวเลข และสามารถใช้เครื่องหมาย underscore (_) ได้
  • ชื่อตัวแปรต้องขึ้นต้นด้วยตัวอักษร
  • ชื่อตัวแปรต้องไม่เป็น keyword หรือ reserved word ของภาษา Python เช่น if, for, while, and, or เป็นต้น
  • ชื่อตัวแปรไม่ควรเป็นภาษาไทย หรือใช้อักขระพิเศษ เพื่อป้องกันไม่ให้เกิดปัญหาการแสดงผลในระบบ

ในภาษา Python มีประเภทของข้อมูล (data types) พื้นฐานอยู่หลายประเภท ได้แก่

  1. จำนวนเต็ม (integer) – บวกหรือลบตัวเลขที่ไม่มีจุดทศนิยม เช่น 0, 1, 2, -1, -2
  2. จำนวนจริง (float) – ตัวเลขที่มีจุดทศนิยม เช่น 1.0, 3.14, -2.5
  3. ข้อความ (string) – ตัวอักษรหรือตัวเลขที่อยู่ในเครื่องหมายเรียกว่าเครื่องหมายคำพูด (quotation mark) เช่น “hello”, ‘world’, “123”
  4. ค่าจริงหรือเท็จ (Boolean) – ค่าเพียงสองค่าคือ True และ False ใช้เพื่อระบุสถานะหรือเงื่อนไขของโปรแกรม
  5. ลิสต์ (list) – ชุดของข้อมูลที่เรียงกันแบบเรียงลำดับ เช่น [1, 2, 3], [“apple”, “banana”, “cherry”]
  6. ตัวอักษร (tuple) – คล้ายกับลิสต์แต่เปลี่ยนแปลงไม่ได้หลังจากสร้าง สามารถใช้วงเล็บเพื่อกลุ่มข้อมูล เช่น (1, 2, 3), (“apple”, “banana”, “cherry”)
  7. ดิกชันนารี (dictionary) – ชุดของข้อมูลที่มีคีย์และค่าที่เกี่ยวข้องกัน เช่น {“name”: “John”, “age”: 36}
  8. เซ็ต (set) – ชุดของข้อมูลที่ไม่มีลำดับและไม่มีสมาชิกที่ซ้ำกัน เช่น {1, 2, 3}, {“apple”, “banana”, “cherry”}

การระบุประเภทของข้อมูลไม่จำเป็นต้องทำเองในภาษา Python เนื่องจากมีการตรวจสอบประเภทของข้อมูลอัตโนมัติในระหว่างการทำงาน

การตั้งค่าตัวแปรในภาษา Python จะขึ้นอยู่กับประเภทของข้อมูล (data type) ที่ต้องการเก็บไว้ในตัวแปรนั้น ๆ โดย Python สามารถรู้จักประเภทของข้อมูลได้โดยอัตโนมัติจากค่าที่กำหนดให้กับตัวแปร ดังนั้น ในการตั้งค่าตัวแปรแต่ละตัว จะต้องมีการกำหนดค่าของตัวแปรให้มีชนิดของข้อมูลที่ถูกต้อง

ตัวอย่างเช่น

ตัวแปรชนิดข้อมูล int หากต้องการเก็บตัวเลขจำนวนเต็มในตัวแปร จะต้องกำหนดค่า ดังนี้

num = 10

ตัวแปรชนิดข้อมูล float หรือตัวเลขที่มีทศนิยม สามารถกำหนดค่าได้ดังนี้

pi = 3.14159

ตัวแปรชนิดข้อมูล string หรือข้อความ สามารถกำหนดค่าได้โดยใช้เครื่องหมาย " หรือ ' ครอบข้อความไว้ ดังนี้

name = "John"

ตัวแปรชนิดข้อมูล bool หรือค่าความจริง สามารถกำหนดค่าได้เป็น True หรือ False ดังนี้

is_valid = True

ตัวแปรชนิดข้อมูล list เป็นชนิดของข้อมูลที่เก็บค่าได้หลายค่าในตัวแปรเดียว โดยใช้วงเล็บเหลี่ยม [] ในการกำหนดข้อมูล และใช้เครื่องหมายจุลภาค (,) ในการแยกข้อมูลแต่ละตัว 

fruits = ["apple", "banana", "cherry"]
numbers = [1, 2, 3, 4, 5]
mixed = ["apple", 1, "banana", 2.5]

ในตัวอย่างข้างต้น มีตัวแปร fruits เป็น List ที่เก็บสามชนิดของผลไม้ มีตัวแปร numbers เป็น List ที่เก็บเลขจำนวนเต็ม และมีตัวแปร mixed เป็น List ที่เก็บค่าที่ผสมกันระหว่างสตริง, จำนวนเต็ม, และทศนิยม

List ในภาษา Python เป็น mutable หมายความว่าเราสามารถแก้ไขสมาชิกใน List ได้ โดยการเปลี่ยนค่าในดัชนี (index) ของ List นั้น ๆ ดังนี้:

fruits = ["apple", "banana", "cherry"]
fruits[1] = "orange"
print(fruits)

ผลลัพธ์ที่ได้คือ [“apple”, “orange”, “cherry”] ซึ่งเป็น List ที่มีสมาชิกตัวที่ 2 ถูกเปลี่ยนจาก “banana” เป็น “orange”

ตัวแปรชนิดข้อมูล tuple เป็นโครงสร้างข้อมูลที่ใช้เก็บข้อมูลหลายๆ ชนิดในตัวแปรเดียว โดยข้อมูลที่ถูกเก็บไว้ใน Tuple ไม่สามารถเปลี่ยนแปลงค่าได้หลังจากที่ถูกกำหนดค่าไปแล้ว โดยใน Python สามารถกำหนด Tuple ได้โดยใช้วงเล็บ () ในการกลุ่มข้อมูลต่างๆ เข้าด้วยกัน โดยข้อมูลแต่ละชนิดใน Tuple จะถูกคั่นด้วยเครื่องหมาย จุลภาค (comma) และถ้ามีการใช้งานแบบเต็มรูปแบบ จะต้องปิด Tuple ด้วยเครื่องหมายปีกกา }

ตัวอย่างการกำหนด Tuple ใน Python ดังนี้

# กำหนด Tuple แบบไม่มีการใช้วงเล็บ ()
my_tuple = "apple", "banana", "cherry"
print(my_tuple)

# กำหนด Tuple แบบใช้วงเล็บ ()
my_second_tuple = ("apple", "banana", "cherry")
print(my_second_tuple)

# กำหนด Tuple ที่มีข้อมูลต่างชนิดกัน
my_third_tuple = ("apple", 2, True, 3.5)
print(my_third_tuple)

# จะเห็นได้ว่าข้อมูลแต่ละชนิดใน Tuple ถูกคั่นด้วยเครื่องหมายจุลภาค ,

ผลลัพธ์ที่ได้จากการรันโค้ดข้างต้นจะเป็นดังนี้

('apple', 'banana', 'cherry')
('apple', 'banana', 'cherry')
('apple', 2, True, 3.5)

ตัวแปรชนิดข้อมูล dict (dictionary) เป็นตัวแปรที่เก็บข้อมูลเป็นคู่ key-value ซึ่งมีลักษณะคล้ายกับ hash table ในภาษาอื่น ๆ ตัวอย่างเช่น ในภาษา Python เราสามารถกำหนดตัวแปรแบบ dict ดังนี้

# ตัวอย่างตัวแปรแบบ dict
person = {
    "name": "John",
    "age": 30,
    "gender": "Male"
}

ในตัวอย่างข้างต้น person เป็นตัวแปรแบบ dict ที่มี key-value 3 คู่ ได้แก่ "name": "John" ซึ่ง "name" เป็น key และ "John" เป็น value ของ key "name" นั้นเอง และเช่นเดียวกับ key-value อื่น ๆ ใน person ด้วย

เราสามารถเข้าถึง value ในตัวแปรแบบ dict ได้ด้วยการใช้ key เป็นตัวชี้ ดังตัวอย่างด้านล่างนี้

# เข้าถึง value ในตัวแปรแบบ dict
name = person["name"]
print(name) # ผลลัพธ์จะเป็น "John"

age = person["age"]
print(age) # ผลลัพธ์จะเป็น 30

gender = person["gender"]
print(gender) # ผลลัพธ์จะเป็น "Male"

ในตัวอย่างข้างต้น เราใช้ key เป็นตัวชี้ในการเข้าถึง value ใน person ดังนั้น ผลลัพธ์ที่ได้จะเป็น value ของ key นั้น ๆ ตามลำดับ ซึ่งในตัวอย่างข้างต้นก็จะได้ผลลัพธ์เป็น "John" สำหรับ key "name" และ 30 สำหรับ key "age" อย่างละดังนั้น ในการใช้งานตัวแปรแบบ dict เราจะใช้ key เป็นตัวชี้เพื่อเข้าถึง value ในตัวแปรนั้น ๆ

ตัวแปรชนิดข้อมูล set ซึ่งเป็นลิสต์ของข้อมูลที่ไม่ซ้ำกัน การสร้างตัวแปรชนิด set สามารถทำได้โดยใช้วิธีการต่อไปนี้

# สร้าง set ว่าง
set_variable = set()

# สร้าง set ที่มีข้อมูล
set_variable = {1, 2, 3}

หรือสามารถสร้างตัวแปรชนิด set จาก list ได้ดังนี้

list_variable = [1, 2, 3, 4, 5]
set_variable = set(list_variable)

ในตัวอย่างนี้ เราสร้างตัวแปรชื่อ set_variable และกำหนดค่าให้กับตัวแปรดังกล่าว ด้วยข้อมูลชนิด set ที่ประกอบด้วยตัวเลข 1, 2, และ 3 ในกรณีที่ต้องการสร้าง set ที่ไม่มีสมาชิกเราสามารถใช้เครื่องหมาย {} ซึ่งเป็นเครื่องหมายเดียวกับการสร้าง dictionary แต่จะไม่มี key อยู่ด้านหน้า value ในกรณีนี้ เราสร้าง set ว่างโดยการใช้เมธอด set() โดยไม่มีอาร์กิวเมนต์ผ่านเข้าไป หลังจากนั้นเราสามารถเพิ่มสมาชิกเข้าไปใน set ด้วยเมธอด add() ได้ ซึ่งจะรับค่าตัวแปรเดียวเป็นอาร์กิวเมนต์

set_variable = set()
set_variable.add(1)
set_variable.add(2)
set_variable.add(3)

การสร้าง set จาก list จะเป็นวิธีที่มักจะใช้มากที่สุด เนื่องจากให้ความยืดหยุ่นและความสะดวกในการดำเนินการกับข้อมูลหลาย ๆ ตัวแต่ละตัวใน list ที่อยู่ใน set

Python เป็นภาษาโปรแกรมที่มีการจัดการตัวแปรแบบไดนามิก (dynamic typing) ซึ่งหมายความว่าตัวแปรสามารถเก็บค่าของประเภทข้อมูลใด ๆ ได้ โดยไม่จำเป็นต้องกำหนดประเภทของข้อมูลไว้ล่วงหน้า หากต้องการตั้งค่าตัวแปรให้มีค่าเป็นประเภทข้อมูลใด ๆ ใน Python สามารถทำได้โดยใช้เทคนิคที่เรียกว่า “type casting” หรือ “type conversion” โดยใช้ฟังก์ชันต่าง ๆ เช่น int(), float(), str() เป็นต้น

ตัวอย่างเช่น:

x = 5        # ตัวแปร x เก็บค่าเป็นจำนวนเต็ม (int)
y = 3.14     # ตัวแปร y เก็บค่าเป็นทศนิยม (float)
z = 'hello'  # ตัวแปร z เก็บค่าเป็นสตริง (string)

# แปลงค่าของตัวแปร x ให้เป็นสตริง
x_str = str(x)
print('x_str:', x_str, 'type:', type(x_str))  # ผลลัพธ์: x_str: 5 type: <class 'str'>

# แปลงค่าของตัวแปร y ให้เป็นจำนวนเต็ม
y_int = int(y)
print('y_int:', y_int, 'type:', type(y_int))  # ผลลัพธ์: y_int: 3 type: <class 'int'>

# แปลงค่าของตัวแปร z ให้เป็นจำนวนเต็ม
# หรือจำนวนทศนิยมไม่ได้ เนื่องจากสตริงไม่สามารถแปลงเป็นตัวเลขได้
z_int = int(z)
print('z_int:', z_int, 'type:', type(z_int))  # จะเกิด TypeError: invalid literal for int() with base 10: 'hello'