Python 101

Python 101 ฉบับรวบลัด

การแสดงผล และรับข้อมูล

เริ่มแรกลอง print “hello world” กันก่อน

print("hello_world")

Data type (ประเภทข้อมูล)

1. String

String ก็เป็นตัวแปรที่เก็ยตัวอักษร หรือข้อความ คราวนี้เรามาลองรับ input เป็นชื่อเก็บใส่ตัวแปรที่ชื่อว่า name แล้ว print ออกมากันครับ

ในที่นี้ตัวแปร name ก็จะมี data type คือ string นั้นเอง

name = input("What is your name? ")
print("Hello ",name)

2. Numeric

Type Description
Integer จำนวนเต็ม เช่น 10, 20
Float ทศนิยม เช่น 10.0, 20.5

ต่อมาลองรับ input เป็น integer 1 ตัว และ float 1 ตัว แล้วเอามาบวกกันแสดงผลรับเป็น integer

num1 = input()

# Cast string to integer
num1 = int(num1)

num2 = input()

# Cast string to float
num2 = float(num2)

total  = num1 + num2

# Cast to integer
total = int(total)

print("total:",total)

3. List

List ก็คือตัวแปรที่คล้ายๆกับ array ใน C/C++ หรือภาษาอื่นๆนั้นเอง สำหรับใครที่เขียน python เป็นภาษาแรก ให้นึกถึง ตารางที่เก็บข้อมูล

สมมติ เรามีข้อมูลคะแนนนักเรียนอยู่ 5 คน ดังนี้ 20, 40, 30, 50, 35 เราก็จะสร้างตัวแปรชื่อ score ขึ้นมา

โดยที่ List จะเก็บค่าไว้ใน [] แต่ละข้อมูลคั่นด้วย comma (,)

score = [20, 40, 30, 50, 35]

แล้วถ้าเรา อยากเก็บว่าเพื่อนในห้องเรียนนั่งตรงไหนกันบ้าง ให้เรามีเพื่อน 12 คน

มีเก้าอี้อยู่ 4 แถว แถวละ 3 ตัว เราก็วาดตารางขึ้นมาก่อน

คอลัมน์ 1 คอลัมน์ 2 คอลัมน์ 3
0 แถว1 A J
1 แถว2 F B
2 แถว3 D C
3 แถว4 G E

เราก็จะสร้าง List แบบนี้

table = [
    ['A','J','L'],  # row 1 
    ['F','B','I'],  # row 2 
    ['D','C','H'],  # row 3 
    ['G','E','K'],  # row 4         
]

print(table)

แต่ในการเขียน Program เราจะเริ่มนับแถว กับคอลัมน์ ตั้งแต่ 0 ใช้คำว่า Index ในการบอกตำแน่ง

่เช่น อยากรู้ว่า K นั่งอยู่ตรงไหน ก็คือ แถว 4 คอลัมน์ 3 พอเป็นในทาง programming เราก็จะบอกว่า K อยู่ที่ Index 3,2

และถ้าทุกคนสังเกต 2 ตัวอย่างผ่านมาจะรู้ว่า List สามารถเก็บตัวแปรประเภทใดก็ได้ สามารถเก็บตัวแปรคนละชนิด ไว้ใน List เดียวกันก็ได้ เช่น

person = ["sk", "conan", "20"]

print("Name:", person[0], " Lastname:", person[1], " Age:", person[2])

4. Numpy array

อันนี้ผมอยากให้ทุกคนได้รู้จักเพราะว่า blog ของผมก็เป็น blog เกี่ยวกับ image processing กับ Computer vision เนอะ แล้วมันเกี่ยวกันยังไงใช่มั้ยครับ

เพราะว่า Library OpenCV ที่เราใช้ในการทำ Image processing กันเนี่ยมันจะเก็บข้อมูลรูปภาพไว้ใน Numpy array

Numpy array คือ ตารางหรือ array ที่เก็บค่าข้อมูลที่มี Data type เหมือนกัน ถ้าเป็นรูป ก็จะต้องมี Data type เป็น uint8 มาลองใช้งานกันเลยดีกว่าครับ

import numpy as np

# Covert list to numpy array that have a datatype is uint8
a = np.array([1,2,3,4], np.uint8)
print(a)

# Show type of variable a
print(type(a))

# Show Data type in variable a
print(a.dtype)

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

if condition:
    statement 1

2. if-else condition

ในส่วนของ if else ก็แปลตรงตัวเลยครับ ถ้า if เป็นจริงก็ทำ statement1 ถ้าไม่จริงก็ทำ statement2 ใน else

if condition:
    statement 1
else:
    statement 2

3. if-elif-else condition

ในส่วนนี้ก็ถ้า if เป็นจริงก็ทำ statement1 ถ้าไม่จริงก็ไล่ check ทีละ elif ถ้า codition ไหนเป็นจริงก็เข้าไปทำ statement นั้น โดย elif จะมีมากกว่า 2 อันก็ได้ สุดท้ายถ้าไม่มี condition ไหนที่เป็นจริงเลยก็ทำ else

if condition 1:
    statement 1
elif condition 2:
    statement 2
elif condition 3:
    statement 3
else:
    statement 4

มาดูโค้ดตัดเกรดกันครับ

    score = int(input())
    if score >= 80:
        print("You got A")
    elif  score >= 70:
        print("You got B")
    elif  score >= 60:    
        print("You got C")
    elif  score >= 40:
        print("You got D")
    else:
        print("You got F")

While Loop

เป็นการทำอะไรที่ต้องวนหลายๆรอบจน กระทั่ง เงื่อนไขที่ตั้งไว้เป็น False เช่น ให้แสดงเลข 1 ถึง n

n = int(input())

i = 1

while i <= n:
    print(i)
    i += 1

จากโค้ดข้างบนเราจะเห็นว่ามีการตั้ง Condition ไว้ว่า ถ้า i <= n ก็ยังให้ loop ทำงานอยู่ ซึ่งในการทำงานแต่ละรอบ ค่า i ก็จะถูกเพิ่มค่าทีละ 1 เราจะเห็นว่าเมื่อค่า i เพิ่มค่าเป็น n+1 Loop ก็จะไม่ทำงาน

For Loops

การทำงานคล้ายๆ กับ while loop ต่างกันที่ for มีการกำหนดตัวแปร และเพิ่มค่าตรงส่วนของ Condition เลย โดยการเขียน for มีลักษณะ ดังนี้

# Loop 1 
for i in range(start, stop, step):
    statement

# Loop 2 
for i in range(start, stop)
    statement

อันนี้เป็นการสรุปคร่าวๆนะครับ เนื่องจากว่าช่วงนี้ต้องสอน Python ในรุ่นน้องด้วยเวลาที่จำกัดก็เลยลองเขียนบทความนี้ขึ้นมา เดี๋ยวจะมาอัพเดทเรื่อยๆครับ

ที่มาบทความ : skconan.com.