Essential Python

Download

  • ดาวน์โหลด Python 3.8 สำหรับนักเรียนที่ใช้ Windows
  • ตอนติดตั้งโปรแกรม ให้เลือก option “Add Python 3.8 to PATH”
  • นักเรียนที่ใช้ Linux/ Mac OS สามารถพิมพ์ python3 ใน terminal เพื่อเริ่มใช้งานได้เลย (ติดตั้งมาเรียบร้อยแล้ว)

Note – เหมือนตอนเราติดตั้ง sqlite ที่ต้อง add PATH จะได้สามารถเรียกใช้งานโปรแกรมนี้ได้ใน command prompt

Key Concept

Python เป็นภาษายอดนิยมในสายงาน computer science มี syntax ที่เข้าใจง่าย เรียนรู้ได้ไม่ยาก มี packages ให้เลือกใช้งานมากมายตั้งแต่การทำ web development ไปจนถึงงาน data science

  • module นี้เราฝึกเขียนโค้ดใน interactive python กด enter เพื่อรันและดูผลลัพธ์ได้เลย
  • เราสร้างตัวแปรด้วยเครื่องหมาย =
  • ชื่อตัวแปรห้ามขึ้นต้นด้วยตัวเลข เราแนะนำให้ใช้เป็นอักษรตัวพิมพ์เล็ก ถ้าชื่อยาวสามารถใช้ตัว _ มาเชื่อมคำได้ เช่น python_is_awesome
  • basic data types ใน python มีสี่ตัวคือ int, float, str, bool
  • method คือ function ที่ถูกออกแบบมาสำหรับ object class นั้นๆ
  • fstring คือ string template ที่เราสามารถดึงค่าจากตัวแปรมาใส่ได้

Review

หลังจากดูวีดีโอจบ นักเรียนสามารถอ่านสรุปวิธีการเขียน Python เบื้องต้นได้ที่นี่อีกครั้งหนึ่ง

Python in Command Prompt

ถ้าต้องการเช็คว่าคอมพิวเตอร์ของเราติดตั้ง python เวอร์ชั่นอะไร ให้พิมพ์ python --version ใน command prompt เราสามารถเข้าสู่โหมด interactive ด้วย python command

python --version

Basic Calculation

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

## basic calculation
1 + 1
2 - 2
3 * 3
4 / 4
5 ** 2
( (5 ** 2) + (6 ** 5) ) - 250

เราสามารถถาม python ได้ด้วยว่าสองฝั่งของสมการมีค่าเท่ากันหรือแตกต่างกันหรือเปล่า? รวมถึงมากกว่าน้อยกว่าด้วย operator เหล่านี้

  • เท่ากับ ==
  • ไม่เท่ากับ !=
  • มากกว่า >
  • น้อยกว่า <
  • มากกว่าหรือเท่ากับ >=
  • น้อยกว่าหรือเท่ากับ <=
## comparison
1 + 1 == 2
2 * 2 != 4
5 > 2
6 < 100
10 >= 10

คำตอบที่ได้จากการเขียน expression แบบนี้คือ True หรือ False (แปลตรงๆว่า ถูกหรือผิด) ในทางคณิตศาสตร์เราเรียกค่านี้ว่า bool หรือ boolean คิดค้นโดย George Boole ในปี 1854

George Boole color.jpg
George Boole (ที่มา wikipedia)

เวลาเราเขียนโค้ดใน interactive python เราไม่จำเป็นต้องใช้ฟังก์ชัน print() เพื่อแสดงผลใน console แต่เวลาเราเขียนโค้ดใน python script ต้องมีฟังก์ชัน print() เสมอ เราจะเรียนเรื่องการเขียนโปรแกรมใน module ต่อไป

## print is not required in interactive mode
print(1 + 2)
1 + 2

Case Sensitive

Python เป็นภาษาแบบ case sensitive ถ้าเราเขียน expression เปรียบเทียบคำว่า “hello” กับ “Hello” ผลลัพธ์คือ False นี่คือเหตุผลที่เราแนะนำให้นักเรียนเขียนชื่อตัวแปรเป็นตัวพิมพ์เล็กให้หมดจะได้จำง่ายๆ

"hello" == "Hello"   ## False
"hello" == "hello"   ## True

Comment

เราสามารถใส่ note หรือข้อความอธิบายโค้ดของเราด้วยสัญลักษณ์ # ตามด้วย comment ที่เราต้องการ

## this is a comment
## python is easier than I thought!

Print Function

