ตัวแปร หรือ variable คือสิ่งที่ใช้เก็บค่าต่าง ๆ เพื่อนำไปใช้งานในกระบวนการคำนวณหรือวิเคราะห์ หรือ จะบอกว่า คือการ แทนค่า เพื่อการคำนวณ ก็ไม่น่าจะผิดความหมายเท่าใดนัก
เช่น
a = 1 b = 2 c = a+b
แบบนี้เป็นต้น
a b และ c ก็จะเป็นตัวแปร โดย a มีค่าเท่ากับ 1, b จะมีค่าเท่ากับ 2 และ c จะมีค่าเท่ากับ a + b นั่นคือ 1 + 2 หรือ 3 นั่นเอง อันนี้คือเก็บค่าต่าง ๆ เพื่อนำไปทำงาน
กฎเกณฑ์การตั้งชื่อ
ตัวแปรจะระบุที่ด้านซ้ายของ =
เช่น เราจะกำหนดว่า ตัวแปรชื่อ A มีค่าเท่ากับ 123.45 เราต้องเขียนว่า
A = 123.45
จะไปเขียนกลับข้างกันเป็น 123.45 = A แบบนี้ ไม่ได้
ในสามัญสำนึกของเรา เครื่องหมาย = อาจจะไปคิดถึงระบบสมการ เราจะรู้ว่า A คือ 123.45 แต่ใน python จะมองว่า ทางฝั่งซ้ายของ เครื่องหมาย = คือสิ่งที่ต้องการกำหนด ดังนั้น ถ้าเราเขียนว่า 123.45 = A แบบนี้ 123.45 ก็จะเป็นตัวแปร ที่มีค่าเท่ากับ A ซึ่งจะขึ้น error เพราะว่า กฎข้อต่อมาของการตั้งชื่อ คือ
ตัวแรกจะต้องไม่ใช่ตัวเลข
แต่มีตัวเลขรวมอยู่ด้วยได้ และจะต้องพิมพ์ติดกันห้ามเว้นวรรค เช่น
BNK48 ใช้ได้
BNK 48 ใช้ไม่ได้ (มีเว้นวรรค)
48BNK ใช้ไม่ได้ (ตัวเลขนำหน้า)
ไม่ใช้สัญลักษณ์พิเศษต่าง ๆ
อักขระและสัญลักษณ์พิเศษ เช่น ~ ! @ # $ & = | ? อะไรแบบนี้ ไม่สามารถใช้เป็นชื่อได้ ยกเว้น ขีดล่าง (_) ที่ใช้แทนการเว้นวรรคเท่านั้น เช่น
BNK_48 ใช้ได้ ขีดล่างเป็นตัวอักขระพิเศษที่ยอมให้ใช้
BNK@48 ใช้ไม่ได้ มีสัญลักษณ์พิเศษ คือ @
Sweat16! ใช้ไม่ได้ มีสัญลักษณ์พิเศษ !
และใน python จะถือว่าตัวอักษรโรมัน พิมพ์เล็ก กับ พิมพ์ใหญ่ เป็นคนละตัวกัน ดังนั้น bnk48 จะเป็นคนละตัวกับ BNK48
คำสงวนที่ห้ามใช้
ที่ห้าม เพราะคำเหล่านี้เป็นฟังก์ชันใน python มีดังนี้
and as assert break class continue def del elif else except exec finally fo from global if import in is lambda nonlocal not or pass raise return try while with yield True False None
เหล่านี้เป็นคำสงวนสำหรับ python ห้ามใช้ตั้งชื่อ
Tip: หากจำเป็นต้องใช้ ต้องดัดแปลงเล็กน้อย เช่นอยากจะใช้ import เพราะเกี่ยวกับ shipping มันมี import จริง ๆ เวลาเขียนอยากใช้คำที่สื่อถึงความหมายจริง ไม่อยากเลี่ยงไปใช้คำอื่น ก็ใช้ Import (เริ่มต้นด้วยตัวพิมพ์ใหญ่-อย่างที่บอกให้หัวข้อก่อนหน้านี้ ตัวพิมพ์เล็ก-ใหญ่ถือเป็นคนละตัว) หรือ IMPORT (ใช้ตัวพิมพ์ใหญ่ทั้งหมด) หรือ import_ (ใช้ขีดล่างตามหลัง)
Tip: ถ้าใช้ jupyter notebook เขียน จะเห็นชัดเจนเวลาเขียนคำที่เป็นคำสงวนจะมีสีที่แตกต่างต่างจากสีอื่น คือ คำนั้นจะกลายเป็นสีเขียว
ใน python 3 สามารถใช้ ตัวอักษรไทย เป็นชื่อได้ ปกติภาษาคอมพิวเตอร์อื่นจะใช้อักษรโรมัน 26 ตัวเท่านั้น ซึ่ง DataRevol.com ของแนะนำอย่างจริงใจว่า อะไรก็ตามที่เกี่ยวกับคอมพิวเตอร์ ตั้งชื่อเป็นภาษาอังกฤษ (ตัวอักษรโรมัน) เถอะ คือคนคิดมันไม่ใช่ภาษาไทย ดังนั้นเขาไม่ได้เผื่อความผิดพลาดที่เกิดจาก encoding ไว้ให้เท่าไหร่หรอก โดยเฉพาะเวลาทำงานกับ ArcGIS QGIS เขียน field และอื่น ๆ เป็นภาษาอังกฤษไว้ดีที่สุด อย่าง “โฉนด” นี่ ถ้าไม่ใช้ Title Deed ก็ทับศัพท์เป็น Chanod ไปเลย ลดปัญหาเวลาทำงานกับคอมพิวเตอร์ได้ดีกว่า อย่าเพิ่งมารักชาติอยากใช้ตัวอักษรไทย เลขไทย กันตอนทำงานกับคอมพิวเตอร์
ตัวแปร ที่แปรเปลี่ยน
นอกจากจะใส่ค่าเข้าไปโดยตรง เช่น
A = 1234 B = “DataRevol.com” C = 45+67
เราอาจจะกำหนดค่า โดยรับค่าจากตัวแปรอื่นได้อีก เช่น
D = C + 5 E = D
นั่นคือ กำหนดค่า D ให้เท่ากับ 45+67+5 แต่ บรรทัดต่อมา ระบุให้ E มีค่าเท่ากับ D นั่นหมายความว่า E จะมีค่า 45+67+5 ด้วย
อันนี้ ต้องทำความเข้าใจดี ๆ ว่า ไม่ได้เขียนสมการ แต่เป็นการกำหนดค่า ดังนั้น การที่เราเขียน E = D ไม่ได้หมายความว่า ตัว E มีค่าเท่ากับ D ความหมายในภาษา python คือ เราเปลี่ยนค่า E ให้มีค่าเท่ากับ D
D = 12 E = D D = 10 print (D) print (E)
แบบนี้คงจะเห็นชัดขึ้นแล้วว่า ในบรรทัดที่ 2 เรากำหนดให้ E = D ซึ่ง D ในบรรทัดที่ 1 จะมีค่า 12 ดังนั้น E จะมีค่าเท่ากับ E ด้วยการกำหนดในบรรทัดที่ 2
แต่ในบรรทัดที่ 3 เรากำหนดค่าใหม่ให้ D มีค่าเท่ากับ 10 พอสั่ง print จะเห็นว่า ค่า D จะกลายเป็น 10 ตามการเปลี่ยนค่าในบรรทัดที่ 3 แต่ ค่า E จะมีค่าเท่ากับ 12 ซึ่งเป็นค่าก่อนหน้าที่จะเปลี่ยนค่า D
เราสามารถ กำหนดตัวแปรหลาย ๆ ตัว ในบรรทัดเดียวกันได้ โดยใช้จุลภาค (หรือ comma หรือ ,) เช่น
a,b,c = 10,11,12
แต่ต้องทำจำนวนค่าให้เท่ากัน ไม่เช่นนั้นจะขึ้น error
และยังอัปเดตหรือปรับปรุงค่าที่มีอยู่เดิม ได้อีก เช่น
a = 1 a = a+2
a จะกลายเป็น 3 ไปทันที
ซึ่งตรงนี้ ต้องเข้าใจว่า นี่คือการกำหนด “ตัวแปร” ไม่ใช่สมการทางคณิตศาสตร์ ย้ำกันอีกครั้ง ว่าไม่ใช่สมการทางคณิตศาสตร์
ยกตัวอย่างอีกหนึ่งตัวอย่าง
a = 12 b = 34 c = 56 a,b,c = c,b,a
ตัวอย่างนี้ สามบรรทัดแรก จะกำหนดค่า a = 12 b = 34 และ c = 56 แต่พอมาบรรทัดที่ 4 จะเปลี่ยนค่าไปอีก
แบบนี้ไม่ได้แปลว่าค่า a จะเท่ากับ c (เพราะไม่ใช่สมการ!) แต่หมายความว่า สลับให้ a มีค่าเป็น 56 (ค่าของ c ที่ประกาศก่อนหน้า) ค่า b ยังคงเป็น 34 เหมือนเดิม และ c มีค่าเป็น 12 ซึ่งประกาศไว้ก่อนหน้าแล้ว ไม่ใช่ ค่า a ที่เพิ่งเปลี่ยนค่าเป็น 56 เพราะอยู่ในขั้นตอนเดียวกัน อย่างที่บอกข้างต้นว่า สามารถเขียนทับได้ โดยจะยึดค่าล่าสุดที่ระบุไว้เป็นค่าของตัวแปรตัวนั้น
Learn Python – เรียนรู้ไพธอนไปด้วยกัน
Divider
บันทึกส่วนตัว เกี่ยวกับการเรียนรู้ภาษาไพธอน
อ่านเพิ่มเติม
Discover more from Data Revol
Subscribe to get the latest posts sent to your email.