Skip to main content

Python

VSCode

Text Editor


Terminal


Functions & Variables

Built-in functions


function หรือคำสั่งที่พื้นฐานที่สุดในการเขียนโปรแกรม คือ การแสดงผลลงบนหน้า terminal

โดยใน python นั้นจะมีคำสั่ง print ซึ่งสามารถใช้ได้ดังนี้ 

print("Hello, world")

ผลลัพธ์:

Hello, world

คำสั่ง print นั้นจะรับค่า (argument) เข้าไป และแสดงผลออกมาบนหน้า terminal  โดยในที่นี้ที่มี "Hello, world" เป็น argument

คำสั่ง print รวมถึงบางคำสั่ง สามารถเรียกใช้โดยไม่ใส่ค่า argument ลงไปได้ ตัวอย่างเช่น

print()

โดยผลลัพธ์จะเป็นการเว้นบรรทัดเพียงอย่างเดียว

เนื่องจากโปรแกรมนั้นจะทำงานตามโค้ดจากบนลงล่าง ทำให้คำสั่งที่เราเอาไว้ข้างบนจะทำงานก่อนคำสั่งที่อยู่ด้านล่าง เช่น

print("Hey! I'm in the first line.")
print("But I'm in the second line.")

ผลลัพธ์:

Hey! I'm in the first line.
But I'm in the second line.

Bugs

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

