Basic Python
บทความนี้เขียนขึ้นเพื่อเป็นการ Lecture เนื้อหาพื้นฐานภาษา Python ในคลาสของอาจารย์ Sittipong Jansorn ประกอบด้วยหัวข้อย่อยตั้งแต่ Syntax ต่างๆ Python Network Programming จนถึงการเขียน Python ติดต่อกับ Hardware (ESP8266) ซึ่งเนื้อหาจะแบ่งย่อยเป็น 3 ชุดเพื่อให้ง่ายต่อการอ่านนะครับ
ก่อนจะเริ่มเนื้อหา ขอออกตัวก่อนว่า เนื่อหาที่เขียน ไม่ได้ละเอียดยิบ แต่จะเป็นประเด็นสำคัญๆ ที่ควรรู้ ฉะนั้นไม่เข้าใจจุดไหน สอบถามเข้ามาได้นะครับ ไปเริ่มเนื้อหากันเลยดีกว่า
เริ่มต้นด้วยการติดตั้ง Python เราจะใช้ Python3 กันนะครับ โดยให้ไป Download ได้ที่ https://www.python.org/downloads/
ปล. Python v2.7.x ยังสามารถใช้งานได้อยู่ ยัง Support อยู่จนถึงปลายปี 2019 นี้ แต่จะไม่มีการ update อีก
หลังจากดาวน์โหลดมาแล้ว ให้ทำการติดตั้ง การติดตั้งก็ไม่มีอะไรมาก กด next next next ไปเลยครับ
หลังจาก ติดตั้งเสร็จ ก็ให้ทำการ Set Environment path (ยกตัวอย่าง สำหรับ Window7 ) ด้วยการเข้าไปที่ My Computer > Properties > Advanced System Settings > Environment Variables > Edit System Variable จากนั้นให้เพิ่ม python path ที่เรา install ไว้เข้าไป
ขั้นตอนต่อไป เราจะมาลง IDE สวยๆไว้ใช้งานกันนะครับ ซึ่งเราจะใช้ vscode กัน
ให้เข้าไป ดาวน์โหลดได้ที่นี่เลย https://code.visualstudio.com/Download
หลังจากดาวน์โหลดมาแล้ว ก็ทำการติดตั้งเลยครับ ง่ายๆเหมือนเดิม next, next แล้วก็ next เสร็จแล้วก็จะได้หน้าตาแบบนี้
หลังจากเตรียมเครื่องไม้เครื่องมือเสร็จ เดี๋ยวเราจะพักส่วนนี้ไว้ก่อนนะครับ มาลุยเนื้อหากันก่อนสักหน่อย
Basic Python 1
Python Syntax
Python Data type
Python Condition & Loop
Python OOP Class & Function
Python Console Input & Output
Basic Console Input & Output
Inout คือ การรับค่าเข้าไป เพื่อนำค่าไป Process ต่อ
Output คือ ค่าที่แสดงออกมาหลังจาก Process ใดๆ ทำงานเสร็จสิ้น
print(‘Hello World!’) # Hello World!
ให้เพื่อนๆ ลองพิมพ์ตามด้านบนนะครับ จะได้ output printออกทางหน้าจอเหมือนกันมั๊ย
Fancier Output Formatting
ในหัวข้อนี้เราจะมาดูกันในเรื่องของการ แสดงผล Format Output ออกมาแสดงผล
ให้ลองพิมพ์ code ด้านล่างแล้วดู Output ตามนะครับ
year = 2016event = 'Referendum'print(f'Results of the {year} {event}')# Results of the 2016 Referendum
ต่อไป ลองมาเล่นกับ String กันสักหน่อยนะครับดูตัวอย่างด้านล่างนี้
s = '123456789'
print(s) # 123456789
print s[0] # 1จากตัวอย่าง Python มอง String เป็น Object of array เราสามารถดึง ค่าใน index ใดๆ ออกมาได้เลย และยังสามารถดึงค่าหลาย Index ได้ด้วย ตามตัวอย่างด้านล่างprint s[0:] # 123456789
print s[2:] # 3456789
Python Input
จากตัวอย่างด้านบน เราทำการรอรับ Input ให้ user กรอกข้อมูลเข้ามา แล้วทำการแสดงผล โดยฟังก์ชันหลักก็คือ ฟังก์ชันที่ชื่อว่า Input นั่นเอง
Comment
ตัวอย่างการใช้งาน Comment ในภาษา Python มีอยู่สองแบบ ดังนี้
Python Type
ชนิดตัวแปรใน Python มีดังนี้
- String
- Numbers
- Null
- List
- Dictionaries
- Booleans
Strings
เราสามารถใช้ String ได้โดยการใช้เครื่องหมาย (“ “) หรือ (‘ ‘) ก็ได้ โดยจะให้ผลลัพธ์ เหมือนกัน ดังนี้
Numbers
เราสามารถเรียกใช้ number แต่ละประเภทได้ โดยไม่ต้องใส่ type นำหน้า หรือจะใส่ก็ได้ แบบนี้
Null
เราสามารถประกาศใช้งานตัวแปร แล้วกำหนดค่า Null ให้มัน ดังนี้
List
Type ของ List จะเป็นอะไรก็ได้ ซื่งจะถูกกำหนดค่าอยู่ภายใต้เครื่องหมาย []
Dictionaries
Dictionaries คือตัวแปรที่ประกอบด้วย Key และ Value ซึ่งค่าของทั้งสองนั้น จะมี Type เป็นอะไรก็ได้ ค่าของตัวแปรจะถูกกำหนดอยู่ภายใต้เครื่องหมาย {}
Dictionaries Methods
Dictionaries สามารถเรียกดู ค่าในลำดับของมันได้ โดยถ้าเราอยากได้ key ก็ใช้ key เช่นกัน หากอยากได้ value ก็ใช้ value เราสามารถเรียกค่าจะมันตรงๆได้เลย ตาม index เช่นเดียวกับ array
Booleans
ตัวแปรชนิด Booleans มีค่าอยู่สองค่าก็คือ True และ False
Arithmetric
การดำเนินการทางคณิตศาสตร์
String Manipulation
การจัดการกับสตริง
Logical Comparison
and, or, not, ==, !=, is, is not, in
ก่อนจะเข้าสุ่เรื่องต่อไป เดี๋ยวเราจะกลับมาลองใช้ vscode กันนะครับ
ให้ทำการเปิด vscodeขึ้นมา จากนั้น เราจะมาลง Extension เสริมกันก่อนนะครับ
ให้คลิกที่ Extension ด้านซ้ายมือ แล้วค้นหา Python extension for Visual Studio Code หลังจากนั้นก็คลิก install มันซะครับ (ของผมได้ทำการ Install ไปแล้ว)
เมื่อทำการติดตั้งเสร็จ เราจะมาเปิด Terminal ใช้งานตามภาพด้านล่าง คีย์ลัดคือ (Alt+ `)
ต่อมาลองพิมพ์คำสั่ง print ง่ายๆ
ทดลองรันด้วยการคลิกขวา แล้วเลือก Run Python File in Terminal
ผลลัพธ์ที่ได้ก็จะปรากฎ Hello World! ขึ้นมาใน termainal
เอาล่ะครับ กลับเข้าสู่เนื้อหาต่อ โดยต่อไปนี้ให้เราเขียนโค้ด และรันด้วย Visual Code เลยแล้วกันนะครับ
Control Flow
- Conditionals
- For Loop
- Expanded For Loop
- While Loop
- List Comprehensions
Conditionals
ด้านล่างนี้เป็นตัวอย่าง if…elif และ if…else แบบง่ายๆ ซึ่งแน่นอน มันคือโปรแกรมตัดเกรดแบบง่าย ลองเขียนกันดูนะครับ
For Loop
ตัวอย่างด้านล่าง เป็น for loop อย่างง่าย ลองไล่การทำงานของ code ดูนะครับ
Expanded For Loop
ตัวอย่างการเข้าถึง Dictionaries ด้วย For Loop
While loop
ทำงานด้วย keyword while ตามด้วย condition จะจบการทำงานเมื่อ condition ตรงตามเงื่อนเขื่อนที่กำหนด ดูตัวอย่าง while loop อย่างง่ายด้านล่างครับ
List Comprehensions
การใช้ For เข้าถึง หรือจัดการกับ ตัวแปร Type List ดูตัวอย่าง code ด้านล่างนะครับ
Functions
- Basic Function
- Function Arguments
- Arbitary Arguments
Basic Function
Function ขึ้นต้นด้วย keywords def ตามด้วย ชื่อของ function และปิดด้วย ()
ดูตัวอย่างตาม code ด้านล่างนะครับ
Function Arguments
ต่อไปจะเป็นตัวอย่างของ function ที่มีการส่ง Arguments เข้าไปในฟังก์ชันด้วย
ลองมาดูตัวอย่าง code ด้านล่างนะครับ
มี Function อยู่ 3 ฟังก์ชัน ได้แก่ add, shout และ echo ซึ่งแต่ละฟังก์ชันทำหน้าที่แตกต่างกัน รับค่า Parameter ต่างกัน
function add รับค่า Parameter ตาม position ของตัวแปรที่รอรับ
function shout รับค่า Parameter ตาม keyword
function echo รับค่า Parameter ตาม keyword และ Position
ลองรัน code ดูผลลัพธ์ตามนะครับ
Arbitrary Arguments
เป็นการรับค่า Parameter เข้ามาในฟังก์ชัน ซึ่งจะแยก Type ตามจำนวนของ * ดังนี้
*args เป็น Parameter ของตัวแปรชนิด Array
**kwargs เป็น Parameter ของตัวแปรชนิด Dictionariesปล.ต้องใช้ type ให้ถูกต้องเท่านั้น ใช้ผิดบาปแน่นอน
จากตัวอย่างด้านบน ตัวแปร *args และ **kwargs สามารถเปลี่ยนชื่อได้นะ แบบ code ด้านล่างนี้
Class
ใน class ประกอบด้วย contructor ของ class ที่จะมีการถูกวิ่งเข้ามาทำงานก่อนในครั้งแรก ซึ่งจะไปเรียกใช้งาน Base Class ของ Python ที่ชื่อว่า Object
Class Declaration
ตูตัวอย่างการสร้าง Class อย่างง่ายจาก code ด้านล่าง
class ตามด้วย ชื่อคลาส(object)
ปล. object จะใส่หรือไม่ใส่ก็ได้
Class Attributes
ดูตัวอย่าง class ง่ายๆ ตาม code ด้านล่างครับ จาก code เราจะเรียก name และ is_staff ว่าเป็น Attributes ของ class
Attribute ที่สร้างขึ้น ไม่สามารถแก้ไขค่าได้ (Immutable)
Class Methods
คือการสร้าง function ภายใน class ดูตัวอย่าง code ด้านล่างครับ
Class Instantiation & Attribute Access
การเข้าถึง Instant และ Attribute ของ Class
Class Inheritance
การสืบทอด Class จากตัวอย่าง code เราทำการสืบทอดคุณสมบัติของ Class User มาไว้ใน Class ใหม่ซึ่งก็คือ SuperUser และสามารถเปลี่ยนแปลงค่า Instance ใน Class ลูกได้
เนื้อหาใน ฺBasic Python 1 นี้ เป็นการรวบรวมพื้นฐานที่ควรจะรู้ไว้ ในการเขียนโปรแกรมด้วยภาษา Python เดี๋ยวต่อไป เราจะไปดูเรื่องของ Python Network Programming กันใน Basic Python 2: Python Network Programming
ใครมีข้อสงสัย หรือพบข้อผิดพลาดอะไร ในบทความก็แวะเข้ามาติชม พูดคุย คอมเมนต์กันได้นะครับ :)
Link บทความที่เกี่ยวข้อง
- Basic Python 2: Python Network Programming
- ESP8266 With MicroPython Coming soon…