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(z)
ผลลัพธ์:
Enter first value: 1
Enter second value: 2
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(z)
ผลลัพธ์:
Enter first value: 2
Enter second value: 3
5
เราสามารถเขียนโค้ดให้สั้นลงได้โดยการทำเช่นนี้
x = int(input("Enter first value: "))
y = int(input("Enter second value: "))
print(x + y)
โดยเป็นการนำ int() มาครอบคำสั่ง input โดยเมื่อทำงานโปรแกรมจะทำตำสั่ง input ที่อยู่ในลงเล็บก่อน แล้วจึงค่อยแปลงค่าที่ได้ให้กลายเป็น int แล้วเก็บไว้ในตัวแปร
Readability Wins
การเขียนโปรแกรมในการทำงานอย่างหนึ่งนั้นสามารถทำได้หลายวิธี แต่สิ่งที่สำคัญที่สุดอาจไม่ใช่ความสั้นของโค้ดเสมอไป
ยกตัวอย่างถ้าเรานำโปรแกรมล่าสุดมาย่อให้เหลือเพียงบรรทัดเดียว จะได้ว่า
print(int(input("Enter first value: ")) + int(input("Enter second value: ")))
ถึงแม้จะสั้นลง แต่ก็อ่านได้ยากขึ้นด้วย ดังนั้นเราจึงควรให้ความสำคัญกับความอ่ายง่ายด้วยเช่นกัน
Float
Boolean
List