การเขียนโปรแกรมภาษาไพธอนเบื้องต้น

and, as, assert, break, class, continue, def, del, elif, else, except, exec, finally, for, from, global, if, import, in, is, lambda, not, or, pass, print, raise, return, try, while, with, yield

การตั้งชื่อตัวแปร นิยมใช้การตั้งชื่อแบบ

result = "abcdefg"

# a b c d e f g
# [0] [1] [2] [3] [4] [5] [6] # นับจาก หน้าไปหลัง
# [-7] [-6] [-5] [-4] [-3] [-2] [-1] # นับจาก หลังไปหน้า
print(result[3]) # d
print(result[6]) # g
print(result[-2]) # f
1 ก็คือใช้ตัวพิมพ์เล็กทั้งหมดและแบ่งคำด้วย
result = "abcdefg"

# a b c d e f g
# [0] [1] [2] [3] [4] [5] [6] # นับจาก หน้าไปหลัง
# [-7] [-6] [-5] [-4] [-3] [-2] [-1] # นับจาก หลังไปหน้า
print(result[3]) # d
print(result[6]) # g
print(result[-2]) # f
2 เช่น
result = "abcdefg"

# a b c d e f g
# [0] [1] [2] [3] [4] [5] [6] # นับจาก หน้าไปหลัง
# [-7] [-6] [-5] [-4] [-3] [-2] [-1] # นับจาก หลังไปหน้า
print(result[3]) # d
print(result[6]) # g
print(result[-2]) # f
3 เป็นต้น

Comment

