Python 101
ฉบับรวบลัด
การแสดงผล และรับข้อมูล
เริ่มแรกลอง print “hello world” กันก่อน
Data type (ประเภทข้อมูล)
1. String
String ก็เป็นตัวแปรที่เก็ยตัวอักษร หรือข้อความ คราวนี้เรามาลองรับ input เป็นชื่อเก็บใส่ตัวแปรที่ชื่อว่า name แล้ว print ออกมากันครับ
ในที่นี้ตัวแปร name ก็จะมี data type คือ string นั้นเอง
2. Numeric
Type
Description
Integer
จำนวนเต็ม เช่น 10, 20
Float
ทศนิยม เช่น 10.0, 20.5
ต่อมาลองรับ input เป็น integer 1 ตัว และ float 1 ตัว แล้วเอามาบวกกันแสดงผลรับเป็น integer
3. List
List ก็คือตัวแปรที่คล้ายๆกับ array ใน C/C++ หรือภาษาอื่นๆนั้นเอง สำหรับใครที่เขียน python เป็นภาษาแรก ให้นึกถึง ตารางที่เก็บข้อมูล
สมมติ เรามีข้อมูลคะแนนนักเรียนอยู่ 5 คน ดังนี้ 20, 40, 30, 50, 35 เราก็จะสร้างตัวแปรชื่อ score ขึ้นมา
โดยที่ List จะเก็บค่าไว้ใน [] แต่ละข้อมูลคั่นด้วย comma (,)
แล้วถ้าเรา อยากเก็บว่าเพื่อนในห้องเรียนนั่งตรงไหนกันบ้าง ให้เรามีเพื่อน 12 คน
มีเก้าอี้อยู่ 4 แถว แถวละ 3 ตัว เราก็วาดตารางขึ้นมาก่อน
แถว
คอลัมน์ 1
คอลัมน์ 2
คอลัมน์ 3
แถว 1
A
J
L
แถว 2
F
B
I
แถว 3
D
C
H
แถว 4
G
E
K
เราก็จะสร้าง List แบบนี้
แต่ในการเขียน Program เราจะเริ่มนับแถว กับคอลัมน์ ตั้งแต่ 0 ใช้คำว่า Index ในการบอกตำแน่ง
่เช่น อยากรู้ว่า K นั่งอยู่ตรงไหน ก็คือ แถว 4 คอลัมน์ 3 พอเป็นในทาง programming เราก็จะบอกว่า K อยู่ที่ Index 3,2
และถ้าทุกคนสังเกต 2 ตัวอย่างผ่านมาจะรู้ว่า List สามารถเก็บตัวแปรประเภทใดก็ได้ สามารถเก็บตัวแปรคนละชนิด ไว้ใน List เดียวกันก็ได้ เช่น
4. Numpy array
อันนี้ผมอยากให้ทุกคนได้รู้จักเพราะว่า blog ของผมก็เป็น blog เกี่ยวกับ image processing กับ Computer vision เนอะ แล้วมันเกี่ยวกันยังไงใช่มั้ยครับ
เพราะว่า Library OpenCV ที่เราใช้ในการทำ Image processing กันเนี่ยมันจะเก็บข้อมูลรูปภาพไว้ใน Numpy array
Numpy array คือ ตารางหรือ array ที่เก็บค่าข้อมูลที่มี Data type เหมือนกัน ถ้าเป็นรูป ก็จะต้องมี Data type เป็น uint8 มาลองใช้งานกันเลยดีกว่าครับ
Operators (ตัวดำเนินการ)
มันก็จะถูกแบ่งแยกย่อยไปอีก เราจะดูเฉพาะตัวที่สำคัญๆนะครับ
1. Arithmetic Operators
จะเป็นตัวดำเนินเกี่ยวกับ Math โดยจะสรุปไว้ตามตารางข้างล่างนะครับ กำหนดให้ a = 10, b = 7
Operator
Description
Example
Result
0
+
การบวก
a + b
17.0
1
-
การลบ
a - b
3.0
2
*
การคูณ
a * b
70.0
3
/
การหาร
a / b
1.4285714
4
%
การหาเศษ จากการหาร
a % b
3.0
5
**
การยกกำลัง
a**b
10000000.0
6
//
การหารแบบไม่เอาเศษ
a//b
1.0
2. Assignment Operators
จะเป็นการให้ค่าตัวแปร กำหนดให้ a = 10
Operator
Example
Result of a
+=
a += 3
13.0
-=
a -= 3
7.0
*=
a *= 3
30.0
/
a / b
1.4285714
%
a %= 3
1.0
** =
a** = 3
1000.0
//=
a//=3
1.0
3. Comparison Operators
จะเป็นการเปรียบเทียบ กำหนดให้ a = 10, b = 10
Operator
Description
Example
Result
0
==
ความเท่ากัน
a == b
True
1
!=
ความไม่เท่ากัน
a != b
False
2
>
มากกว่า
a > b
False
3
<
น้อยกว่า
a < b
False
4
>=
มากกว่าเท่ากับ
a >= b
True
5
<=
น้อยกว่าเท่ากับ
a <= b
True
4. Logical Operators
เป็นการเปรียบเทียบทางตรรกศาสตร์ กำหนดให้ a = True, b = False
Operator
Description
Example
Result
and
ต้องจริงทั้ง 2 ค่า ถึงจะเป็นจริง นอกนั้นเป็นเท็จ
a and b
False
or
ต้องเท็จ 2 ค่า ถึงจะเป็นเท็จ นอกนั้นเป็นจริง
a or b
True
not
ให้ค่าตรงข้าม
not (a and a)
False
If-Else Condition
เป็นการเขียนเพื่อควบคุมการทำงานของโปรแกรมให้เป็นไปตาม ทางเลือก ที่เราตั้งไว้ เช่น ตัวอย่างที่ฮิตก็เป็นการตัดเกรด 80 มากกว่าเท่ากับได้ A, 70 -> B, 60 -> C, 40 -> D และต่ำกว่า 40 ได้ F
โดยรูปแบบการเขียนก็มี 3 แบบ
1. if condition
ถ้า if เป็นจริงก็ทำ statement1
2. if-else condition
ในส่วนของ if else ก็แปลตรงตัวเลยครับ ถ้า if เป็นจริงก็ทำ statement1 ถ้าไม่จริงก็ทำ statement2 ใน else
3. if-elif-else condition
ในส่วนนี้ก็ถ้า if เป็นจริงก็ทำ statement1 ถ้าไม่จริงก็ไล่ check ทีละ elif ถ้า codition ไหนเป็นจริงก็เข้าไปทำ statement นั้น โดย elif จะมีมากกว่า 2 อันก็ได้ สุดท้ายถ้าไม่มี condition ไหนที่เป็นจริงเลยก็ทำ else
มาดูโค้ดตัดเกรดกันครับ
While Loop
เป็นการทำอะไรที่ต้องวนหลายๆรอบจน กระทั่ง เงื่อนไขที่ตั้งไว้เป็น False เช่น ให้แสดงเลข 1 ถึง n
จากโค้ดข้างบนเราจะเห็นว่ามีการตั้ง Condition ไว้ว่า ถ้า i <= n ก็ยังให้ loop ทำงานอยู่ ซึ่งในการทำงานแต่ละรอบ ค่า i ก็จะถูกเพิ่มค่าทีละ 1 เราจะเห็นว่าเมื่อค่า i เพิ่มค่าเป็น n+1 Loop ก็จะไม่ทำงาน
For Loops
การทำงานคล้ายๆ กับ while loop ต่างกันที่ for มีการกำหนดตัวแปร และเพิ่มค่าตรงส่วนของ Condition เลย โดยการเขียน for มีลักษณะ ดังนี้
อันนี้เป็นการสรุปคร่าวๆนะครับ เนื่องจากว่าช่วงนี้ต้องสอน Python ในรุ่นน้องด้วยเวลาที่จำกัดก็เลยลองเขียนบทความนี้ขึ้นมา เดี๋ยวจะมาอัพเดทเรื่อยๆครับ
ที่มาบทความ : skconan.com.
Last updated