ฟังก์ชันที่ใช้เยอะที่สุดใน python คือ print() เราใช้ฟังก์ชัน print เพื่อแสดงผลใน console

ถ้าเราต้องการแสดงผลข้อความหรือ text (ใน python เรียกว่า string) เราจะใช้เครื่องหมาย double " หรือ single quote ' ถ้า string ที่เราเขียนยาวมากและต้องขึ้นบรรทัดใหม่ ให้เราใช้ triple quote """

## print numbers
print(100)
print(2 ** 5)

## print string
print("hello world")
print('hello world')

## print long string many lines
print("""I just don't think
I can feel anything without you.""")

Variables

Python ใช้เครื่องหมาย = ในการสร้างตัวแปร (หรือเรียกว่า object) เราสามารถบวกลบคูณหารค่าที่เราเก็บไว้ในตัวแปรได้ ตัวอย่างด้านล่างเราเขียน incomeexpense เพื่อคำนวณ saving และปรินท์ผลลัพธ์ใน console

## variables
income = 25000
expense = 18000
saving = income - expense
print(saving)

ชื่อตัวแปรห้ามขึ้นต้นด้วยตัวเลข แอดแนะนำว่าใช้เป็นตัวพิมพ์เล็กทั้งหมด และถ้าชื่อยาวมีหลายคำให้ใช้ _ เชื่อมคำเข้าด้วยกัน เราเรียกการตั้งชื่อแบบนี้ว่า “snake case”

## snake case name
my_favourite_junk_food = "hotdog"
my_birth_country = "Thailand"
us_president_45 = "Donald Trump"

เด๋วพอเราเรียนไปเรื่อยๆจะรู้ว่าตัวแปรใน python เป็นได้มากกว่าแค่ตัวเลขหรือ string

ถ้าต้องการจะเปลี่ยนหรืออัพเดทค่าในตัวแปร ให้เราเขียน value ใหม่และ assign ไปที่ตัวแปรเดิมได้เลย ตัวอย่างนี้เราเปลี่ยน hotdog เป็น hamburger

## change value in variable
my_favourite_junk_food = "hotdog"
my_favourite_junk_food = "hamburger"

วิธีการลบตัวแปร เราใช้ keyword ว่า del ใน python จะมี reserved keywords สำหรับเขียนโปรแกรม เราไม่สามารถใช้คำเหล่านี้มาตั้งชื่อตัวแปรได้ เช่น if for while ดูรายชื่อ reserved words ได้ที่นี่

del my_favourite_junk_food

Data Types

ประเภทของข้อมูลพื้นฐานใน python จะมีอยู่สี่แบบคือ int, float, str, bool

  • int คือ integer หรือตัวเลขจำนวนเต็ม 100, 200, 300
  • float คือตัวเลขที่มีทศนิยม 3.45, 3.60, 100.23
  • str คือ string หรือ text ที่อยู่ในเครื่องหมาย single, double, triple quote
  • bool คือ boolean หรือค่า True False
## data type
my_name = "Toy"   ## string
my_age = 31       ## integer
my_gpa = 3.45     ## float
is_male = True    ## boolean

วิธีการดู type ของตัวแปรให้เราใช้ฟังก์ชัน type()

## check data type
print(type(my_name))
print(type(my_age))
print(type(my_gpa))
print(type(is_male))

Basic String Manipulation

มาลองดูวิธีการทำงานกับ string กันบ้าง เราใช้เครื่องหมาย + เพื่อเชื่อม string หลายๆคำเข้าด้วยกัน เรียกว่า string concatenation ตัวอย่างด้านล่างเราจะได้ string ใหม่ว่า “Hello World”

ถ้าเราใช้เครื่องหมายคูณ * จะเป็นการ copy string ตามจำนวนครั้งที่เราต้องการ เช่น Hello * 3 จะได้คำว่า “Hello Hello Hello”

## string manipulation
print("Hello" + " " + "World")
print("Hello " * 3)

เราใช้ฟังก์ชัน len() เพื่อนับจำนวนตัวอักษรและ white space ในตัวแปร string ประโยค “a duck walks into a bar” มีทั้งหมด 23 ตัวอักษร คอมพิวเตอร์มอง white space เป็นหนึ่งคาแรคเตอร์

## string
text = "a duck walks into a bar"

## functions for text
len(text)

