Python เบื้องต้น: เขียนโปรแกรมแรกของคุณใน 5 นาที
บทเรียนนี้แปลจากต้นฉบับภาษาอังกฤษRead in EnglishLeer en españolЧитать на русскомLer em portuguêsแจ้งข้อผิดพลาดในการแปล
เคยสงสัยหรือไม่ว่าแอปอย่าง Instagram, Spotify หรือ YouTube ทำงานได้อย่างไร เบื้องหลังทุกแอป ทุกเว็บไซต์ และทุกเกม มีโค้ดอยู่ นั่นคือชุดคำสั่งที่คนเขียนขึ้นเพื่อบอกคอมพิวเตอร์ว่าต้องทำอะไร
Python เป็นหนึ่งในภาษาที่ได้รับความนิยมมากที่สุดสำหรับเขียนคำสั่งเหล่านั้น โค้ด Python อ่านแล้วแทบจะเหมือนภาษาอังกฤษธรรมดา คุณจึงโฟกัสกับการแก้ปัญหาได้เต็มที่ แทนที่จะต้องต่อสู้กับไวยากรณ์ที่ชวนสับสน
ในบทเรียนนี้ คุณจะได้เขียนโปรแกรม Python แรก เรียนรู้ว่า Python จัดการกับข้อความและตัวเลขอย่างไร และเริ่มใช้ตัวแปรเพื่อเก็บข้อมูล ตัวอย่างโค้ดทุกตัวในหน้านี้ รันได้จริง กด รัน แก้ไขโค้ด แล้วดูผลลัพธ์ได้ทันที ไม่ต้องติดตั้งอะไรเลย
วิธีเขียนโปรแกรม Python แรกของคุณ
วงการเขียนโปรแกรมมีธรรมเนียมสนุก ๆ อยู่อย่างหนึ่ง เมื่อเริ่มเรียนภาษาใหม่ สิ่งแรกที่ทำคือสั่งให้ภาษานั้นแสดงคำว่า "Hello, World!" เปรียบเหมือนการจับมือทักทายสั้น ๆ ระหว่างคุณกับภาษา และเป็นหลักฐานว่าทุกอย่างทำงานได้
ในบางภาษา งานนี้ต้องเขียนโค้ดถึง 5 บรรทัดหรือมากกว่านั้น แต่ใน Python ใช้แค่บรรทัดเดียว:
Hello, World!
กดปุ่ม รัน ด้านบน คุณจะเห็น Hello, World! ปรากฏใต้โค้ด เพียงเท่านี้คุณก็รันโปรแกรม Python ได้แล้ว!
มาดูกันทีละส่วนว่าเกิดอะไรขึ้น:
print() เป็น ฟังก์ชัน (function) ในตัวของ Python ลองนึกภาพเครื่องจักรที่คุณใส่ของเข้าไป แล้วมันจะทำอะไรบางอย่างกับของนั้น ฟังก์ชันนี้ทำหน้าที่แสดงข้อความบนหน้าจอ() คือที่ที่คุณส่งข้อมูลเข้าไป โปรแกรมเมอร์เรียกข้อมูลนี้ว่า "อาร์กิวเมนต์" (argument)"Hello, World!" คือ สตริง (string) ซึ่งเป็นแค่ชื่อเรียกเท่ ๆ ของข้อความ เครื่องหมายคำพูดบอก Python ว่า "นี่คือข้อความ ไม่ใช่โค้ด"ลองเปลี่ยนข้อความในเครื่องหมายคำพูดแล้วรันอีกครั้ง ลองแสดงชื่อของคุณเอง แล้วลองเพิ่ม print() อีกตัวในบรรทัดใหม่:
Hello, World! My name is Python. Nice to meet you!
print() แต่ละตัวจะแสดงผลในบรรทัดของตัวเอง Python อ่านโค้ดของคุณจาก บนลงล่าง ทีละบรรทัด เหมือนการอ่านหนังสือ
ลำดับที่คุณเขียนคือลำดับที่โค้ดทำงาน นี่เป็นหนึ่งในแนวคิดที่สำคัญที่สุดของการเขียนโปรแกรม
คอมเมนต์ใน Python คืออะไร
คอมเมนต์ (comment) คือโน้ตที่คุณเขียนไว้ในโค้ด ซึ่ง Python จะข้ามไปทั้งหมด สร้างคอมเมนต์ได้โดยขึ้นต้นบรรทัดด้วยเครื่องหมาย #
ทำไมถึงต้องการให้ Python ข้ามบางอย่างไป? เพราะคอมเมนต์เขียนไว้ให้ มนุษย์ อ่าน ไม่ใช่ให้คอมพิวเตอร์อ่าน คอมเมนต์ช่วยให้คุณ (และทุกคนที่อ่านโค้ดของคุณ) เข้าใจว่าโค้ดกำลังทำอะไร
This line runs!
ลองนึกถึงคอมเมนต์ว่าเป็นเหมือนกระดาษโน้ตที่แปะไว้บนสูตรอาหาร เตาอบไม่ได้อ่านโน้ตเหล่านั้น แต่โน้ตช่วยให้ คุณ จำได้ว่าทำไมถึงเติมเกลือเพิ่ม หรืออุณหภูมิเท่าไรที่ได้ผลดีที่สุด
สตริงกับตัวเลขใน Python ต่างกันอย่างไร
ทุกอย่างใน Python มี ชนิดข้อมูล (type) ชนิดข้อมูลเปรียบเหมือนป้ายที่บอก Python ว่าข้อมูลนั้นเป็นข้อมูลประเภทไหน และทำอะไรกับมันได้บ้าง
ชนิดข้อมูลพื้นฐานที่สุดสองชนิดคือ สตริง (ข้อความ) และ ตัวเลข การเข้าใจความแตกต่างของทั้งสองชนิดจะช่วยให้คุณไม่ต้องเจอกับ error ชวนงงอีกมากมาย
วิธีสร้างสตริงใน Python
สตริง คือข้อความใด ๆ ที่อยู่ในเครื่องหมายคำพูด ใช้ได้ทั้งเครื่องหมายคำพูดเดี่ยว ('hello') และเครื่องหมายคำพูดคู่ ("hello") ทั้งสองแบบทำงานเหมือนกันทุกประการ
Hello! Hello! It's a sunny day! She said "wow!"
สตริงเก็บอะไรก็ได้ ทั้งตัวอักษร ตัวเลข ช่องว่าง เครื่องหมายวรรคตอน หรือแม้แต่อีโมจิ ตราบใดที่อยู่ในเครื่องหมายคำพูด Python จะถือว่าเป็นข้อความ
ชนิดตัวเลขใน Python: จำนวนเต็มและทศนิยม
ตัวเลขใน Python มีสองแบบ:
int) คือจำนวนที่ไม่มีเศษ เช่น 42, -7 หรือ 1000000 ไม่มีจุดทศนิยมfloat) คือจำนวนที่มีจุดทศนิยม เช่น 3.14, -0.5 หรือ 100.0 มีจุดทศนิยมเสมอ42 3.14 -7 1000000
ทำไมชนิดข้อมูลจึงสำคัญใน Python
นี่คือเรื่องที่ทำให้ผู้เริ่มต้นแทบทุกคนสะดุด สำหรับ Python แล้ว "42" (มีเครื่องหมายคำพูด) กับ 42 (ไม่มีเครื่องหมายคำพูด) เป็น คนละสิ่งกันโดยสิ้นเชิง
ตัวหนึ่งเป็นข้อความ อีกตัวเป็นตัวเลข เวลาแสดงผลออกมาจะดูเหมือนกัน แต่ทำงานต่างกันมาก:
42 42 <class 'str'> <class 'int'> 428 50
"42" + "8" ได้ผลเป็น "428" เพราะ + ระหว่างสตริงหมายถึง "นำมาต่อกัน" เรียกว่า การต่อสตริง (concatenation)
42 + 8 ได้ผลเป็น 50 เพราะ + ระหว่างตัวเลขหมายถึง "บวกกัน" ตัวดำเนินการเดียวกัน แต่ทำงานต่างกันโดยสิ้นเชิง ขึ้นอยู่กับชนิดข้อมูล
ฟังก์ชัน type() บอกได้อย่างแม่นยำว่าข้อมูลที่คุณกำลังใช้อยู่เป็นชนิดอะไร เมื่อมีบางอย่างทำงานไม่เป็นไปตามที่คาด การตรวจสอบชนิดข้อมูลมักเป็นสิ่งแรกที่ควรลอง
วิธีคำนวณเลขใน Python
Python ใช้เป็นเครื่องคิดเลขได้ดีมาก จัดการตัวเลขได้ทุกขนาดอย่างสบาย ๆ ต่างจากบางภาษาที่มีปัญหากับตัวเลขขนาดใหญ่
นี่คือตัวดำเนินการทางคณิตศาสตร์ทั้งหมดที่คุณจะได้ใช้:
5 6 21 3.75 3 3 1024
ส่วนใหญ่ทำงานเหมือนในวิชาคณิตศาสตร์ทั่วไป แต่มีบางตัวที่อาจเป็นเรื่องใหม่สำหรับคุณ
/ (การหาร) ให้ผลลัพธ์เป็นทศนิยมเสมอ แม้จะหารลงตัวก็ตาม 10 / 2 ได้ 5.0 ไม่ใช่ 5 เรื่องนี้ทำให้หลายคนประหลาดใจ
// (การหารแบบปัดเศษลง หรือ floor division) หารแล้วปัด ลง เป็นจำนวนเต็มที่ใกล้ที่สุด สำหรับจำนวนบวก ให้คิดว่าเป็น "การหาร แต่ทิ้งทุกอย่างหลังจุดทศนิยมไป" ส่วนจำนวนลบ การปัดลงจะขยับออกห่างจากศูนย์: -7 // 2 ได้ -4
% (มอดูโล หรือ modulo) ให้ เศษ ที่เหลือจากการหาร เช่น 15 ÷ 4 = 3 เหลือเศษ 3 ตัวดำเนินการนี้มีประโยชน์เกินคาด ใช้ตรวจว่าจำนวนเป็นเลขคู่หรือไม่ (n % 2 == 0) ทำให้ค่าวนกลับไปเริ่มใหม่ (เหมือนชั่วโมงบนหน้าปัดนาฬิกา: 13 % 12 = 1) และอื่น ๆ อีกมากมาย
` (ยกกำลัง)** ยกตัวเลขขึ้นเป็นเลขยกกำลัง 2 ** 10` หมายถึง "นำเลข 2 จำนวน 10 ตัวมาคูณกัน" ซึ่งได้ 1024
Python คำนวณตามลำดับมาตรฐานทางคณิตศาสตร์ (วงเล็บ ยกกำลัง คูณหาร แล้วจึงบวกลบ) และใช้วงเล็บเพื่อเปลี่ยนลำดับได้:
14 20 25°C = 77.0°F
# "Division gives a whole number, right?"
result = 10 / 3
print(result) # Expects: 3# / always gives a decimal (float)
result = 10 / 3
print(result) # 3.3333333333333335
# Use // to get a whole number
result = 10 // 3
print(result) # 3ตัวแปรใน Python คืออะไร และใช้อย่างไร
จนถึงตอนนี้ เราใช้ค่าต่าง ๆ โดยตรง เช่น print(42), print(2 + 3) วิธีนี้ใช้ได้กับการคำนวณสั้น ๆ แต่โปรแกรมจริงต้อง จดจำ ค่าไว้และนำมาใช้ภายหลัง
นั่นคือหน้าที่ของ ตัวแปร (variable) ลองนึกถึงตัวแปรว่าเป็น กล่องที่มีป้ายชื่อ คุณตั้งชื่อให้กล่อง ใส่ค่าไว้ข้างใน แล้วเรียกใช้ชื่อนั้นทุกครั้งที่ต้องการค่านั้น
Alice 15 5.4 True
name = "Alice" สร้างตัวแปรชื่อ name และเก็บสตริง "Alice" ไว้ในนั้น เครื่องหมาย = คือ ตัวดำเนินการกำหนดค่า (assignment operator) ไม่ได้แปลว่า "เท่ากับ" แบบในคณิตศาสตร์ แต่หมายถึง "เก็บค่านี้ไว้ในชื่อนี้"
ให้อ่าน name = "Alice" ว่า "name ได้รับค่า Alice" ความแตกต่างนี้สำคัญ และจะช่วยไม่ให้คุณสับสนในภายหลัง
สังเกตว่าไม่มีคีย์เวิร์ด let, var หรือ const ใน JavaScript คุณต้องเขียน let name = "Alice" แต่ใน Python เขียนแค่ name = "Alice" นอกจากนี้ Python ไม่ต้องประกาศชนิดข้อมูล เพราะ Python รู้ชนิดข้อมูลจากค่าได้เองโดยอัตโนมัติ
ค่าในตัวแปรเปลี่ยนได้ คุณกำหนดค่าใหม่ให้ตัวแปรได้ทุกเมื่อ:
Starting score: 0 After first round: 10 After bonus: 15 After doubling: 30
บรรทัด score = score + 5 ดูแปลก ๆ ถ้าคุณคิดว่า = แปลว่า "เท่ากับ" แต่อย่าลืมว่า = หมายถึง "กำหนดค่า"
ให้อ่านว่า "นำค่าปัจจุบันของ score (10) มาบวก 5 ได้ 15 แล้วเก็บผลลัพธ์นั้นกลับไปไว้ใน score" รูปแบบนี้ (การเปลี่ยนค่าตัวแปรโดยอิงจากค่าปัจจุบันของมัน) พบได้ทุกที่ในการเขียนโปรแกรม
วิธีใช้ f-string ใน Python (การจัดรูปแบบสตริง)
แทบทุกโปรแกรมต้องนำตัวแปรมาผสมกับข้อความ ไม่ว่าจะเป็นข้อความต้อนรับที่มีชื่อผู้ใช้ การแสดงคะแนน หรือการพิมพ์ใบเสร็จ ทั้งหมดนี้ต้องรวมข้อมูลเข้ากับข้อความ
Python มีเครื่องมือที่ยอดเยี่ยมสำหรับเรื่องนี้ เรียกว่า f-string ("f" ย่อมาจาก "formatted" คือจัดรูปแบบแล้ว) ใส่ตัวอักษร f ไว้หน้าเครื่องหมายคำพูดเปิด แล้วใส่ตัวแปรหรือนิพจน์ใด ๆ ไว้ในวงเล็บปีกกา {curly braces}:
Hi, my name is Alice! I am 15 years old. Next year I'll be 16. My name has 5 letters. My name in uppercase: ALICE
ความมหัศจรรย์อยู่ที่ {curly braces} Python จะประเมินค่านิพจน์ที่อยู่ข้างใน แปลงผลลัพธ์เป็นข้อความ แล้วแทรกลงในสตริง
คุณใส่ได้แทบทุกอย่างในวงเล็บปีกกา ทั้งตัวแปร การคำนวณ การเรียกฟังก์ชัน หรือแม้แต่การเปรียบเทียบ มาดูตัวอย่างที่ใช้งานจริงมากขึ้น:
Item: coffee Price: $4.5 x 3 Total: $13.5
ลองเปรียบเทียบกับวิธีสร้างสตริงแบบเก่า ที่ใช้ + นำแต่ละส่วนมาต่อกัน:
name = "Alice"
age = 15
# Have to convert age, lots of + signs
print("Hi, my name is " + name + "!")
print("I am " + str(age) + " years old.")name = "Alice"
age = 15
# Just put variables inside {braces}
print(f"Hi, my name is {name}!")
print(f"I am {age} years old.")วิธีแบบเก่าต้องใช้ str(age) เพื่อแปลงตัวเลขเป็นข้อความเอง อย่าลืมว่าคุณใช้ + ต่อสตริงกับตัวเลขโดยตรงไม่ได้
f-string จัดการการแปลงนั้นให้โดยอัตโนมัติ อ่านง่ายกว่า เร็วกว่า และผิดพลาดน้อยกว่า ใช้ f-string เสมอเมื่อเขียนโค้ดใหม่
รวมทุกอย่างเข้าด้วยกัน: มินิโปรเจกต์
มารวมทุกอย่างไว้ในโปรแกรมเล็ก ๆ โปรแกรมเดียว โปรแกรมนี้แสดงรูปแบบที่คุณจะได้ใช้ในทุกโปรเจกต์ Python คือ เก็บข้อมูลไว้ในตัวแปร คำนวณ แล้วแสดงผลลัพธ์
============================
TIP CALCULATOR
============================
Meal: $52.50
Tax (8%): $4.20
Subtotal: $56.70
Tip (20%): $11.34
----------------------------
TOTAL: $68.04
============================ไม่ต้องกังวลกับส่วน :.2f ส่วนนี้แค่หมายถึง "แสดงทศนิยม 2 ตำแหน่งพอดี" (ดังนั้น 4.5 จะแสดงเป็น 4.50) เราจะพูดถึงการจัดรูปแบบอย่างละเอียดในภายหลัง
สิ่งสำคัญคือรูปแบบนี้: เก็บข้อมูล → คำนวณ → แสดงผลลัพธ์ นี่คือแก่นของทุกโปรแกรม ไม่ว่าจะยาว 10 บรรทัดหรือ 10,000 บรรทัด
ลองเปลี่ยนค่า meal_cost, tax_rate หรือ tip_rate แล้วรันอีกครั้ง!
แบบฝึกหัด
ถึงตาคุณแล้ว! แบบฝึกหัดเหล่านี้เรียงจากง่ายไปยาก และแต่ละข้อใช้สิ่งที่คุณได้เรียนมา
เคล็ดลับก่อนเริ่ม:
เขียนโปรแกรมที่แสดงผลตรงตามนี้ทุกตัวอักษร:
Hello, Python!การทดสอบจะตรวจว่าตรงกันทุกตัวอักษร รวมถึงเครื่องหมายจุลภาค ช่องว่าง และเครื่องหมายอัศเจรีย์
ค่าอาหาร $24.50 ภาษี $2.45 และทิป $5.00 โดยมีตัวแปรสร้างไว้ให้แล้ว
คำนวณยอดรวมแล้วแสดงผลในรูปแบบนี้ทุกตัวอักษร:
Total: $31.95สร้างตัวแปรสองตัว:
name กำหนดค่าเป็น "Alice"language กำหนดค่าเป็น "Python"จากนั้นใช้ f-string แสดงผล:
Hi, I'm Alice and I love Python!โค้ดนี้ควรคำนวณ พื้นที่ ของสี่เหลี่ยมผืนผ้า (ความกว้าง × ความสูง) แล้วแสดงผล แต่มี บั๊กสองจุด!
ลองรันโค้ดที่พังก่อน แล้วอ่านข้อความแจ้งข้อผิดพลาด จากนั้นแก้บั๊กทั้งสองจุดให้ได้ผลลัพธ์เป็น:
Area: 35สรุป: สิ่งที่คุณได้เรียนในบทเรียนนี้
เก่งมากที่เรียนบทเรียน Python บทแรกจบ! นี่คือทุกสิ่งที่คุณรู้แล้วตอนนี้:
| แนวคิด | หน้าที่ | ตัวอย่าง |
|---|---|---|
print() | แสดงผลบนหน้าจอ | print("hello") |
คอมเมนต์ (#) | โน้ตที่ Python ข้ามไป | # this is a note |
| สตริง | ข้อมูลข้อความในเครื่องหมายคำพูด | "hello" หรือ 'hello' |
| จำนวนเต็ม | จำนวนที่ไม่มีทศนิยม | 42, -7 |
| ทศนิยม | จำนวนที่มีจุดทศนิยม | 3.14, 0.5 |
| ตัวดำเนินการทางคณิตศาสตร์ | + - * / // % ** | 2 ** 10 → 1024 |
type() | บอกว่าข้อมูลเป็นชนิดอะไร | type(42) → int |
| ตัวแปร | กล่องมีชื่อสำหรับเก็บข้อมูล | age = 15 |
| f-string | แทรกตัวแปรลงในข้อความ | f"Age: {age}" |
สิ่งเหล่านี้ไม่ใช่แค่แนวคิดสำหรับผู้เริ่มต้นที่วันหนึ่งคุณจะไม่ได้ใช้อีก แต่เป็นรากฐานของ ทุก โปรแกรม Python แม้แต่โค้ดที่ซับซ้อนที่สุดก็คือการนำส่วนประกอบพื้นฐานเหล่านี้มาผสมกันอย่างสร้างสรรค์
บทต่อไปคืออะไร
ในบทเรียนถัดไป ตัวแปรและชนิดข้อมูล คุณจะได้เรียนเจาะลึกยิ่งขึ้นว่า Python เก็บข้อมูลอย่างไร รวมถึงค่าความจริง (True/False), None และการแปลงชนิดข้อมูล
คุณจะได้รู้ด้วยว่าทำไม 0.1 + 0.2 ถึงไม่เท่ากับ 0.3 ใน Python (และในภาษาโปรแกรมอื่น ๆ ทุกภาษา) และควรรับมืออย่างไร