
เขียนโปรแกรมภาษา Python ตอนที่ 6 ตัวแปร
ตัวแปร คือคำหรือวลี หรือแม้แต่ตัวอักษรเพียงตัวเดียว ที่ใช้สำหรับเก็บค่าของข้อมูลเพื่อนำไปใช้งานในส่วนต่าง ๆ ของโปรแกรม
โดยส่วนใหญ่ ในภาษาโปรแกรมอื่น ๆ จะมีคำสั่งสำหรับประกาศตัวแปร เช่น var
, let
เป็นต้น แต่ในภาษา Python จะไม่มีคำสั่งสำหรับประกาศตัวแปร แต่ตัวแปรจะถูกสร้างขึ้นเมื่อมีการกำหนดค่าครั้งแรก เช่น
a = 5 b = 20 x = "DCRUB.COM" y = False
จากตัวอย่าง เมื่อเราพิมพ์คำหรือวลีใด ๆ ตามด้วยเครื่องหมาย =
และกำหนดค่าให้กับคำหรือวลีนั้น ๆ นั่นคือการสร้างตัวแปรในภาษาไพธอน
การสร้างตัวแปร ไม่จำเป็นต้องกำหนดชนิดข้อมูล Data Type
ในไพธอน เมื่อเราสร้างตัวแปรใด ๆ ขึ้นมา เราไม่จำเป็นต้องกำหนดชนิดข้อมูลให้ตัวแปรนั้น ๆ เราสามารถกำหนดค่าให้กับตัวแปรนั้น ๆ ได้เลย และตัวแปรนั้นจะมีชนิดข้อมูลตามค่าที่เรากำหนด เช่น
a = 50 b = 'www.dcrub.com' c = True
จากโค้ดตัวอย่างด้านบน บรรทัดที่ 1 ตัวแปร a
จะมีชนิดข้อมูลเป็น int
โดยอัตโนมัติ เพราะเรากำหนดค่าตัวเลข (int) ให้กับมัน บรรทัดที่ 2 ตัวแปร b
จะมีชนิดเป็น string
โดยอัตโนมัติ เพราะเรากำหนดค่าที่เป็นอักขระ (string) ให้มัน
ตัวแปรใน Python สามารถเปลี่ยนชนิดข้อมูลได้ตามค่าที่กำหนด
ตัวแปรในภาษา Python สามารถเปลี่ยนชนิดข้อมูลได้ตามค่าที่กำหนดให้ เช่น ตัวแปรเดียวกัน เมื่อกำหนดค่าเป็นตัวเลข ตัวแปรนั้นก็จะมีชนิดข้อมูลเป็น int ต่อมา ถ้าเรากำหนดค่าที่เป็นสตริงให้กับตัวแปรตัวเดียวกันนั้น ตัวแปรนั้นก็จะมีชนิดข้อมูลเป็น string
โดยอัตโนมัติ
x = 1000 print("Now type of x : ") print(type(x)) x = 'www.dcrub.com' print("Now type of x : ") print(type(x))
จากโค้ดตัวอย่าง บรรทัดที่ 1 กำหนดให้ตัวแปร x
มีค่า 1000 ซึ่งเป็นข้อมูลชนิด int
ตัวแปร x
ก็จะมีชนิดข้อมูลเป็น int
โดยอัตโนมัติ
หลังจากนั้น ในบรรทัดที่ 4 กำหนดค่าใหม่ให้ตัวแปร x
โดยกำหนดเป็นข้อมูลชนิด string
ตัวแปร x
ก็จะมีชนิดข้อมูลเป็น string
โดยอัตโนมัติ