ตัวแปร string ที่เราสร้างขึ้นมาจะมี functions เฉพาะสำหรับตัวมันเองด้วย เราเรียกฟังก์ชันเหล่านี้ว่า “methods” วิธีการเรียกใช้งาน method ให้เราพิมพ์ . ตามด้วยชื่อฟังก์ชัน

  • .upper() เปลี่ยนข้อความเป็นตัวพิมพ์ใหญ่ทั้งหมด
  • .capitalize() เปลี่ยนตัวอักษรตัวแรกของแต่ละ word เป็นตัวพิมพ์ใหญ่
  • .split() ใช้ตัดคำในประโยค โดย default จะตัดคำด้วยหนึ่ง white space ” “
  • .count() ใช้นับตัวอักษรหรือคำที่เราต้องการในประโยค
  • .replace() ใช้แทนที่ old word ด้วย new word
## string methods
text.upper()
text.capitalize()
text.split(" ")
text.count("a")
text.replace("duck", "superman")

Note – คอนเซ็ปต์เรื่อง OOP หรือ Object Oriented Programming อยู่เหนือ scope ของคอร์สเรียนนี้ พื้นฐานที่นักเรียนต้องรู้สำหรับ final project คือการเรียกใช้งาน function/ method นักเรียนที่อยากรู้ว่า OOP คืออะไร ลองดูวีดีโอสอน week 5 ในคอร์สนี้ของ Google

Function vs. Method

ฟังก์ชันใน Python จะมีอยู่สองแบบคือ function และ method แล้วมันแตกต่างกันยังไง?

  • function เช่น print() และ len() สามารถใช้ได้กับหลายๆ object class เช่น เราสามารถ print ค่าของตัวแปรที่เป็นได้ทั้ง int float str bool หรือ list ที่เราจะเรียนในบทต่อไป
  • method คือ function ที่ถูกออกแบบมาสำหรับ object class หนึ่งโดยเฉพาะ เช่น .upper() และ .lower() ที่จะใช้ได้กับ str เท่านั้น

ความแตกต่างที่เห็นได้ชัดที่สุดคือ function จะเรียกใช้งานปกติ (เหมือนฟังก์ชันใน Excel) โดยเราเขียนชื่อฟังก์ชันตามด้วยวงเล็บ ส่วน method จะเขียนชื่อ object (หรือชื่อตัวแปร) ตามด้วยดอท ชื่อฟังก์ชัน และวงเล็บ object.function_name()

text = "a duck walks into a bar"

## function
print(text)
len(text)

## method
text.upper()
text.lower()

หน้าที่ของ function/ method คือการ “do something” เหมือนเป็น verb. ที่เราต้องการทำกับ object หนึ่งๆ เทียบเท่ากับ commands ต่างๆทั้งของ cmd และ sqlite3 ที่เราเรียนมาใน module 1-4 เลย

Fstring Template

fstring คือการสร้าง string template สำหรับแสดงผลใน console เราสามารถดีงค่าจากตัวแปรมาใส่ใน template ได้ โค้ดด้านล่างเราสร้างตัวแปรชื่อว่า fullname และ country

## fstring example
us_president = "Donald Trump"
country = "United States"

วิธีการเขียน fstring จะขึ้นต้นด้วยตัว f ตามด้วย double quote " และข้อความ template ที่ต้องการ เราใช้ {variable} เพื่อดึงค่าจากตัวแปรมาใส่ใน template

print(f"{us_president} is the 45th president of the {country}.")

โค้ดไลน์นี้จะ print "Donald Trump is the 45th president of the United Stated" ใน console

Meet Python Creator

Guido van Rossum คือ computer scientist ชาวดัตช์ (ฮอลแลนด์) ผู้พัฒนาภาษา python ในปี 1989 ตอนแรกเค้าคิดภาษานี้เป็นงานอดิเรก ทุกวันนี้ python กลายเป็นภาษาที่ใช้กันอย่างแพร่หลายทั่วโลก

ฟังบทสัมภาษณ์ Guido ได้ในวีดีโอนี้ (4.01 นาที)

References


Formative Quiz

🏆 แบบทดสอบความรู้บทนี้มีทั้งหมด 25 ข้อ และแบบสอบถามความพอใจเกี่ยวกับบทเรียนใน module นี้ ขอบคุณทุกคนมากๆครับ เหลือเนื้อหาอีกแค่สอง modules เท่านั้น แล้วพบกันในบทต่อไป สู้ๆครับ


The Fun About to Happen

บทถัดไป เราจะเรียนเรื่อง data structure (list), control flow และ functions และวิธีการเขียน Python script สำหรับรันใน command prompt