กดคลิกขวาที่ไอคอนคอมพิวเตอร์ของท่าน เลือก properties และเลือก Advances system setting
จากนั้นกดปุ่ม Environment Variables ไปที่ system variable เลือกตัวแปรชื่อ PATH
ข้อดีข้อเสียอย่างย่อๆ คือ แบบ command line เวลาเราพิมพ์ผิด เราจะต้องพิมพ์ใหม่ ส่วนแบบ GUI เราพิมพ์ผิดแล้วก็อปแก้พิมพ์ใหม่ได้ มีแค่นี้แหละ
ตัวแปรประเภท Number ประกาศ data type เป็น เลขจำนวนเต็ม int() และ จำนวนทศนิยม float()
หรือประกาศเป็นเลขฐานต่างๆก็ได้ด้วยนะ เช่น เลขฐานสอง bin() เลขฐานสิบหก hex() เช่น
1. ให้ตัวแปร string ชื่อว่า hello แล้วกัน มีค่า
Hello, it's me. I was wondering if after all these years
2. ตรวจสอบความยาวของ hello
3. หาคำว่า me ใน hello
4. ตัดคำจาก space ออกเป็นคำๆ
5. แทนค่าคำว่า me ว่า you
คำเฉลย
hello = "Hello, it's me. I was wondering if after all these years"
len(hello)
hello.find("me")
hello.split(" ")
hello.replace("me","you")
เราสามารถใช้ escaped with backslashes (\n \r\n \t \0 \x) ใน python ได้ด้วยนะ
- List อันนี้อาจจะต่างจากพวกภาษา C แต่ภาษาอื่นๆก็มี มันคล้ายๆ array แต่ไม่ใช่ซะทีเดียว
list = [1, 2, ,3, ...]
การใส่ค่าใน list ไม่จำเป็นต้องใส่ค่าประเทภเดียวกัน เช่น
member = [“brown”, 94, True]
การเพิ่มสมาชิกใหม่ มี 2 แบบ คือ append, extend
- append : ใส่เป็นคำ หรือตัวเลขก็ได้ =>
list.append()
- extend : ใส่เป็น string character =>
list.extend([])
การลบสมาชิกออก ใช้
list.remove() ข้างในใส่สมาชิกตัวที่เราต้องการจะลบ
ถ้าล้างไส้ในทั้งหมด ใช้
list.clear()
การตรวจสอบความยาวของ list ใช้คำสั่ง
len(list)
ตัวอย่างการใช้งาน
fav_stock = ["ADVANC", "BEM", "CPALL", "CPF", "AU"]
1. เพิ่ม "BAY"
2. ลบ "AU"
3. เปลี่ยน "ADVANC" เป็น "INTOUCH"
4. หาจำนวนชื่อหุ้นใน fav_stock
คำเฉลย
fav_stock.append("BAY")
fav_stock.remove("AU")
fav_stock[0] = "INTOUCH"
len(fav_stock)
- Boolean อันนี้เหมือนภาษาอื่นๆ มีค่าสองแบบเท่านั้น คือ True กับ False
สรุป python ไม่ต้องประกาศตัวแปรให้วุ่นวาย เช่น uint8 i = 0; งี้ แค่ใส่ค่าไปเลย เช่น i = 0 จบ
หัวข้อที่ 5 comparison
การเปรียบเทียบค่าในภาษา python แบ่งเป็น 4 แบบ ดังนี้
- logical : and, or, not, and not
เช่น (len(list) >= 0) and (boo != False)
- identity : is, is not, not
เช่น not (boo)
- arithmetic : >, >=, <, <=, ==, !=
เช่น len(list) >= 0, boo != False
- Null : None
เช่น list != None
ซึ่งเรื่องนี้นำไปใช้ใน condition statement
หัวข้อที่ 6 condition statement
ใน python มี if-else ในการเลือกการตัดสินใจ
มี syntax ดังนี้
- แบบทางเดียว
if (consition):
<statement>
- แบบสองทาง
if (consition):
<statement>
else:
<statement>
- แบบหลายทาง
if (condition):
<statement>
elif (condition):
<statement>
else:
<statement>
มาลองทำดูดีกว่า
เขียนโปรแกรมตัดเกรดกันเถอะ ...
การตัดเกรดของวิชาการเรียน python พื้นฐาน มีเกณฑ์ ดังนี้
100 = A+, >=80 = A, >=70 = B, >=60 = C, >=50 = D, other = F
มาลงโค้ดดิ้งกัน
ให้ input มีชื่อตัวแปรว่า score และ output ชื่อว่า grade
# input student score
score = 78
if (score == 100):
grade = "A+"
elif ((score >= 80) and (score < 100)):
grade = "A"
elif ((score >= 70) and (score < 80)):
grade = "B"
elif ((score >= 60) and (score < 70)):
grade = "C"
elif ((score >= 50) and (score < 60)):
grade = "D"
else:
grade = "F"
print (grade)
หัวข้อที่ 7 loop statement
ใน python มี for และ while ในการใช้วนลูป
มาลองทำดูดีกว่า พิมพ์ค่าสมาชิกแต่ละตัวใน array_list
ซึ่งในภาษา python จะต่างจากภาษาอื่นๆ สามารถวนลูปค่าใน list ได้เลย ภาษาอื่นๆจะวนจากตัวเลข เช่น
array_list = [‘apple’, ‘papaya’, ’banana’, ’orange’]
for i in array_list:
print (i)
ให้พิมพ์เลข 1-10 ออกมาสู่หน้าจอ สามารถเขียนได้ดังนี้
#print 1-10
i=1
while i <= 10:
print(i)
i += 1
function range เป็น function ที่สร้าง range ค่าในช่วงที่เราต้องการ เช่น range(10) สร้างค่าเริ่มจาก 0 ไป 10 ตัว ดังนั้นจะได้ค่า 0-9 เราไม่สามารถเขียนเป็นเลขโดดๆใน for ได้
#print 1-10
for i in range(1,11):
print (i)
loop comprehensions คือการเขียน loop statement แบบลดรูป พร้อมการเปรียบเทียบค่า
ตัวอย่าง เช่น หาเลขระหว่าง 0-30 ที่หารด้วย 2 ลงตัว
ถ้าเราจะเขียนแบบเต็มๆ จะได้แบบนี้ ข้อดี คือ สามารถตรวจสอบได้เวลาที่โค้ดเรามีปัญหา
evens = []
for i in range(31):
if i % 2 == 0:
evens.append(i)
และการเขียนแบบลดรูปแบบ loop comprehensions
evens = [i for i in range(31) if i % 2 == 0]
หัวข้อที่ 8 การใช้ break, continue และ pass ใน statement
break คือ การให้โค้ดของเราหยุดทำงาน เมื่อเข้าสู่ statement ที่เรากำหนด
continue คือหลังจากเจอ statement ที่เรากำหนด ก็ให้ตรวจที่ statement ถัดไป
pass ใส่เมื่อเราไม่ให้มีการทำงานใดๆเมื่อเข้า statement ที่เรากำหนด
ตัวอย่าง
# check order
if (order == 0):
break
elsif (order == 1):
continue
elif (order % 3 == 0):
pass
else:
print (order)
หัวข้อที่ 9 Function
มี syntax การเขียนดังนี้
def fn_name(input):
…
return output
เรามีวิธีง่ายๆ นั่นคือ การนำโปรแกรมตัดเกรดของเรามาใส่ในฟังก์ชั่น โดยมี input คือ คะแนนของนักเรียนในวิชาการเรียน python พื้นฐาน และ คืนค่าเป็นเกรดของนักเรียน
def python_grade(score)
# ใส่โปรแกรมตัดเกรดของเราลงไป
if (score == 100):
grade = "A+"
elif ((score >= 80) and (score < 100)):
grade = "A"
elif ((score >= 70) and (score < 80)):
grade = "B"
elif ((score >= 60) and (score < 70)):
grade = "C"
elif ((score >= 50) and (score < 60)):
grade = "D"
else:
grade = "F"
return grade
การเรียกใช้งาน เป็นดังนี้
python_grade(78)
ถ้าต้องการแสดงผล สามารถใส่ print ครอบไว้ได้
print(python_grade(78))
หัวข้อที่ 10 Data structure
tuple
เราสามารถเก็บข้อมูล data type ใดก็ได้ ในตัวแปร tuple
t = 12345, 54321, 'hello!'
การ update ค่าใน tuple : t[0] = 0
เราสามารถนำ tuple นำมาบวกกันได้ด้วยนะ : t3 = t1 + t2
การลบค่าทั้งหมดใน tuple : del t
set
union => a | b
intersection => a & b
difference => a-b, b-a
symmetric difference => a ^ b
dictionary
การแสดงผลค่า key และ value ของสมาชิกแต่ละตัวใน dict
for key, val in num.items():
print (key, val)
การเรียงค่า key ของ dict โดย output จะเป็น list : sorted(num)
การเรียงค่า key และ value ของ dict โดย output จะเป็น list เช่นกัน: sorted(num.value)
for sort by key and show all member in dict, output is tuples data type
sorted(num.items(), key=lambda x:x[1])
หัวข้อที่ 11 การทำงานร่วมกันกับไฟล์
การอ่านไฟล์ มี syntax หลักๆ ดังนี้
f = open(filename, mode)
parameter ตัวแรก คือ ชื่อไฟล์ และตัวที่สอง คือโหมดการอ่านเขียนไฟล์
โหมดการเขียนอ่านไฟล์ มีดังนี้
r : read อ่าน
w : overwrite เขียนทับ
a : write at end of the file เขียนต่อ
mode++ : reading & writing => r+, w+ a+
มาดูการเขียนโค้ดกันดีกว่า
# open file
f = open(‘text.txt’, ‘a’)
# read file
code = f.read()
หลังจากอ่านไฟล์แล้ว สามารถส่วนนี้ไปใช้งานได้ แต่ประเภทของตัวแปรจะเป็นแบบ binary ดังนั้นอาจจะต้องแปลงเป็น string โดยใช้ decode("utf-8") เช่น
# find word in line of file
if (code.find(b"file") >= 0):
print (code)
elif (code.decode("utf-8").find(b"line") >= 0):
print (code)
# spilt line
lines = code.strip().splitlines()
# read single line of a file
f.readline()
# write file
f.write(“blah blah blah”)
#close file
f.close()
หัวข้อที่ 12 Exception handling
syntax error คือ การที่ compiler แจ้งในส่วนที่เราเขียนโค้ดผิด syntax ที่เราพบเห็นกัน มีดังนี้
SyntaxError : invalid syntax
IndexError: string index out of range
NameError: name 'n' is not defined
exception คือ การที่ compiler แจ้งเราว่า code error ไม่สามารถทำงานต่อได้ มี Error defect ดังนี้
ZeroDivisionError: division by zero
NameError: name 'test2' is not defined
TypeError: unsupported operand type(s) for -: 'str' and 'int'
handling exception การจัดการเมื่อโค้ดของเรามีปัญหา มี syntax การเขียน ดังนี้
try:
// Protected code
except:
// Catch block
else:
// The finally block always executes.
การทำงาน ทำในส่วนของ try ก่อน ถ้าทำงานในส่วนนี้สำเร็จ ก็คือจบ ถ้าไม่สำเร็จ จะไปในส่วนของ except ต่อ
raising Exceptions ถ้าเปรียบเทียบกับ JAVA เหมือน throw
raise ValueError('A very specific bad thing happened')
ตัวอย่างการใช้งาน เช่น การหารด้วยศูนย์
try:
result = input1 / input2
except ZeroDivisionError:
print (“cannot divide by 0”)
ปล เรื่องของ OOP ขออนุญาติตัดออกในตอนนี้นะ เพราะจะยากกว่านี้อีก step นึง
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
ในบล็อกนี้คิดว่า น่าจะครอบคลุมการเขียน python ขั้นต้นแล้วนะ
และเนื้อหาในนี้ เราเอามาลองใช้กับ ovlwegrammo ไม่แน่ใจว่าคนอ่านจะชอบอ่านแบบยาวๆ หรือสั้นๆมีละตอนมากกว่า
สุดท้าย จริงๆเรายังไม่ได้อนุญาติเพื่อเผยแพร่ไฟล์สไลด์ที่ไป workshop มา
ดังนั้น เอางี้แล้วกัน แปะลิ้งที่จำเป็นต่อการเรียน python เอาแล้วกันเนอะ
-
python 3 document ฉบับ official
-
การเขียน python ฉบับภาษาไทย
-
codecademy เขามีสอน python ด้วยนะ ง่าย มีแบบฝึกหัดให้ทำตลอดๆ
และฝากที่เคยเขียนไว้ของ python ทั้งแปดตอนด้วยคะ ซึ่งใช้ได้บ้าง งงๆบ้าง ก็ว่ากันไป
-
ep1 python : academy fantasia เอ้ยยย codecademy
-
ep2 python : python กับ excel
-
ep3 python : python กับ excel กลับไปใช้ openpyxl อย่างเดิมดีกว่า
-
ep4 python : สมัครเรียนที่ coursera.org + ตัวอย่าง code เขียน excel จาก .txt + แอบแจก A-Z list
-
ep5 python : เก็บตกของฝาก python -> datetime and split text และการวนลูป
-
ep6 python : understand python ไม่ได้แปลว่าคุณเข้าใจไพธอนไหม มันแปลว่า...
-
ep7 python : การแตกไฟล์ .zip ด้วยพี่เหลือม (extract .zip file by coding python)
-
ep8 python : compile python file to exe file (or user can't edit my code)
ปล. จริงๆวาปไปอยู่ในนี้แล้ว
https://owlvegrammo.firebaseapp.com/