ตัวแปรประเภทสตริง
เมื่อจะสร้างตัวแปรประเภทสตริง เราสามารถกำหนดค่าสตริงโดยใช้เครื่องหมาย single quote ''
หรือ double quotes ""
ก็ได้
a = "www.dcrub.com" b = 'www.dcrub.com'
โค้ดด้านบน ทั้งตัวแปร a
และตัวแปร b
มีชนิดข้อมูลเป็นสตริงเหมือนกัน ถึงแม้ว่าจะใช้เครื่องหมายในการกำหนดค่าไม่เหมือนกันก็ตาม
การตั้งชื่อตัวแปรใน Python
การตั้งชื่อตัวแปรในภาษาไพธอน สามารถตั้งเป็นคำสั้น ๆ เช่น a, b, x, y หรือคำที่สื่อความหมายได้ เช่น age, name เป็นต้น โดยมีกฎเกณฑ์ที่ต้องทราบดังนี้
- ชื่อตัวแปรต้องเริ่มต้นด้วยตัวอักษรหรือเครื่องหมายอันเดอร์สกอร์ (_) อย่างใดอย่างหนึ่ง
- ชื่อตัวแปร ห้ามขึ้นต้นด้วยตัวเลขเด็ดขาด
- ชื่อตัวแปร สามารถประกอบด้วย ตัวอักษร เครื่องหมายอันเดอร์สกอร์ (_) และตัวเลข อยู่ด้วยกัน แต่ห้ามขึ้นต้นด้วยตัวเลข
- ชื่อตัวแปรในไพธอนเป็น case-sensitive คือ ตัวอักษรพิมพ์เล็กกับตัวอักษรพิมพ์ใหญ่ถือว่าเป็นคนละตัวกัน เช่น age กับ Age ถือว่าเป็นตัวแปรคนละตัวกัน
การกำหนดค่าให้กับตัวแปรหลายตัวพร้อมกัน
ในไพธอน เราสามารถกำหนดค่าให้ตัวแปรหลาย ๆ ตัวพร้อมกันได้ โดยการพิมพ์ตัวแปรแต่ละตัวในบรรทัดเดียวกันและคั่นแต่ละตัวแปรด้วยเครื่องหมายคอมม่า ,
ตามด้วยเครื่องหมาย =
และกำหนดค่าลงไป โดยถ้ากำหนดค่าหลายค่าให้กับตัวแปรหลายตัวแปร ตัวแปรแต่ละตัวจะถูกกำหนดค่าตามลำดับ เช่น ตัวแปรที่ 1 จะถูกกำหนดค่าด้วยข้อมูลลำดับที่ 1 ไปเรื่อย ๆ ตามลำดับ ดังนี้
a, b, c = "www.", "dcrub", ".com" print(a) print(b) print(c)
ลำดับการกำหนดค่าดังโค้ดด้านบน จะเป็นดังนี้
หรือเราสามารถกำหนดค่าให้ตัวแปรหลายตัวแปรด้วยค่าเดียวกัน ดังโค้ดต่อไปนี้
a, b, c = "www.dcrub.com" print(a) print(b) print(c)
จากโค้ดด้านบน ตัวแปรทุกตัวจะมีค่าเดียวกันทั้งหมด
การแสดงค่าของตัวแปร
ในไพธอน จะใช้ฟังก์ชัน print ในการแสดงค่าของตัวแปร เช่น
a, b, c = "www.", "dcrub", ".com" print(a) print(b) print(c)
เราสามารถใช้เครื่องหมาย +
สำหรับแสดงค่าของตัวแปรต่อกันในแถวเดียวกันได้ด้วย เช่น
a, b, c = "www.", "dcrub", ".com" print(a) print(b) print(c) print(a + b + c)
แต่ห้ามใช้เครื่องหมาย +
ต่อข้อมูลที่เป็นชนิดตัวเลขกับข้อมูลชนิดอื่น เพราะจะทำให้เกิด Error ขึ้น
Global Variables ตัวแปรประเภทโกลบอล
ตัวแปรประเภท Global คือตัวแปรที่สร้างไว้นอกขอบเขตของฟังก์ชันหรือบล็อกคำสั่งใด ๆ เราสามารถใช้ตัวแปรประเภทนี้ที่ไหนก็ได้ในไฟล์เดียวกัน เช่น
x = "Global" def myFunction(): print("X is " + x) myFunction()
จากโค้ดตัวอย่าง เราประกาศตัวแปร x
ไว้ภายนอกฟังก์ชัน myFunction()
เราสามารถเรียกใช้ตัวแปร x
ในฟังก์ชัน myFunction()
หรือนอกฟังก์ชันดังกล่าวก็ได้
X is Global
ถ้าเราประกาศตัวแปรชื่อเดียวกันทั้งนอกฟังก์ชันและในฟังก์ชัน ตัวแปรนอกฟังก์ชันจะเป็นตัวแปรแบบ Global มีค่าเหมือนเดิม ส่วนตัวแปรในฟังก์ชันจะเป็นตัวแปรแบบ Local ไม่เกี่ยวกันกับตัวแปรนอกฟังก์ชัน และเมื่อเรียกใช้งานตัวแปรนั้นในฟังก์ชัน จะเป็นการเรียกตัวแปรที่อยู่ในฟังก์ชัน ดังตัวอย่าง
x = "Global" def myFunction(): x = 'Local' print("x inside function is " + x) myFunction() print("x outside function is " + x)
จากตัวอย่าง ตัวแปร x ในบรรทัดที่ 1 เป็นตัวแปรแบบ Global ส่วนตัวแปร x
ในบรรทัดที่ 4 ถูกประกาศไว้ในฟังก์ชัน myFunction()
ถึงจะมีชื่อเดียวกันกับตัวแปรตัวแรกในบรรทัดที่ 1 แต่ถือว่าไม่เกี่ยวข้องกัน
บรรทัดที่ 5 เราเขียนคำสั่งให้แสดงค่าของตัวแปร x
จะเป็นการเรียกใช้งานตัวแป x
ที่อยู่ในฟังก์ชัน ที่มีค่าเป็น ‘Local’
ส่วนบรรทัดที่ 9 เราเขียนคำสั่งให้แสดงค่าของตัวแปร x
อีกเช่นกัน ซึ่งตรงนี้จะเป็นการเรียกใช้ตัวแปร x
ในบรรทัดที่ 1 ซึ่งเป็นตัวแปรแบบ Global
ผลลัพธ์
x inside function is Local
x outside function is Global
การใช้คีย์เวิร์ด global
โดยปกติ เมื่อเราประกาศตัวแปรไว้ภายในฟังก์ชัน ตัวแปรนั้นจะเป็นตัวแปรแบบ Local โดยอัตโนมัติ และสามารถเรียกใช้ได้เฉพาะภายในฟังก์ชันนั้นเท่านั้น
แต่ถ้าเราต้องการให้ตัวแปรที่ประกาศภายในฟังก์ชันเป็นตัวแปรแบบ Global คือให้สามารถเรียกใช้ภายนอกฟังก์ชันนั้นได้ เราสามารถทำได้โดยการวางคีย์เวิร์ด global ไว้ด้านหน้าตัวแปร แล้วค่อยกำหนดค่าทีหลัง หลังจากนั้นเราจะสามารถเรียกใช้ตัวแปรดังกล่าวภายนอกฟังก์ชันได้ ดังนี้
def myFunction(): global x x = "This is variable in function" myFunction() print(x)
จากโค้ดตัวอย่าง เราประกาศตัวแปร x
ไว้ภายในฟังก์ชัน myFunction()
โดยกำหนดคีย์เวิร์ด global
กำกับไว้ด้านหน้าตัวแปรด้วย (บรรทัดที่ 2)
หลังจากนั้นในบรรทัดที่ 5 เรียกใช้งานฟังก์ชัน myFunction()
เพื่อให้ฟังก์ชันทำงาน
บรรทัดที่ 7 เขียนคำสั่งให้แสดงค่าของตัวแปร x
โดยเขียนไว้ภายนอกฟังก์ชัน myFunction()
แต่เราสามารถเรียกใช้ตัวแปร x
ได้ เพราะตัวแปร x
เป็นตัวแปรประเภท Global
This is variable in function
ถ้าหากมีตัวแปรที่เป็น Global และเราต้องการเปลี่ยนค่าของตัวแปรนั้นภายในฟังก์ชัน เราก็สามารถทำได้โดยใช้คีย์เวิร์ด global
เช่นเดียวกัน ดังนี้
x = "This is variable outside function" print("Before assigning : " + x) def myFunction(): global x x = "This is variable inside function" myFunction() print("After assigning : " + x)
- บรรทัดที่ 1 ประกาศตัวแปร
x
เป็นแบบ Global - บรรทัดที่ 2 สั่งให้แสดงค่าของตัวแปร
x
- บรรทัดที่ 4 อ้างถึงตัวแปร
x
โดยระบุคีย์เวิร์ดglobal
ไว้ด้านหน้าตัวแปร - บรรทัดที่ 5 กำหนดค่าใหม่ให้กับตัวแปร
x
- บรรทัดที่ 7 สั่งให้ฟังก์ชั่นทำงาน
- บรรทัดที่ 9 สั่งแสดงค่าของตัวแปร
x
ออกมาอีกครั้ง
Before assigning : This is variable outside function
After assigning : This is variable inside function