print("Hello, world"

ผลลัพธ์:

  File "c:\Users\name\Desktop\filename\hello.py", line 1
    print("Hello, world"
         ^
SyntaxError: '(' was never closed

จะเห็นว่าโค้ดข้างต้นขาดวงเล็บปิด ซึ่งทำให้ compiler จะแสดง error ออกมา  โดยส่วนใหญ่แล้วข้อความ error นั้นจะบอกว่าข้อผิดพลาดนั้นเกิดที่ไหน และให้คำแนะนำในการแก้ปัญหา

ดังนั้นความสามารถในการทำความเข้าใจข้อความ error ก็เป็นสิ่งที่จำเป็นกับการเขียนโปรแกรม ถึงแม้ว่าจะไม่มีใครต้องการให้มันเกิดก็ตาม

Variables


variable หรือตัวแปร เป็นตัวที่ใช้ในการเก็บข้อมูล  คล้ายกับในทางคณิตศาสตร์ที่จะมีตัวแปรซึ่งแทนค่าตัวเลขต่างๆ

ก่อนจะใช้ตัวแปรนั้น ต้องมีการประกาศตัวแปรขึ้นมาก่อน โดยการเขียนในรูปแบบดังนี้

x = 2

สังเกตว่าจะมีเครื่องหมายเท่ากับ = อยู่ตรงกลาง  โดยในทางโปรแกรมมิ่ง เครื่องหมายเท่ากับทำหน้าที่ assign ค่าทางด้านขวาให้กับตัวแปลทางด้านซ้าย

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

x = 2
print(x)

ผลลัพธ์:

2

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

Improving Our Python Program


เราสามารถพัฒนาโปรแกรมของเราต่อได้ โดยการถามชื่อกับ user และพิมพ์มันออกมาเพื่อทักทาย

โดยใน python ก็มีคำสั่งสำหรับการรับค่ามาจาก user นั่นคือคำสั่ง input

input()
print("Hello, world")

เมื่อรันแล้วหน้า terminal จะทำการหยุดเพื่อรอให้ user ใส่ input ลงไป แล้วโค้ดจึงจะทำงานต่อ

แต่ด้วยโค้ดเพียงเท่านี้ยังไม่มีอะไรเกิดขึ้น แต่เมื่อเราได้ input มาจาก user แล้ว เราก็สามารถนำข้อมูลนั้นมาเก็บลงในตัวแปรต่อไปได้ 

Input Value


โดยการเขียนคล้าย ๆ กับรูปแบบที่เราเคยพูดถึงในหัวข้อ variable เราสามารถนำค่าที่ได้มาเก็บลงในตัวแปรได้ ดังนี้

print("What's your name?")
name = input()
print("Hello")
print(name)

ผลลัพธ์:

What's your name?
David
Hello
David

เมื่อพิมพ์คำว่า David ลงไป โปรแกรมก็จะแสดงผล David ออกมาเช่นกัน

คำสั่ง input นั้นยังสามารถรับ argument ได้ โดยจะรับ prompt เป็น argument (prompt คือ สิ่งที่โปรแกรมแสดงออกมาเมื่อรอให้เราพิมพ์ข้อความ) ทำให้เราสามารถเขียนโค้ดได้ดังนี้

name = input("What's your name? ")
print("Hello")
print(name)

ผลลัพธ์:

What's your name? Fig
Hello
Fig

คำสั่ง print สามารถแสดงผลหลายค่าในบรรทัดเดียวได้ โดยการใช้เครื่องหมาย , ซึ่งจะแสดงค่าทั้งสองออกมาใน terminal ซึ่งคั่นด้วยเว้นวรรค

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

ผลลัพธ์:

What's your name? Steve
Hello, Steve

ในโค้ดเบื้องต้นนี้ เราได้ตั้งชื่อตัวแปรว่า name  โดยใน python นั้นเราสามารถตั้งชื่อตัวแปรได้เอง แต่ก็จะมีข้อจำกัดบางอย่าง ซึ่งเราจะพูดถึงในเรื่องถัดไป

Naming


การตั้งชื่อตัวแปรนั้นก็ถือเป็นสิ่งสำคัญในการเขียนโปรแกรม เพราะการตั้งชื่อที่ดีนั้นจะทำให้โค้ดนั้นอ่านง่ายขึ้น

ก่อนที่เราจะพูดเรื่องแนวทางการตั้งชื่อตัวแปร เราต้องมาดูถึงข้อจำกัดในการตั้งชื่อก่อน โดยจะมีข้อจำกัดอยู่ดังนี้

  • ชื่อนั้นสามารถมีได้แค่ ตัวอักษร ตัวเลข และ _

user_score1

  • สามารถ้ตัวใหญ่ได้ แต่ตัวอักษรแรกนั้นควรจะเริ่มต้นด้วยตัวเล็ก

itemList

  • ตัวอักษรแรกไม่สามารถเป็นตัวเลขได้

1username

  • ห้ามใช้คำที่อยู่ใน Reserved words

continue

  • ตัวอย่างชื่อที่ไม่สามารถใช้งานได้

var-name

input number

เมื่อชื่อตัวแปรที่เราตั้งนั้นประกอบไปด้วยคำหลายคำ จะมีรูปแบบการเขียนที่เป็นที่นิยมดังนี้

Snake Case

first_name     last_name     create_time

Camel Case

firstName     lastName     createTime

การใช้นั้นจะขึ้นอยู่กับความนิยมของผู้เขียนในแต่ละโปรแกรม และ อาจขึ้นอยู่กับทีมที่ทำงานที่จะตกลงกันเพื่อให้การตั้งชื่อมีความสอดคล้องกันในการทำงาน

Comments


เราสามารถเขียน note ไว้ได้ว่าโค้ดส่วนนั้นทำงานอย่างไรภายในโปรแกรม เพื่อที่จะทำให้ผู้อื่นนั้นสามารถอ่านโค้ดได้ง่ายขึ้น หรือแม้แต่ตัวเราเองที่กลับมาอ่านด้วยเช่นกัน

โดยการใช้เครื่องหมาย # นำหน้าข้อความในบรรทัดนั้น ๆ จะทำให้ข้อความไม่ถูกนำไปทำงานในโปรแกรม เช่น

# get name from user
name = input("What's your name? ")
# print Hello to the user
print("Hello,", name)

เราสามารถ comment หลายบรรทัดได้โดยการพิมพ์เครื่องหมาย ' หรือ " สามครั้งทั้งเปิดและปิด ดังนี้

'''
this
is
comment
'''

"""
and
this's
too
"""


Data Types


ค่าที่เก็บภายในตัวแปรนั้นมีอยู่หลายประเภท โดยที่แต่ละประเภทก็จะมีความสามารถ และลักษณะการใช้งานที่แตกต่างกันไป

โดยเราจะเริ่มจากตัวที่เราคุ้นชินกันมากที่สุด

String


string หรือ str เป็นลำดับของตัวอักษรหลายตัวเรียงต่อกัน ซึ่งในการประกาศตัวแปรนั้นค่าของมันจะต้องอยู่ภายในเครื่องหมาย Double quote " หรือ Single quote ' เช่น

name = 'Peter Parker'
str1 = "This is a string"

string นั้นสามารถนำมารวมกันได้โดยการใช้เครื่องหมาย + ดังนี้

str1 = "I love"
str2 = "banana"
str3 = str1 + " " + str2
print(str3)

ผลลัพธ์:

I love banana

string ใน python นั้นยังมีความพิเศษอีกอย่างนั่นก็คือ string สามารถนำมาคูณกับเลขได้ ซึ่งจะทำให้ string บวกกับตัวมันเองเป็นจำนวน n ครั้ง

print("lol" * 5)

ผลลัพธ์:

lollollollollol

string ยังสามารถเรียกใช้คำสั่งอื่น ๆ เพิ่มได้อีก ถ้าใครสนใจก็สามารถไปดูเพิ่มเติมได้ Python string method

Integer


integer หรือ int คือเลขจำนวนเต็ม

เรานั้นคงคุ้นเคยกันดีกับเครื่องหมายทางคณิตศาสตร์ +, -, *, / แต่เราจะมีอีกเครื่องหมายหนึ่งเพิ่มขึ้นมา คือ modulo % คือการหาเศษที่เหลือจากการหาร  เราสามารถเขียนสมการได้ง่าย ๆ ดังนี้

x = 1
y = 2
z = x + y
print(z)
print(z - x)
print(y * 4)
print(z / 3)
print(4 % z)

ผลลัพธ์:

3
2
8
1
1

เราสามารถนำมารวมกับเรื่องที่เราเรียนผ่านมาได้โดยการสร้างเครื่องคิดเลขง่าย ๆ

x = input("Enter first value: ")
y = input("Enter second value: ")
z = x + y
print("result =", z)

ผลลัพธ์:

Enter first value: 1
Enter second value: 2
result = 12

จะเห็นว่าเมื่อเราใส่ 1 และ 2 ลงไป ผลลัพธ์ที่ได้กลับเป็น 12 แทนที่จะเป็น 3

ผลลัพธ์แบบนี้นั้นเกิดจากการที่เมื่อเรารับค่าด้วยคำสั่ง input แล้วค่าที่ได้มานั้นจะเป็น string ทำให้เมื่อนำ "1" และ "2" มาบวกกัน จึงกลายเป็นการบวก string แทน

เราสามารถตรวจสอบได้โดยการใช้คำสั่ง type()

x = input("Enter first value: ")
print(type(x))

ผลลัพธ์:

Enter first value: 1
<class 'str'>

เราสามารถแก้ไขโดยการแปลงตัวแปรให้เป็น integer ก่อนนำมาคำนวน  โดยใช้คำสั่ง int(x) เรียกว่า casting ซึ่งเป็นการที่ค่านั้นถูกเปลี่ยนประเภทชั่วคราว โดยสามารถใช้ได้ดังนี้

x = input("Enter first value: ")
y = input("Enter second value: ")
z = int(x) + int(y)
print("result =", z)

ผลลัพธ์:

Enter first value: 2
Enter second value: 3
result = 5

เราสามารถเขียนโค้ดให้สั้นลงได้โดยการทำเช่นนี้

x = int(input("Enter first value: "))
y = int(input("Enter second value: "))
print("result =", x + y)

โดยเป็นการนำ int() มาครอบคำสั่ง input  โดยเมื่อทำงานโปรแกรมจะทำตำสั่ง input ที่อยู่ในลงเล็บก่อน แล้วจึงค่อยแปลงค่าที่ได้ให้กลายเป็น int แล้วเก็บไว้ในตัวแปร

Readability Wins


การเขียนโปรแกรมในการทำงานอย่างหนึ่งนั้นสามารถทำได้หลายวิธี แต่สิ่งที่สำคัญที่สุดอาจไม่ใช่ความสั้นของโค้ดเสมอไป

ยกตัวอย่างถ้าเรานำโปรแกรมล่าสุดมาย่อให้เหลือเพียงบรรทัดเดียว จะได้ว่า

print(int(input("Enter first value: ")) + int(input("Enter second value: ")))

ถึงแม้จะสั้นลง แต่ก็อ่านได้ยากขึ้นด้วย ดังนั้นเราจึงควรให้ความสำคัญกับความอ่ายง่ายด้วยเช่นกัน

Float


float คือเลขที่มีจุดทศนิยม ซึ่งทำให้เราสามารถคำนวนค่าที่มีความละเอียดได้ โดยวิธีในการประกาศตัวแปรนั้นจะเหมือนกับ int และมี operator เหมือนกัน

x = 1.5
y = 3.42
print(x + y)

ผลลัพธ์:

4.92

เราสามารถทำให้โปรแกรมเครื่องคิดเลขของเราคิดเลขทศนิยมได้โดยการเปลี่ยนจาก int เป็น float

x = float(input("Enter first value: "))
y = float(input("Enter second value: "))
z = x / y
print("result =", z)

เมื่อใส่ค่าลงไปเป็น 2 และ 3 จะทำให้ได้ผลลัพธ์เป็น 0.666666666 ไปเรื่อยๆ

แต่เราสามารถแก้ปัญหาได้ด้วยการปัดเลขขึ้นโดยใช้คำสั่ง round

x = float(input("Enter first value: "))
y = float(input("Enter second value: "))
z = round(x / y, 2)
print("result =", z)

โดยที่จะมี 2 arguments โดยที่ตัวแรกคื่อค่าที่เราต้องการจะปัด และเลขหลังคือจำนวนเลขทศนิยมที่เราต้องการเหลือไว้

ทำให้จะได้ผลลัพธ์:

Enter first value: 2
Enter second value: 3
result = 0.67

แต่เราก็ยังสามารถแก้ได้อีกวิธีโดยการใช้ fstring

x = float(input("Enter first value: "))
y = float(input("Enter second value: "))
z = x / y
print(f"result = {z:.2f}")

โดยการที่เราเพิ่ม f ลงไปหน้า string นั้นทำให้ python นั้นรู้ว่านี้เป็น string พิเศษ

fstring นั้นทำให้เราสามารถใส่ตัวแปรลงไปใน string ได้เลย โดยการใส่ไว้ในวงเล็บปีกกา {}  และทำให้อยู่ในรูปแบบต่าง ๆ ได้

อย่างเช่นในตัวอย่างนี้ก็จะทำให้ float นั้นมีเลขหลังทศนิยม 2 เลข 

 

Boolean


boolean หรือ bool นั้นใช้แสดงค่าจริง และเท็จ  ซึ่งเป็นค่าที่ได้จากการเปรียบเทียบค่า

print(1 > 2)
print(0.5 <= 5)
print(True == False)
print(1 != 0)
print("text" == "text")

ผลลัพธ์:

False
True
Flase
True
True

สัญลักษณ์ที่ใช้ในการเปรียบเทียบมีดังนี้ < น้อยกว่า<= น้อยกว่าหรือเท่ากับ > มากกว่า >= มากกว่าหรือเท่ากับ == เท่ากับ != ไม่เท่ากับ

List


list เป็นหนึ่งในประเภทข้อมูล ที่ใช้ในการเก็บค่าหลายค่าในตัวเอง

เมื่อประกาศตัวแปร จะใช้วงเล็บ [] ครอบชุดของข้อมูลไว้ เช่น

list1 = [1, 2.2, "string", True]

โดยที่ list นั้นสามารถเก็บตัวแปรได้หลายประเภท แม้กระทั่ง list ก็ยังเก็บใน list ได้

mainList = [[1, 2, 3], [3, 2, 1]]

โดยลำดับใน list นั้นจะมีความสำคัญ เพราะเมื่อเราต้องการที่จะดึงค่าที่อยู่ใน list ออกมานั้น เราจะต้องระบุถึงตำแหน่ง (index) ของมัน

โดย index ของสมาชิกใน list นั้น จะเริ่มที่ 0 จากนั้นก็ 1, 2, 3 ไปเรื่อย ๆ

numList = ["John", "Smith", 1969, 61]
print(numList[0])
print(numList[1])
print(numList[2])
print(numList[3])

ผลลัพธ์:

John
Smith
1969
61

list นั้นยังสามารถเพิ่มค่าเข้าไปได้โดยการใช้คำสั่ง append

listId = [65, 9, 5, 4]
listId.append(61)
print(listId)

ผลลัพธ์:

[65, 9, 5, 4, 61]

ยังมีคำสั่งอื่น ๆ อีก ถ้าใครสนใจสามารถไปดูเพิ่มเติมได้ในนี้ more on lists

 

User-defined Function

If-else condition

Loops