คราวที่แล้วเขียนบทความรวม syntax พื้นฐานของภาษา Java ไปแล้ว คราวนี้จะมาเขียนของภาษายอดนิยมอีกตัวหนึ่งคือ Python กันบ้าง
ในตอนนี้ Python ถือว่าเป็นหนึ่งในภาษายอดนิยมเพราะสามารถเอาไปใช้งานในด้าน Data Sci. ได้เป็นอย่างดี (เอาไปทำอย่างอื่นเช่นเขียนเว็บก็ได้นะ) เลยมีคนสนใจเยอะมาก
ในบทความนี้จะพูดถึง syntax พื้นฐานการเขียน Python ซึ่งจะเน้นที่เวอร์ชั่น 3 เป็นหลัก
Running Mode
สำหรับภาษา Python นั้นเป็นภาษาแบบ interpreter ซึ่งทำให้เรารันโปรแกรมได้ 2 รูปแบบคือ
terminal
เป็นการรัน Python ใน terminal หรือ command-line ซึ่งจะเป็นการพิมพ์คำสั่งทีละคำสั่ง โดยไม่ต้องสร้างไฟล์ .py ขึ้นมา
วิธีการใช้คือรันคำสั่ง python หลังจากนั้นก็จะเป็น terminal ของ Python เด้งขึ้นต่อมาให้พิมพ์โค้ดได้เลย
ส่วนใหญ่จะเอาไว้เทสโค้ดหรือทดสอบอะไรเล็กๆ น้อยๆ เน้นความเร็วซะมากกว่าเขียนโปรแกรมจริงจัง
file
วิธีที่ 2 ส่วนใหญ่จะใช้กับการเขียนโปรแกรมแบบปกติ จะต้องเขียนโค้ดในไฟล์นามสกุล .py ของ Python ส่วนวิธีการรันโปรแกรมจะใช้คำสั่งเหมือนกับโหมด terminal แต่ต้องเพิ่มชื่อไฟล์ตามหลังด้วย เช่น python main.py เป็นต้น
หรืออีกวิธีคือใช้ IDE สำหรับเขียน Python โดยเฉพาะเช่น PyCharm, Anaconda, หรือ Canopy ซึ่งโปรแกรมพวกนี้สามารถรันได้ในตัวเองอยู่แล้ว
Input/Output
การรับค่าในภาษา Python จะใช้คำสั่ง input() ส่วนการปริ๊นค่าออกมาจะใช้คำสั่ง print() ซึ่งในจุดนี้สำหรับ python2 และ python3 จะเขียนต่างกันพอสมควรเลย
#python2 num = input("input the number: ") name = raw_input("input your name: ") #python3 x = input() #always get String
สำหรับ python2 การรับค่าที่เป็นตัวเลขจะใช้ input() ธรรมดาส่วนถ้าอยากได้ค่าเป็น string จะใช้ต้อง raw_input() แทน
ส่วน python3 จะเหลือแค่ input() ตัวเดียวซึ่งให้ค่าเป็น string เสมอ แต่ถ้าอยากได้เป็นตัวเลข ก็สามารถ cast string ให้เป็น int หรือตัวแปรชนิดอื่นๆ ได้ด้วยคำสั่งพวก int() และ float()
#python3 num = int(input("input the number: ")) name = input("input your name: ")
ส่วนการ print ก็ต่างกันเช่นกัน แบบนี้
#python2 print "hello world!" #python3 print("hello world!")
นั่นคือใน python2 นั้น print จะถือว่าเป็นคำสั่งประเภทนึง แต่ใน python3 นั้นจะถือว่า print() นั้นเป็นฟังก์ชัน ดังนั้นต้องใส่ ( ) ทุกรอบ
Comment
มีสองแบบคือ
- inline
- block
#ตรงนี้เป็นคอมเมนท์นะ print("hello") #ตรงนี้ก็เป็นคอมเมนท์นะ """ อันนี้เป็นคอมเมนท์ แบบblock ละนะ """
Variable
ตัวแปรในภาษา Python เป็นแบบ dynamic-type คือสามารถเป็น value ได้ทุกชนิดโดยไม่ต้องกำหนดประเภทของชนิดข้อมูล (ไม่เหมือนพวกภาษา C, Java ที่ต้องกำหนดตัวแปรเช่น int x สำหรับเก็บจำนวนเต็มโดยเฉพาะ)
Data Type หลักๆ ของ Python มี
- int - จำนวนเต็ม เช่น 1, 200, 1024
- float - ทศนิยม เช่น 12.34, 3.1416
- str - ตัวอักษรและอักขระ ในภาษานี้ไม่ได้แยกเป็น char เป็นนับรวมๆ เป็นตัวอักษรทั้งหมดเลย เช่น "Tamemo.com" หรือ "This is a book" (ใช้ได้ทั้งแบบ "..." double-quote และแบบ '...' single-quote)
- bool - ค่าความจริงซึ่งมีแค่ 2 ค่าเท่านั้นคือ True / False
- None - มีค่าคล้ายๆ กับค่า null หรือ nil ในภาษาอื่น คือค่าที่ไม่มีค่าใดๆ (แต่จะทำให้ตัวแปรเกิดขึ้นได้ ใช้กับกรณีที่ต้องการให้ตัวแปร ซึ่งฐานนะของตัวแปรตัวนั้นจะต่างจากตัวแปรที่ยังไม่ได้กำหนดค่ามาก่อนที่เป็น undefined)
เนื่องจากภาษา Python เป็นภาษาแบบ interpreter เลยไม่มีปัญหากับการจองขนาดหน่วยความจำ (เพราะยังไงก็ต้องคำนวนตำแหน่งหน่วยความจำแบบ pointer อยู่แล้ว) ตัวแปรประเภทตัวเลขเลยสามารถเก็บกี่หลักก็ได้ไม่มีปัญหาแบบภาษาตระกูล C ที่ต้องกำหนดขนาดของตัวเลขให้ชัดเจนว่าใช้กี่ byte ในภาษานี้เลยแบ่งเป็นแค่ int กับ float ก็เพียงพอแล้ว
เราสามารถกำหนดค่าให้ตัวแปรและทำ operation ทางคณิตศาสตร์ได้แบบนี้
x = 10 #กำหนดค่า x = 1 + 1 #บวก x = 2 - 3 #ลบ x = 4 * 5 #คูณ x = 8 / 4 #หาร x = 7 % 3 #หารเอาเศษ x = 2 ** 5 #ยกกำลัง x += 1 #มีค่าเท่ากับการเขียนว่า x = x + 1 10 == 10 #ได้ค่าเป็น True เป็นการเช็กว่าค่าทั้งสองเท่ากันหรือไม่ (ในกรณี 1 กัย "1" จะถือว่าไม่เท่ากันนะ) 1 != 2 #จะได้ค่าเป็น False เอาไว้เช็กว่าไม่เท่ากับกัน
แล้วก็ภาษานี้ไม่มีการใส่ ; หลังจบประโยคนะ
การทำ Type Casting หรือการแปลชนิดของตัวแปรจะใช้คำสั่งตามชนิดของตัวแปรชนิดนั้น เช่น
x = 1 y = float(x) #แปลง int เป็น float x = 1.5 y = int(x) #แปลง float เป็น int x = "2385" y = int(x) #แปลง str เป็น int
สำหรับการเช็กว่า variable หรือ value ต่างๆ เป็น data type ชนิดไหนจะใช้คำสั่ง type() ในการเช็ก
x = 10 type(x) #int y = 3.1416 type(y) #float name = "tamemo.com" type(name) #str b = True type(b) #bool n = None type(n) #NoneType
การแสดงค่าใน Python จะใช้คำสั่ง print() แบบนี้
print("hello world!") x = 10 print(x)
แต่การใช้ print ในภาษานี้จะต่างจากภาษาอื่นๆ นิดหน่อยคือมันจะ auto new-line หรือปริ๊นค่าเสร็จแล้วขึ้่นบรรทัดใหม่ให้ทันทีเลย
ข้อแตกต่างระหว่าง python2: ใน Python3 คำสั่ง print นั้นถือว่าเป็น function ดังนั้นต้องเขียน ( ) ด้วยทุกครั้ง ต่างจาก python2 ที่เขียนแค่ print "hello world!" ได้
สำหรับการลบตัวแปรทิ้งจะใช้คำสั่ง del เช่น del x
Data Structure
เป็นชนิดตัวแปรแบบ data struct ในภาษา Python ประกอบด้วย
list
เป็นตัวแปรที่เก็บได้หลายค่าในตัวเดียว เทียบเท่ากับ array ในภาษาอื่น แต่ไม่จำกัดความยาว สามารถเพิ่มสมาชิกหรือลบทิ้งออกไปได้เรื่อยๆ index ของ list ใช้แบบ zero-base หรือเริ่มต้นค่าแรกใน list จะเริ่มต้นที่ตำแหน่ง 0 แบบภาษา C
num = [10, 20, 30, 40] manga = ["One Piece", "Bleach", "Naruto"] print(num[0]) #10 num[0] = 100 #ตอนนี้ num จะมีค่าเป็น [100, 20, 30, 40]
คำสั่งเริ่มสำหรับการจัดการข้อมูลใน list อื่นๆ เช่น len(), .append(), .insert(), .pop() แบบนี้
data = [1, 2, 3, 4] #ถามขนาดของ list len(data) #4 #เพิ่มค่าเข้า list ในตำแหน่งท้ายสุด data.append(5) #[1, 2, 3, 4, 5] #เพิ่มข้อมูลใส่ list ในตำแหน่งที่ระบุ data.insert(0, 100) #[100, 1, 2, 3, 4, 5] data.insert(2, 200) #[100, 1, 200, 2, 3, 4, 5] #ขึ้นข้อมูลออกจาก list (ดึงออกมาจากข้อมูลจะถูกลบทิ้งออกไปจาก list เลยนะ) x = data.pop(0) #x จะมีค่าเป็น 100 ส่วน data จะเหลือแค่ [1, 200, 2, 3, 4, 5] y = data.pop() #ถ้าไม่ระบบตำแหน่ง จะหมายถึงตำแหน่งท้ายสุด #y จะมีค่าเป็น 5 สวน data จะเหลือแค่ [1, 200, 2, 3, 4]
list ใน Python มีฟีเจอร์น่าสนใจอีกตัวคือ "sub-list" หรือการตัด list ออกมาเป็นช่วง จะใช้เครื่องหมาย [x:y] โดย x แทนตำแหน่งเริ่มตัด และ y แทนตำแหน่งหยุดตัด
data = ["A", "B", "C", "D", "E"] data[1:3] #["B", "C"] data[2:5] #["C", "D", "E"] data[:3] #["A", "B", "C"] data[2:] #["C", "D", "E"] data[:] #["A", "B", "C", "D", "E"]
ถ้าไม่กำหนด x จะหมายถึงเริ่มตั้งแต่ต้น list ส่วนถ้าไม่ได้กำหนด y หมายถึงเอาจนถึงตำแหน่งสุดท้ายของ list เลย
ในการใช้ list ต้องระวังไว้อย่างนึงคือ list เป็นตัวแปรแบบ reference-type หรือเป็น pointer นั่นเอง การสั่ง = อาจจะมีปัญหาในบางครั้งได้ เช่น
a = [1, 2, 3] b = a b[0] = 100 #b จะมีค่าเป็น [100, 2, 3] #แต่เนื่องจากส่งค่ากับเป็นแบบ ref ดังนั้นค่าของ a เลยโดยด้วยเป็น [100, 2, 3] เช่นกัน #ส่วนวิธีแก้จะใช้การ casting หรือการ sub-list ได้ทั้ง 2 วิธีแบบนี้ b = a[:] #หรือ b = list(a)
tuple
มันคือ list ที่ไม่สามารถแก้ไขข้อมูลได้ (รวมถึงไม่สามารถ เพิ่ม/ลด data ได้ด้วย) พูดง่ายๆ มันคือ const list หรือ final list นั่นเอง วิธีการสร้างจะคล้ายๆ กับ list แต่เปลี่ยนเครื่องหมาย [ ] เป็น ( ) เท่านั้นเอง
data = (10, 20, 30, 40) print(data[0]) #10
dictionary
หรือชนิดตัวแปรประเภท dict เป็นการเป็นข้อมูลแบบ key-value เทียบได้กับ HashMap ในภาษา Java หรือ โครงสร้างข้อมูลยอดฮิตแบบ JSON
สำหรับคนที่ไม่รู้จัก dict จะคล้ายๆ กับ list ที่ต้องกำหนดชื่อของ index ด้วยตัวเอง เป็นชื่ออะไรก็ได้ (ปกติแล้วการอ้างอิงข้อมูลใน list เราจะใช้ตัวเลข index เริ่มจาก 0,1,2,... ไปเรื่อยๆ) โดยสัญลักษณ์ของ dict จะใช้ {key:val}
data = { "name": "Momo", "score": 100, "pass": true }
set
ตัวนี้จะใช้หลักการตามวิชาคณิตศาสตร์เลย คือสมาชิกของ set จะมีแค่ 1 ตัวต่อ 1 ค่า หรือพูดง่ายๆ คือจะมี value ไม่ซ้ำกันเลย (unique list นั่นเอง) สัญลักษณ์ของ set จะใช้คล้ายๆ กับ dict คือ { } ดังนั้นระวังใช้สับสน
data = {10, 20, 30, 10, 20, 40} #data จะเหลือแค่ {10, 20, 30, 40} เพราะ 10 กับ 20 ซ้ำนั่นเอง
contains
ในการเช็กว่ามี value ตัวนี้ใน data structure นั้นๆ หรือไม่เราจะใช้คำสั่ง in ในการเช็กนะ แบบนี้
data = [10, 20, 30, 40] 10 in data #True data = (10, 20, 30, 40) 10 in data #True data = {"A": 10, "B": 20, "C": 30} 10 in data #False "A" in data #True
สังเกตอย่างนึงคือการเช็ก dict นั้นจะเช็กด้วย key ไม่ใช่ value แบบตัวอื่นๆ
String
ประโยคใน Python จะใช้ได้ทั้ง " (double quote) และ ' (single quote) ซึ่งใช้ตัวไหนก็ได้ มีค่าเท่ากันเลย ... แต่มีตัวพิเศษเรียกว่า triple quote เขียนแบบนี้ """ (มันคือการเขียน double quote ต่อกัน 3 ตัว) ซึ่งวิธีการใช้ """ จะต่างกับ " และ ' คือเราสามารถเขียน newline (ขึ้นบรรทัดใหม่) ได้ด้วย
name = "Momo" website = 'TAMEMO.com' content = """ this is a book. not a pen """
สำหรับการต่อ string หรือ concat จะใช้ + แบบปกติ แต่สิ่งที่ต้องระวังคือ string ในภาษา Python ไม่สามารถ + กับข้อมูลชนิดอื่นได้ เช่น str + int (พูดง่ายๆ คือมันไม่มี auto toString นั่นเอง) จะต้องแปลงข้อมูลชนิดอื่นให้เป็น str ซะก่อน
name = "Momo" print("hello " + name) x = 10 print("answer is " + str(x))
และใน Python นั้น string สามารถเอามา * ได้ด้วยนะ แบบนี้
"A" * 10 #AAAAAAAAAA
และคุณสมบัติอีกอย่างคือ string นั้นจะทำตัวเหมือนกับ list ของ character ดังนั้น list ทำอะไรได้ string ก็ทำแบบนั้นได้แหละ
sentence = "www.TAMEMO.com" """ 0 1 2 3 4 5 6 7 8 9 10 11 12 13 w w w . T A M E M O . c o m """ sentence[0] #w sentence[4] #T sentence[-1] #m ถ้าใช้ค่า - จะหมายถึง index จากฝั่งท้ายแถว sentence[4:10] #TAMEMO len(sentence) #14 "TA" in sentence #True
string format
คล้ายๆ กับ printf ในภาษา C คือเราสามารถ string format ใน Python ได้เช่นกันโดนใช้ % ในการระบุตัวแปรตามหลัง
- %d: แสดงค่าจำนวนเต็ม
- %f: แสดงค่าจุดทศนิยม
- %s: แสดงผล string
x = 123 "x value is %d" % x #x value is 123 x = 1 y = 2 "%d + %d = %d" % (x, y, x+y) #1 + 2 = 3 name = "Momo" "welcome, %s" % name pi = 3.1416 "PI is %.2f" % pi #PI is 3.14
ในกรณีที่มีตัวแปรหลายตัวจะต้องครอบตัวแปรทั้งหมดด้วย ( ) หรือ tuple
หรืออีกวิธีนึงคือใช้ .format() แทน
x = 10 y = 20 "{0} and {1} and {0}".format(x, y) #10 and 20 and 10 x = 12.345 y = 6.7890 "{0:.2} {1:.1}".format(x, y) #12.34 6.7
และใช้ upper() กับ lower() ในการทำให้ตัวอักษรเป็นตัวใหญ่ทั้งหมด และตัวเล็กทั้งหมด
"TAmemo".upper() #TAMEMO "TAmemo".lower() #tamemo
Control Flow
ตัวควบคุมการทำงานของโปรแกรม ส่วนนี้จะคล้ายๆ กับภาษาอื่นๆ คือมี if-else while for ให้ใช้ (แต่ไม่มี do..while นะ)
แต่สิ่งที่แตกต่างจากภาษาอื่นๆ แบบชัดๆ คือ "code block" ของ Python นั้นจะไม่ใช่การเขียนด้วย { } หรือ BEGIN-END แบบภาษาอื่นแต่ใช้ indent ในการแบ่ง code block แทน
สำหรับ indent คืออะไร มาดูกันในตัวอย่างแรกกับ if
if
เอาไว้เช็กว่าถ้า condition เป็นจริง จะทำงาน statement ในคำสั่ง if แบบนี้
if x > 10: print("x more than ten")
สังเกตว่าในภาษา Python จะไม่มีการกำหนด { } ครอบส่วนที่เป็น block ของ if แต่จะใช้การ "space เว้นวรรค (มาตราฐานคือ 4 space)" หรือการใช้ "tab แท็บ 1 ครั้ง" แทน
statement ของ if ทั้งหมดจะถูกบังคับให้ indent ออกไป 1 ครั้งจนกว่า indent จะกลับมาอยู่ในระดับเดิม ถึงจะถือว่าจบ if แล้ว
if x > 10: print("x more than ten") print("นี่ก็ยังถือว่าอยู่ใน if อยู่ล่ะ") print("ถ้าอันนี้คือออกจาก if แล้ว")
ส่วนถ้าจะเขียน nested-if (if ซ้อน if) ใน if ชั้นที่ 2 ก็จะต้อง indent เข้าไปอีกครั้งนึงแบบนี้
if x > 10: print("x more than ten") if x % 2 == 0: print("and also is even")
ถ้าเทียบกับภาษาตระกูล C ก็คือ
if(x > 10){ print("x more than ten") if( x % 2 == 0){ print("and also is even") } }
สำหรับ logical operator ... เวลาเรามีหลาย condition เราสามารถเชื่อมประโยคได้ด้วยการใช้ and or และ not ซึ่งในภาษา Python จะใช้ตรงๆ เลยคือใช้ and or not (ซึ่งเทียบได้กับ && || ! ในภาษาตระกูล C)
else
เป็นส่วนเสริมของ if เอาไว้เช็กในกรณี condition เป็น False จะลงไปทำ statement ใน else แทน ... แน่นอนว่าใช้การแบ่ง block ด้วย indent เหมือนเดิมแบบนี้
if x > 10: print("x more than ten") else: print("not more than ten")
และเนื่องจาก Python แบ่ง block ด้วย indent ดังนั้นถ้าเราเขียน nested if-else หลายๆ ชั้นมันจะออกมาเป็นแบบนี้
if x > 10: print("...") else: if y == 5: print("...") else: if not z: print("...") else: print("...")
แน่นอนว่ามันใช้ได้นะ แต่มันก็ดูเขียนยาก แถมอ่านยากอีกตั้งหาด เขาก็เลยมีคำสั่ง elif มาให้ใช้
if x > 10: print("...") elif y == 5: print("...") elif not z: print("...") else: print("...")
while
อันนี้เป็น loop แบบเบสิกมากๆ เลย วิธีการใช้จะคล้ายๆ if เป็นจะวนทำซ้ำไปจนกว่า condition จะเป็น False
i = 1 while i < 5: print(i) i += 1 #1 2 3 4
การแบ่ง block ของ while ก็เหมือนกับ if ละนะ คือต้องใช้ indent ในการบอกว่าส่วนใหญ่ยังเป็น statement ของ while อยู่
for
ปกติแล้วถ้าใครเคยเขียนโปรแกรมในภาษาอื่นๆ มาก่อน การเขียน loop ประเภท for จะออกมาหน้าตาประมาณนี้
var data = [10, 20, 30, 40]; for(i = 0; i<data.length; i++){ print( data[i] ); } //10 20 30 40
นั่นคือ for ถูกสร้างขึ้นมาเพื่อจัดรูปแบบการเขียนลูปให้เป็นระเบียบขึ้นจากการใช้ while นั่นเอง แต่สำหรับ Python แล้วเราจะไม่สามารถเขียน for แบบนี้ได้อีกต่อไป แต่จะเป็นแบบนี้
data = [10, 20, 30, 40] for x in data: print( x ) # 10 20 30 40
for ใน Python นั้นจะใช้สำหรับการวนข้อมูลประเภท list, tuple, dict เป็นหลัก โดยจะทำการวนลูปตั้งแต่ตัวแรกจนถึงข้อมูลตัวสุดท้ายให้ ซึ่งเราไม่ต้องสร้าง counter หรือตัวแปรเอามานับรอบ (เช่นในตัวอย่างนี้คือตัวแปร i) แต่ให้สร้างตัวแปรมาหนึ่งตัว เป็นตัวแทนของ data[i] มาแทน (ในตัวอย่างคือตัวแปร x ...แต่ก็สร้างเป็นชื่ออะไรก็ได้นะ) ที่เหลือ Python จะจัดการให้ทั้งหมด
ดูๆ ไปแล้วมันก็เหมือนกับ foreach สินะ? ... ใช่แล้ว! for ใน Python ก็คือ foreach ในภาษาอื่นๆ นั่นเอง (หรือก็คือ for-in for-of นั่นแหละ แล้วแต่ภาษาไหนจะเรียกอะไร)
แต่ถ้าเราต้องการจะใช้ for ในการวนลูปนับเลขเหมือนเดิมก็สามารถทำได้โดยการใช้ range() เข้ามาช่วย ซึ่งเจ้าฟังก์ชัน range ตัวนี้จะเป็นฟังก์ชันสำหรับสร้าง list ของตัวเลขขนาดตามที่กำหนดลงไปขึ้นมา แบบนี้
range(10) #0 1 2 3 4 5 6 7 8 9 (ใน python2 จะให้ค่าออกมาเป็น list เลย) list(range(10)) #0 1 2 3 4 5 6 7 8 9 แต่ถ้าเป็น python3 จะให้ค่าออกมาเป็น generator ถ้าอยากให้มันเป็น list จะต้อง cast มันอีกทีนึง #ซึ่งคำสั่ง range ใน python3 จะเทียบได้กับ xrange ใน python2 นั่นเอง range(5,10) #5 6 7 8 9 หรือกำหนดค่าเริ่มต้นให้มันก็ได้
พอมันให้ค่าออกมาเป็น list ของตัวเลข ทำให้เราเอาไปวนลูปได้ แบบนี้
for i in range(10): print(i) #0 1 2 3 4 5 6 7 8 9 for i in list(range(10)): print(i) #0 1 2 3 4 5 6 7 8 9 ให้ค่าออกมาแบบเดียวกันเลย แต่ใช้วิธีแรกอีกกว่านะ data = [10, 20, 30, 40] for i in range(len(data)): print( data[i] ) #10 20 30 40
หรือจะใช้คำสั่ง enumerate
ในการวนลูปเพื่อให้แต่ละรอบในการวน จะได้ทั้ง item และ index
data = [10, 20, 30, 40] for i,item in enumerate(data): print(i, item) #(0, 10) #(1, 20) #(2, 30) #(3, 40)
ส่วนคำสั่ง break และ continue ที่เอาไว้ควบคุมการหยุด/ข้ามรอบของลูปก็ยังใช้ได้ปกติไม่มีปัญหาอะไรนะ
ส่วนการวนลูป dict นั้น iterator ที่ได้มาจะเป็นส่วนของ key นะ ไม่ใช่ value
data = { "A": 1, "B": 2, "C": 3 } for k in data: print(k) #A B C for k in data: print(data[k]) #1 2 3
pass
ในภาษาอื่นๆ เราสร้าง block ได้ด้วยการใช้พวก { } แต่พอ Python ใช้ indent แทน บางครั้งมันก็จะมีปัญหา เช่น
if( x > 10){ //do nothing~ } else{ print("not more than ten") }
คือเกิดกรณีที่ภายใน block ไม่มี statement อะไรเลย ถ้าเอาไปเขียนเป็น Python ก็จะออกมาแบบนี้
if x > 10: else: print("not more than ten")
ซึ่งการเขียนแบบนี้จะผิดทันที! เพราะภายใน if ไม่มี statement อะไรอยู่เลย (Python ไม่ให้ล่ะ อย่างน้อยต้องมี 1 indent)
วิธีแก้คือเติมคำสั่ง pass ลงไปแทน
if x > 10: pass else: print("not more than ten")
Function
การประกาศใช้ฟังก์ชันใน Python จะทำผ่านคีย์เวิร์ด def และส่วน body ของฟังก์ชันจะต้องแบ่งด้วย code block แบบ indent เช่นกัน
def hi(): print("hello, yo yo!")
ซึ่งการใช้ function นั้นไม่จำเป็นต้องระบุ return-type ลงไป คือถ้าอยากจะ return อะไรก็รีเทิร์นได้เลย นอกจากนี้ยังสามารถรับ parameter แบบภาษาทั่วไปได้เช่นกัน
def say_hello(name): print("hello, " + name) say_hello("Momo") #hello, Momo def plus(a, b): return a + b print(plus(10, 20)) #30
และก็เหมือนกับภาษาระดับสูงใหม่ๆ ทั่วไปคือเราสามารถใส่ default parameter ได้
def f(x = 1): print(x) f() #1 f(2) #2
จริงๆ ภาษา Python ยังมีอะไรที่น่ารู้อีกเยอะ เช่นเรื่องของ list, dict และ การสร้าง class หรือการทำ module แต่เนื่องจากถ้าเขียนต่อไปเนื้อหาจะยาวเกินไป ไว้ต่อในบล๊อกหน้าละกันนะ
1 Response
[…] ? การใช้งาน range ใน Python List methods Lists ในภาษา Python รวม syntax พื้นฐานของภาษา Python ฉบับรวบรัด คำสั่ง enumerate ใน […]