คอมเม้นของ Python

  • hash (#) ไปจนสิ้นสุดบรรทัดนั้นๆ
  • แบบหลายบรรทัดจะใช้ “”” “”” ตามตัวอย่างนี้
""" Use * for multiplication of a number The * is a multiplication operator in Python To print the value, use the print() function """ print(3 * 7)

Variables

  • result = "abcdefg"

    # a b c d e f g
    # [0] [1] [2] [3] [4] [5] [6] # นับจาก หน้าไปหลัง
    # [-7] [-6] [-5] [-4] [-3] [-2] [-1] # นับจาก หลังไปหน้า
    print(result[3]) # d
    print(result[6]) # g
    print(result[-2]) # f
    4 คือ chained assignment เป็นการกำหนดค่า 2 ให้กับ a และ b
  • ตัวแปร (variable) สามารถตั้งชื่อได้เฉพาะ ตัวอักษร ตัวเลข และ underscore(_) ไม่สามารถขึ้นต้นด้วยตัวเลขได้
  • ตัวเลขจะมี Type อยู่ 2 ประเภทคือ
    result = "abcdefg"

    # a b c d e f g
    # [0] [1] [2] [3] [4] [5] [6] # นับจาก หน้าไปหลัง
    # [-7] [-6] [-5] [-4] [-3] [-2] [-1] # นับจาก หลังไปหน้า
    print(result[3]) # d
    print(result[6]) # g
    print(result[-2]) # f
    5 และ
    result = "abcdefg"

    # a b c d e f g
    # [0] [1] [2] [3] [4] [5] [6] # นับจาก หน้าไปหลัง
    # [-7] [-6] [-5] [-4] [-3] [-2] [-1] # นับจาก หลังไปหน้า
    print(result[3]) # d
    print(result[6]) # g
    print(result[-2]) # f
    6 โดย
    result = "abcdefg"

    # a b c d e f g
    # [0] [1] [2] [3] [4] [5] [6] # นับจาก หน้าไปหลัง
    # [-7] [-6] [-5] [-4] [-3] [-2] [-1] # นับจาก หลังไปหน้า
    print(result[3]) # d
    print(result[6]) # g
    print(result[-2]) # f
    5 คือตัวเลขธรรมดา ส่วน
    result = "abcdefg"

    # a b c d e f g
    # [0] [1] [2] [3] [4] [5] [6] # นับจาก หน้าไปหลัง
    # [-7] [-6] [-5] [-4] [-3] [-2] [-1] # นับจาก หลังไปหน้า
    print(result[3]) # d
    print(result[6]) # g
    print(result[-2]) # f
    6 คือตัวเลขที่มีจุดทศนิยม
  • เช็ค Type ของตัวแปรต่างๆ ได้โดยฟังชั่น
    result = "abcdefg"

    # a b c d e f g
    # [0] [1] [2] [3] [4] [5] [6] # นับจาก หน้าไปหลัง
    # [-7] [-6] [-5] [-4] [-3] [-2] [-1] # นับจาก หลังไปหน้า
    print(result[3]) # d
    print(result[6]) # g
    print(result[-2]) # f
    9 เช่น
    has_a = "A" in "bcdAefg"
    has_aefg = "Aefg" in "bcdAefg"
    print(has_a) # True
    print(has_aefg) # True
    len() เป็นฟังค์ชันที่เอาไว้นับจำนวนความยาวของ String
    0
  • เราสามารถ convert จาก integer ไป float หรือ float ไป integer ได้ โดยใช้ built-in functions เช่น
float_number = float(10) # แปลงค่า integer เป็น float
number = int(35.321) # แปลงค่า float เป็น integer
word = str(number) # แปลงค่า integer เป็น string
  • augmented assignment คือการรวม operation และ assignment 2 คำสั่ง ด้วยการใช้เพียง statement เดียว เช่น
result = 10
result += 5 # result = 15
#เป็นการ เพิ่มค่า result เท่ากับ 5 และอัพเดทค่า รวมกลายเป็น result จะเท่ากับ 15
  • Boolean มีค่าได้เพียงแค่ 2 ชนิดคือ ไม่ True ก็ False โดยใช้เครื่องหมาย == เรียกว่า equality operator ในการเช็คหรือเปรียบเทียบตัวแปรสองตัว ว่ามีค่าเหมือนกันหรือไม่ เช่น
one = 1
two = 2
print(one == two) # False
  • นอกจากการเปรียบเทียบด้วย == แล้ว เรายังสามารถเปรียบเทียบด้วย >= (มากกว่าหรือเท่ากับ) <= (น้อยกว่าหรือเท่ากับ) > (มากกว่า) และ < (น้อยกว่า)

ตัวดำเนินการในภาษา

ตัวดำเนินการทางคณิตศาสตร์

  • + บวก เช่น a + b มีค่า 30
  • – ลบ เช่น a — b มีค่า -10
  • * คูณ เช่น a * b มีค่า 200
  • / หาร เช่น b / a มีค่า 2
  • % เศษของการหาร เช่น b % a มีค่า 0
  • ** ยกกำลัง เช่น a**b หมายถึง 10 ยกกำลัง 20
  • // หารปัดเศษทิ้ง เช่น 9//2 is มีค่า 4 และ 9.0//2.0 มีค่า 4.0

ตัวดำเนินการเปรียบเทียบ

  • == เช็คว่าค่าสองค่าเท่ากันหรือไม่ เช่น (a == b) เป็นเท็จ
  • != เช็คว่าค่าสองค่าไม่เท่ากันหรือไม่ เช่น(a != b) เป็นจริง
  • <> เช็คว่าค่าสองค่าไม่เท่ากันหรือไม่ เช่น(a <> b) เป็นจริง. เหมือนกับ !=
  • > เช็คว่าค่าทางซ้ายมากกว่าค่าทางขวาหรือไม่ เช่น(a > b) เป็นเท็จ
  • < เช็คว่าค่าทางซ้ายน้อยกว่าค่าทางขวาหรือไม่ เช่น(a < b) เป็นจริง
  • >= เช็คว่าค่าทางซ้ายมากกว่าหรือเท่ากับค่าทางขวาหรือไม่ เช่น(a >= b) เป็นเท็จ
  • <= เช็คว่าค่าทางซ้ายน้อยกว่าหรือเท่ากับค่าทางขวาหรือไม่ เช่น (a <= b) เป็นจริง.

ตัวดำเนินการกำหนดค่า

  • = ตัวแปรทางซ้ายถูกกำหนดให้มีค่าเท่ากับทางขวา เช่น c = a + b เป็นการกำหนดค่าให้กับ c โดยให้มีค่าเท่ากับ a + b
  • += บวกค่าของทางซ้ายด้วยค่าทางขวา เช่น c += a หมายความว่า c = c + a
  • -= ลบค่าของทางซ้ายด้วยค่าทางขวา เช่น c -= a หมายความว่า c = c — a
  • *= คูณค่าของทางซ้ายด้วยค่าทางขวา เช่น c *= a หมายความว่า c = c * a
  • /= หารค่าของทางซ้ายด้วยค่าทางขวา เช่น c /= a หมายความว่า c = c / a
  • %= หารเอาเศษค่าของทางซ้ายด้วยค่าทางขวา เช่น c %= a หมายความว่า c = c % a
  • **= ยกกำลังค่าของทางซ้ายด้วยค่าทางขวา เช่น c **= a หมายความว่า c = c ** a
  • //= หารปัดเศษทิ้งค่าของทางซ้ายด้วยค่าทางขวา เช่น c //= a หมายความว่า c = c // a

ตัวดำเนินการทางตรรกะ

  • and เช็คว่าทั้งสองตัวเป็นจริงถึงจะคืนค่าจริง กรณีอื่นๆเป็น เท็จทั้งหมด เช่น (a and b) เป็นจริง
  • or ถ้าทั้งสองตัวหนึ่งเป็นเท็จจะคืนค่า เท็จ กรณีอื่นๆ เป็นจริงทังหมด เช่น (a or b) เป็นจริง
  • notคืนค่าตรงกันข้ามของค่าปัจจุบัน เช่น not(a and b) เป็นเท็จ เพราะ a and b เป็นจริง

ตัวดำเนินการสมาชิก

ตัวดำเนินการสมาชิกเป็น ตัวดำเนินการพิเศษของภาษา Python จะไม่พบในภาษาอื่น ไว้สำหรับเช็คว่า ค่าที่เรากำลังสนใจเป็นสมาชิกของตัวแปรนั้นๆ หรือไมจะคืนค่าเป็น จริงหรือเท็จแล้วแต่กรณีใช้กับ such as strings, lists, หรือ tuple

  • in จะคืนค่าเป็นจริงถ้าพบค่าในตัวแปรที่เราสนใจ ในกรณีอื่นเป็นเท็จทั้งหมด เช่น x in y, คือค่าเป็น 1 ถ้า x เป็นสมาชิกของ y
  • not in จะคืนค่าเป็นจริงถ้าไม่พบค่าในตัวแปรที่เราสนใจ ในกรณีอื่นเป็นเท็จทั้งหมด เช่น x not in y, คือค่าเป็น 1 ถ้า x ไม่เป็นสมาชิกของ y

นอกจากนี้ Python ยังมี Identity Operators เพื่อเช็คว่ามีตัวแปรที่ต้องการทราบอยู่ใน memory หรือเปล่า คือ is และ not is

ลำดับความสำคัญของตัวดำเนินการใน Python Operators Precedence

operators ทั้งหมดของ ไพทอน ตามลำดับความสำคัญจากมากไปน้อย

  • ** : ยกกำลัง
  • ~ +-: complement, unary plus and minus
  • * / % //: คูณ, หาร, modulo and floor division
  • + –: บวก, ลบ
  • >> << : Right and left bitwise shift
  • & : Bitwise ‘AND’
  • ^ | : Bitwise exclusive `OR’ and regular `OR’
  • <= < > >= : Comparison operators
  • <> == != : Equality operators
  • = %= /= //= -= += *= **= : Assignment operators
  • is is not : Identity operators
  • in not in : Membership operators
  • not or and : Logical operators

นอกจากใน list แล้วยังมีตัวดำเนินการที่มีลำดับความคำคัญสูงสุดคือ “(…)”

Strings

การรวม String 2 ตัวเข้าด้วยกัน (combine) จะใช้เครื่องหมาย

has_a = "A" in "bcdAefg"
has_aefg = "Aefg" in "bcdAefg"
print(has_a) # True
print(has_aefg) # True
len() เป็นฟังค์ชันที่เอาไว้นับจำนวนความยาวของ String
1 เช่น

name = "test"
hello = "Hello " + name
print(hello) # Hello test

Python สามารถใช้ String คูณด้วย integer ได้ด้วย เช่น

has_a = "A" in "bcdAefg"
has_aefg = "Aefg" in "bcdAefg"
print(has_a) # True
print(has_aefg) # True
len() เป็นฟังค์ชันที่เอาไว้นับจำนวนความยาวของ String
2

String ใน Python เก็บค่าแต่ละ characters เป็น index โดยเริ่มต้นจาก index = 0 ตัวอย่าง คำว่า

has_a = "A" in "bcdAefg"
has_aefg = "Aefg" in "bcdAefg"
print(has_a) # True
print(has_aefg) # True
len() เป็นฟังค์ชันที่เอาไว้นับจำนวนความยาวของ String
3

สามารถใช้ค่าติดลบ ในการเข้าถึง index ของ String ได้ โดยจะเริ่มทำการนับจากด้านหลังมาด้านหน้า

result = "abcdefg"

# a b c d e f g
# [0] [1] [2] [3] [4] [5] [6] # นับจาก หน้าไปหลัง
# [-7] [-6] [-5] [-4] [-3] [-2] [-1] # นับจาก หลังไปหน้า
print(result[3]) # d
print(result[6]) # g
print(result[-2]) # f

สามารถเช็คว่าใน String มีคำหรือตัวอักษรอยู่ใน String หรือไม่ผลลัพธ์จะเป็น boolean True หรือ False ด้วยการใช้ in keyword เช่น

has_a = "A" in "bcdAefg"
has_aefg = "Aefg" in "bcdAefg"
print(has_a) # True
print(has_aefg) # True
len() เป็นฟังค์ชันที่เอาไว้นับจำนวนความยาวของ String

“”” (triple-quoted) เอาไว้สำหรับประกาศ String แบบหลายๆบรรทัด

phrase = """
It is a really long string
triple-quoted strings are used
to define multi-line strings
"""
length = len(phrase)
print(length) # 88

Backslash (\) เอาไว้ใช้สำหรับ escape character กรณีต้องการพิมพ์ ” หรือ ‘ ลงใน String ซึ่งโดยปกติ String จะมี ” ที่เริ่มต้นและสุดของ String หากแทรก ” ใน String โปรแกรมจะมอง ” ใน String กลายเป็นจุดสิ้นสุดของ String กลายเป็น error ไป วิธีแก้ ก็คือต้องใช้ \ เช่น

print("You said \"You loved me\"")   # You said "You loved me"
print('My name\'s John Doe') # My name's John Doe

lower() เป็นเมธอดสำหรับทำให้ String กลายเป็นตัวพิมพ์เล็ก ขณะที่ upper() เอาไว้สำหรับเปลี่ยน String เป็นตัวพิมพ์ใหญ่ การใช้งานเมธอดเราจะใช้ . (dot) ตามด้วยชื่อเมธอด เช่น

"JohnDoe".upper()   # JOHNDOE
"JohnDoe".lower() # johndoe

string format ใช้ % ตามหลัง String ร่วมกับตัวแปร เพื่อกำหนด format ของ String ที่เราต้องการ หลักการคือ จะเปลี่ยนค่า %s ใน String กลายเป็นตัวแปรที่เรากำหนดไว้ เช่น

float_number = float(10) # แปลงค่า integer เป็น float
number = int(35.321) # แปลงค่า float เป็น integer
word = str(number) # แปลงค่า integer เป็น string
0

has_a = "A" in "bcdAefg"
has_aefg = "Aefg" in "bcdAefg"
print(has_a) # True
print(has_aefg) # True
len() เป็นฟังค์ชันที่เอาไว้นับจำนวนความยาวของ String
4 เป็น symbol สำหรับ String ส่วน
has_a = "A" in "bcdAefg"
has_aefg = "Aefg" in "bcdAefg"
print(has_a) # True
print(has_aefg) # True
len() เป็นฟังค์ชันที่เอาไว้นับจำนวนความยาวของ String
5 เป็น symbol สำหรับใช้แทนตัวเลข

Data structures

list คือ data structure ที่เอาไว้เก็บข้อมูลหลายๆข้อมูล ค่าที่เก็บใน list ต้องเป็นชนิดเดียวกัน เช่น

float_number = float(10) # แปลงค่า integer เป็น float
number = int(35.321) # แปลงค่า float เป็น integer
word = str(number) # แปลงค่า integer เป็น string
1

การเพิ่มข้อมูลลงไปใน list ใช้เมธอด append() และ list เป็น mutable เราสามารถเปลี่ยนข้อมูลใน list ได้ เช่น

float_number = float(10) # แปลงค่า integer เป็น float
number = int(35.321) # แปลงค่า float เป็น integer
word = str(number) # แปลงค่า integer เป็น string
2

Tuples คือ list ที่ไม่สามารถเปลี่ยนแปลงข้อมูลได้ ไม่สามารถเพิ่ม ลบ หรือแก้ไขข้อมูลเหมือน list ได้ มี syntax ง่ายๆคือ ขึ้นต้นและปิดด้วย ( และ ) ขั้นข้อมูลด้วย comma เช่น

float_number = float(10) # แปลงค่า integer เป็น float
number = int(35.321) # แปลงค่า float เป็น integer
word = str(number) # แปลงค่า integer เป็น string
3

Dictionary คล้ายคลึงกับ list แต่ต่างกันที่ Dictionary สามารถเข้าถึงข้อมูลได้ด้วยการใช้ key แทนที่จะเป็น index แบบ list (คล้ายคลึงกับ Ruby Hash, Java HashMap หรือ JSON ท่าเทียบกับภาษาอื่นๆ)

float_number = float(10) # แปลงค่า integer เป็น float
number = int(35.321) # แปลงค่า float เป็น integer
word = str(number) # แปลงค่า integer เป็น string
4

in นอกจากเช็คตัวอักษรใน String ได้แล้ว ก็ยังสามารถเช็คว่ามี item ที่ต้องการใน list หรือ dictionary ได้อีกด้วย

Condition expressions

Boolean operators ใช้เปรียบเทียบ statement ผลลัพธ์เป็น

has_a = "A" in "bcdAefg"
has_aefg = "Aefg" in "bcdAefg"
print(has_a) # True
print(has_aefg) # True
len() เป็นฟังค์ชันที่เอาไว้นับจำนวนความยาวของ String
6 หรือ
has_a = "A" in "bcdAefg"
has_aefg = "Aefg" in "bcdAefg"
print(has_a) # True
print(has_aefg) # True
len() เป็นฟังค์ชันที่เอาไว้นับจำนวนความยาวของ String
7

has_a = "A" in "bcdAefg"
has_aefg = "Aefg" in "bcdAefg"
print(has_a) # True
print(has_aefg) # True
len() เป็นฟังค์ชันที่เอาไว้นับจำนวนความยาวของ String
8 จะเป็น
has_a = "A" in "bcdAefg"
has_aefg = "Aefg" in "bcdAefg"
print(has_a) # True
print(has_aefg) # True
len() เป็นฟังค์ชันที่เอาไว้นับจำนวนความยาวของ String
6 ก็ต่อเมื่อ 2 กรณีเป็นจริงทั้งคู่นอกนั้นเป็น
has_a = "A" in "bcdAefg"
has_aefg = "Aefg" in "bcdAefg"
print(has_a) # True
print(has_aefg) # True
len() เป็นฟังค์ชันที่เอาไว้นับจำนวนความยาวของ String
7

phrase = """
It is a really long string
triple-quoted strings are used
to define multi-line strings
"""
length = len(phrase)
print(length) # 88
1 จะเป็นจริง
has_a = "A" in "bcdAefg"
has_aefg = "Aefg" in "bcdAefg"
print(has_a) # True
print(has_aefg) # True
len() เป็นฟังค์ชันที่เอาไว้นับจำนวนความยาวของ String
6 ก็ต่อเมื่อ กรณีใดเป็นจริง จะเป็น
has_a = "A" in "bcdAefg"
has_aefg = "Aefg" in "bcdAefg"
print(has_a) # True
print(has_aefg) # True
len() เป็นฟังค์ชันที่เอาไว้นับจำนวนความยาวของ String
7 เมื่อทั้ง 2 กรณีเป็นเท็จ

phrase = """
It is a really long string
triple-quoted strings are used
to define multi-line strings
"""
length = len(phrase)
print(length) # 88
4 เอาไว้กลับค่าให้ตรงข้าม เช่น จาก
has_a = "A" in "bcdAefg"
has_aefg = "Aefg" in "bcdAefg"
print(has_a) # True
print(has_aefg) # True
len() เป็นฟังค์ชันที่เอาไว้นับจำนวนความยาวของ String
6 หากมี
phrase = """
It is a really long string
triple-quoted strings are used
to define multi-line strings
"""
length = len(phrase)
print(length) # 88
4 ก็จะกลายเป็น
has_a = "A" in "bcdAefg"
has_aefg = "Aefg" in "bcdAefg"
print(has_a) # True
print(has_aefg) # True
len() เป็นฟังค์ชันที่เอาไว้นับจำนวนความยาวของ String
7

ลำดับความสำคัญ ไม่ได้เริ่มจากซ้ายไปขวา แต่นับจาก

phrase = """
It is a really long string
triple-quoted strings are used
to define multi-line strings
"""
length = len(phrase)
print(length) # 88
4
has_a = "A" in "bcdAefg"
has_aefg = "Aefg" in "bcdAefg"
print(has_a) # True
print(has_aefg) # True
len() เป็นฟังค์ชันที่เอาไว้นับจำนวนความยาวของ String
8 และ
phrase = """
It is a really long string
triple-quoted strings are used
to define multi-line strings
"""
length = len(phrase)
print(length) # 88
1 ตามลำดับ

print("You said \"You loved me\"")   # You said "You loved me"
print('My name\'s John Doe') # My name's John Doe
1 statement เอาไว้เช็คเงื่อนไขว่าเป็นจริงหรือไม่ ถ้าจริงก็จะทำงานในส่วนของ statement (Python จะใช้ indentation ด้วย 4 spaces)

float_number = float(10) # แปลงค่า integer เป็น float
number = int(35.321) # แปลงค่า float เป็น integer
word = str(number) # แปลงค่า integer เป็น string
5

ตัวอย่างเช่น

float_number = float(10) # แปลงค่า integer เป็น float
number = int(35.321) # แปลงค่า float เป็น integer
word = str(number) # แปลงค่า integer เป็น string
6

กรณี if/else หากเช็คเงื่อนไขเป็นจริง จะทำใน if แต่ถ้าไม่ใช่ก็จะทำใน else เช่น

float_number = float(10) # แปลงค่า integer เป็น float
number = int(35.321) # แปลงค่า float เป็น integer
word = str(number) # แปลงค่า integer เป็น string
7

else if กรณีที่ต้องการเอาไว้เช็คหลายๆเงื่อนไข โดยใช้คีเวิร์ด elif เช่น

float_number = float(10) # แปลงค่า integer เป็น float
number = int(35.321) # แปลงค่า float เป็น integer
word = str(number) # แปลงค่า integer เป็น string
8

กรณี เงื่อนไขเกี่ยวกับ มากกว่าน้อยกว่า เราสามารถยุบเงื่อนไข เขียนสั้นๆแบบนี้ก็ได้ (อันนี้ผมเพิ่งรู้จากที่ตัว IDE มันแนะนำ Simplify chained comparison เช่น

float_number = float(10) # แปลงค่า integer เป็น float
number = int(35.321) # แปลงค่า float เป็น integer
word = str(number) # แปลงค่า integer เป็น string
9

แต่จริงๆแล้ว if/else เรามีแค่เงื่อนไขเดียวก็ได้

result = 10
result += 5 # result = 15
#เป็นการ เพิ่มค่า result เท่ากับ 5 และอัพเดทค่า รวมกลายเป็น result จะเท่ากับ 15
0

การทำงาน Switch ในไพทอน Switch Statement Selection Python

ใน ไพทอนไม่มี Switch ให้ใช้ ตัวอย่างเช่น จะเขียน

result = 10
result += 5 # result = 15
#เป็นการ เพิ่มค่า result เท่ากับ 5 และอัพเดทค่า รวมกลายเป็น result จะเท่ากับ 15
1

แบบใน PHP ใน ไพทอนไม่มี Switch แบบนี้ให้ใช้ เป็นภาษาที่แปลกแตกต่างจากภาษาอื่น (ภาษาอื่นๆเค้ามีกันหมด)
แต่เขียนอีกแบบได้ ได้ผลแบบเดียวกันกับ php ถ้าเขียนเป็น ไพทอน ได้ตามนี้

result = 10
result += 5 # result = 15
#เป็นการ เพิ่มค่า result เท่ากับ 5 และอัพเดทค่า รวมกลายเป็น result จะเท่ากับ 15
2

Loops

For Loop มีรูปแบบ for i in range: เช่น วนลูปปริ้น 0–4

result = 10
result += 5 # result = 15
#เป็นการ เพิ่มค่า result เท่ากับ 5 และอัพเดทค่า รวมกลายเป็น result จะเท่ากับ 15
3

วนลูปปริ้นข้อมูลในลิสท์ [2, 3, 5, 7]

result = 10
result += 5 # result = 15
#เป็นการ เพิ่มค่า result เท่ากับ 5 และอัพเดทค่า รวมกลายเป็น result จะเท่ากับ 15
4

loop กับ String

result = 10
result += 5 # result = 15
#เป็นการ เพิ่มค่า result เท่ากับ 5 และอัพเดทค่า รวมกลายเป็น result จะเท่ากับ 15
5

while loop จะ execute เมื่อ condition เป็น true

result = 10
result += 5 # result = 15
#เป็นการ เพิ่มค่า result เท่ากับ 5 และอัพเดทค่า รวมกลายเป็น result จะเท่ากับ 15
6

break ไว้ใช้หยุด loop

continue เอาไว้ใช้ข้ามโค๊ดส่วนอื่นๆภายใน loop

Functions

ฟังค์ชันใน Python ประกาศด้วย keyword def เป็นส่วนของ code block

result = 10
result += 5 # result = 15
#เป็นการ เพิ่มค่า result เท่ากับ 5 และอัพเดทค่า รวมกลายเป็น result จะเท่ากับ 15
7

ฟังค์ชันสามารถรับ parameter ก็ได้เช่นกัน โดยกำหนด parameters ภายใน ()

result = 10
result += 5 # result = 15
#เป็นการ เพิ่มค่า result เท่ากับ 5 และอัพเดทค่า รวมกลายเป็น result จะเท่ากับ 15
8

ฟังค์ชันสามารถเซต default parameter ได้ในกรณีที่เราไม่ได้ส่ง parameter ให้กับฟังค์ชัน เช่น

result = 10
result += 5 # result = 15
#เป็นการ เพิ่มค่า result เท่ากับ 5 และอัพเดทค่า รวมกลายเป็น result จะเท่ากับ 15
9

การสร้างฟังก์ชั่นไม่ระบุชื่อ ใน ไพทอน The Anonymous Functions

ในการสร้างฟังก์ชั่น ไม่ระบุชื่อ (Anonymous Functions:) นั้นสามารถสร้างโดยใช้ Keyword “lambda” ซึ่งการสร้างฟังก์ชั่นไม่ระบุชื่อนี้ เราจะไม่ใช้ keyword def เพื่อสร้างฟังก์ชั่น

ฟังก์ชั่นไม่ระบุชื่อนี้ สามารถระบุ arguments ให้กับฟังก์ชั่นกี่ตัวก็ได้ แต่การ return ค่าออกจากฟังก์ชั่น return ได้เพียงค่าเดียวเท่านั้น

ข้อจำกัดของ ฟังก์ชั่นไม่ระบุชื่อ

  • ไม่สามารถ เรียกเพื่อให้แสดงค่าได้ เพราะฟังก์ชั่นไม่ระบุชื่อจำเป็นต้องมี expressions ด้วยเสมอ
  • ไม่สามารถเรียกข้าม namespace ถ้า (ถ้า local เป็นคนสร้าง global จะเรียกใช้ไม่ได้)

รูปแบบการสร้าง ฟังก์ชั่นไม่ระบุชื่อ

one = 1
two = 2
print(one == two) # False
0

ตัวอย่าง def_function_lambda.py

one = 1
two = 2
print(one == two) # False
1

จากตัวอย่างจะเป็นการสร้าง ฟังก์ชั่นไม่ระบุชื่อ กำนหดให้เท่ากับ ตัวแปล mylam และทดลองเรียกใช้ ฟังก์ชั่นไม่ระบุชื่อผ่าน ตัวแปล mylam

การสร้างฟังก์ชั่น ส่งค่าออกจากฟังก์ชั่นไพทอน The return Statement

การสร้างฟังก์ชั่น และจำเป็นต้องส่งค่าออกจากฟังก์ชั่นในภาษาไพทอนนั้นจะใช้ keyword คำว่า “return” เหมือนกับภาษาอื่นๆ ประโยชน์ของการสร้างฟังก์ชั่นที่มีการ return นั้นมีประโยชน์ ในการคำนวน หรือ ลดการเขียนโค้ดที่ซ้ำๆ กันและมีการเรียกใช้กันไปมาระหว่างฟังก์ชั่นด้วย กันเอง หรือ เพื่อ กำหนดรูปแบบแสดงผลแบบต่างๆ

ตัวอย่าง def_function_return.py

one = 1
two = 2
print(one == two) # False
2

Classes and objects

  • object คือส่วนที่รวมตัวแปร (variables) และฟังค์ชัน (function) โดย object ถูกสร้างมาจาก class
  • class ก็คือรูปแบบ หรือ template ที่เอาไว้สร้าง object

หากใครไม่รู้จัก Class หรือ Object แนะนำให้อ่านเรื่อง OOP ประกอบครับ concept เดียวกัน เหมือนกันทุกภาษา

  • การสร้างคลาสใน Python
one = 1
two = 2
print(one == two) # False
3
  • การสร้าง object จาก class MyClass
one = 1
two = 2
print(one == two) # False
4
  • ใช้
    print("You said \"You loved me\"")   # You said "You loved me"
    print('My name\'s John Doe') # My name's John Doe
    2 เป็น parameter แรกของ method และเข้าถึงตัวแปร
    print("You said \"You loved me\"")   # You said "You loved me"
    print('My name\'s John Doe') # My name's John Doe
    3 ในคลาสด้วย
    print("You said \"You loved me\"")   # You said "You loved me"
    print('My name\'s John Doe') # My name's John Doe
    4เพราะ
    print("You said \"You loved me\"")   # You said "You loved me"
    print('My name\'s John Doe') # My name's John Doe
    2 จะ refer ไปที่ object ที่สร้างขึ้น
  • print("You said \"You loved me\"")   # You said "You loved me"
    print('My name\'s John Doe') # My name's John Doe
    6 เป็นฟังค์ชันที่เอาไว้สำหรับกำหนดค่าเริ่มต้นให้กับ object (มักจะมี parameter แรกเป็น
    print("You said \"You loved me\"")   # You said "You loved me"
    print('My name\'s John Doe') # My name's John Doe
    2) จะถูกเรียกเมื่อ object ถูกสร้างขึ้น

ไพทอน แบบอ๊อบเจ็ค Python OOP — Object-oriented programming บนภาษาไพทอน

ไพทอนเป็นภาษาสคลิป ที่สนับสนุนการเขียนโปรแกรม แบบ OOP ก่อนศึกษาวิธีการเขียนกัน เรามาทำความรู้จักคำศัพท์ ต่างๆ เหล่านี้กันก่อน
Calss: คือ ต้นแบบสำหรับสร้างออปเจ็คโดยที่ต้นแบบที่ว่าจะถูกสร้างขึ้น โดยจะมีคุณสมบัตของคลาส คือตัวแปลในคลาส เมดทอด สามารถเข้าถึง ได้ด้วย dot(.) เครื่องหมาย .

Class variable: คือตัวแปลที่ใช้ร่วมกันภายในคลาส Class variable: ถูกกำหนดขึ้นภายในคลาส แต่อยู่นอก เมทอด ของคลาส

Instance Variable คือ ตัวแปรช ที่ถูกสร้างและยังคงอยู่ ภายใน method ของ Class ที่สร้างมันขึ้นมาเท่านั้น

Inheritance: คือการถ่ายโอนความสามารถของคลาสหนึ่งไปยังอีกคลาสหนึ่ง เช่นจากคลาสแม่ ไปยังคลาสลูก

Function overloading: คือฟังก์ชั่นที่ชื่อเหมือนกัน แต่สามารถแยการทำงาน ของฟังก์ชั่นแต่ละตัวออกจากกันได้ด้วย arguments

Constructor function: คือฟังก์ชั่นที่สร้างเรียกอัตโนมัตเมื่อมีการสร้างออปเจ็คจากคลาส ใน python ใช้ function __init__()

Instance: คือการสร้าง ออปเจ็คตากคลาส ออเจ็คที่ถูกสร้างขึ้น จะมีชนิดเป็น obj ซึ่งเป็นเอาความสามารถของคลาสทั้งหมด ออกมาเก็บไว้ในตัวแปล

Method :คือฟังก์ชั่นชนิดหนึ่งที่ถูกสร้างขึ้นภายใน คลาส

Object : คือ คือคุณสมบัติต่างๆ ของสิ่งที่เราสร้างขึ้นจากคลาส ไม่ว่าจะเป็น data members (class variables และ instance variables) และ methods.

Create Class OOP

การสร้าง Class ในไพทอน ใช้ keyword Class เหมือนกับภาษาอื่นๆ ในการประกาศสร้างคลาส
รูปแบบการสร้าง Class

one = 1
two = 2
print(one == two) # False
5

ตัวอย่าง สร้าง Class ชื่อ Employee
# ตัวอย่าง class_create.py

one = 1
two = 2
print(one == two) # False
6

การใช้งาน

one = 1
two = 2
print(one == two) # False
7

จากตัวอย่าง สร้าง Class ชื่อ Employee
มี Class variable 1 ตัวคือ empCount ซึ่งจะสามารถใช้งานเป็นตัวแปลที่ค่ายังคงอยู่ ไม่ว่าจะสร้าง ออปเจ็คขึ้นมากี่ตัวกี่ตั้งก็ตาม
มี Method พิเศษ 1 Method คือ __init__ ซึ่ง เป็น constructor function
self argument คือตัวแปลที่ไว้รับค่าข้างนอกเข้ามา

ผลที่ได้

one = 1
two = 2
print(one == two) # False
8

Built-In Class Attributes

จาก บทเรียนก่อนหน้านี้ ไพทอน การสร้างคลาส การเขียนโปรแกรมแบบออปเจ็ค Create Class OOP เมื่อเราสร้างคลาสขึ้นมาเพื่อไว้ใช้งาน ไพทอน จะสร้าง Attributes ของคลาสให้อัตโนมัต และเราสามารถเรียกใช้งานได้เลย ดังนี้

  • __dict__ : Dictionary สำหรับเก็บ namespace ของคลาส
  • __doc__ : คลาสข้อความสำหรับเป็นเอกสาร ถ้าเราไม่ได้กำหนดข้อความอธิบายไว้ ก็จะไม่มี Attributes นี้
  • __name__: ชื่อคลาสที่สร้างขึ้น
  • __module__: ชื่อโมดูลภายในคลาสที่ถูกกำหนดขึ้นมา เหมือนกับ __main__
  • __bases__ : เก็บเป็นตัวแปล tuple เก็บชื่อ bass class

จะตัวอย่าง โค้ด class_create.py จาก บทที่แล้ว

เพิ่ม โค้ดลงไปตามนี้

one = 1
two = 2
print(one == two) # False
9

ผลของการรันจะได้ ดังนี้

name = "test"
hello = "Hello " + name
print(hello) # Hello test
0

OOP กับการสือทอดคลาส Class Inheritance

การเขียนโปรแกรมด้วยไพทอนแบบ Python OOP — Object-oriented programmingเราสามารถสือทอดความสามารถของคลาสที่สร้างไว้อยู่แล้ว (คลาสแม่) มาให้คลาสใหม่ที่กำลังจะขึ้น (คลาสลูก) เหมือนการเขียนแบบ OOP ในภาษา Java หรือ php และในไพทอนสามารถสือทอดความสามารถจากคลาสแม่หลายๆ คลาสมายังคลาสลูกได้

รูปแบบ

name = "test"
hello = "Hello " + name
print(hello) # Hello test
1

# ตัวอย่าง class_inheritance.py

name = "test"
hello = "Hello " + name
print(hello) # Hello test
2

การใช้งาน

name = "test"
hello = "Hello " + name
print(hello) # Hello test
3

ผลที่ได้

name = "test"
hello = "Hello " + name
print(hello) # Hello test
4

Class Inheritance multiple parent classes

การสือทอดคลาส Class Inheritance เราสามารถสืบทอดคลามสามารถจากคลาสแม่หลายๆ คลาสได้ ด้วยดังตัวอย่าง

name = "test"
hello = "Hello " + name
print(hello) # Hello test
5

นอกจากนี้ไพทอนยังมีฟังก์ชั่น ไว้สำหรับดูการสืบทอดของคลาส คือ
issubclass(sub, sup) คืนค่าเป็น boolean เป็นจริงถ้า sub เป็นคลาสลูกของ sup
isinstance(obj, Class) คืนค่าเป็น boolean เป็น จริงถ้า object ที่ต้งอการตรวจสอบถูกสร้างมาจาก Class (ชื่อคลาส) เป็นคลาสแม่หรือคลาสลูกก็ได้

การเรียกใช้งานฟังก์ชั่น ในไพทอน แบบ Object สอน Python

การเรียกใช้งาน ฟังก์ชั่นในลักษณะแบบ Object เหมือนกับ การสร้าง object ในการเขียนภาษาอื่นๆแบบ OOP ในไพทอน จะมองว่า ฟังก์ชั่นเป็น object ตัวหนึ่งได้