Uploaded by chatreekitwannjak

ความรู้เบื้องต้นเกี่ยวกับการเขียนโปรแกรม Python

advertisement
เขียนโปรแกรมเบื้องต้ น
ด้ วยภาษา Python
ธีรวัฒน์ ประกอบผล
สถาบันเทคโนโลยีพระจอมเกล้าเจ้าคุณทหารลาดกระบัง
ภาษาโปรแกรม
>>> 3 + 3
6
https://www.python.org
การเขียนโปรแกรมภาษาไพทอน
•เกิดขึน้ เมื่อปี ค.ศ. 1980
•ต้องการให้เป็ นภาษาที่เขียน
สะดวก
•ใช้ได้ฟรี
ทำงำนร่ วมกับภำษำอื่น ๆ ได้ดี
โปรแกรมที่ไม่ซบั ซ้อน -> Python ตัวเดียว
งานอื่น ๆ เช่น Data Science → Python + packages
ตัวอย่ างงานที่ใช้
ตัวอย่ างงานจาก Python
•เขียนโปรแกรม
•งานด้านการประมวลผลข้อมูล
•งานด้านระบบอัตโนมัติ สมองกลฝั งตัว
Data Visualization
•นาข้ อมูลมาแสดงในรู ปแบบกราฟิ ก
•การทาต้ องรู้ วตั ถุประสงค์
•ไลบรารี matplotlib , Seaborn
บันทึกกราฟเป็ นไฟล์
เริ่มต้น
กล่าวสวัสดี
ถามชื่อ
กล่าวสวัสดี แล้ว
ตามด้วยชื่อ
จบ
ภำษำ Python
ข้อดีของภำษำไพทอน
•เขียนได้ทงั้ แบบโครงสร้างและโปรแกรมเชิงวัตถุ
•โครงสร้างง่าย ไม่ตอ้ งกาหนดชนิดของข้อมูลล่วงหน้า
•ใช้ได้หลายระบบปฏิบัตกิ าร
•มีไลบรารีกราฟิ กติดมาด้วย
•มีไลบรารีจานวนมาก เพิม่ ไลบรารีพเิ ศษได้
เช่ น จะเชื่ อมต่ อกับ MySQL เพิม่ PBM เข้ าไป
Scratch and Python
print(‘Hello World’)
from turtle import *
pendown()
for n in range(24) :
forward(10)
right(15)
penup()
ไพทอนเป็ นภาษาระดับสูง
การจัดการในเชิงลึกต้ องอาศัยภาษาอื่น ๆ ผ่ านการเรียกใช้ โมดูล
from ชื่ อโมดูล import คาสั่ ง , กลุ่มคาสั่ ง
เครื่ องมือสาหรับเขียนโปรแกรม
การทดสอบโปรแกรม ทาได้ 2 วิธี
พิมพ์ครั้งบรรทัด
•เขียนคาสั่ งด้ วย Python Shell
•เขียนคาสั่ งในรูปแบบไฟล์ โปรแกรม
สิ่ งที่มือใหม่ ควรระวัง เช่ น
การใช้ เครื่ องหมาย
() , [ ] , { }
เริ่มเขียน Python
เขียน Python บนเว็บ
ทดลองเขียนโปรแกรม
กิจกรรมที่ 1 (ต่ อ)
2. ลองเขียนโปรแกรมดังต่อไปนี ้ แล้วทดสอบการทางาน
2.1
x = 2
y = 3
print(‘x + y = ‘,x+y)
print(‘x * y = ‘,x*y)
print(‘y / x = ‘,y/x)
2.2
x = intput(“INPUT X : ”)
y = intput(“INPUT Y : “)
z =x+y
print(‘z = ‘,z)
รู ปแบบกำรเขียนโปรแกรม
แบบลาดับ
คาสั่ ง 1
คาสั่ ง 2
คาสั่ ง 3
คาสั่ ง 4
คาสั่ ง 5
การเขียนโปรแกรมแบบโครงสร้าง
การเขียนโปรแกรมแบบ OOP
คาสั่ง
คาสั่ง
คาสั่ง
คาสั่ง
คาสั่ง
คาสั่ง
คาสั่ง
การประมวลผลกับตัวเลข
การคานวณอย่างง่าย
สัญลักษณ์
ลองเปลี่ยนค่า
ตรวจสอบข้อมูล
การดาเนินการ
+
add
-
subtract
*
multiply
/
divide
Program flow
INPUT
PROCESSING
OUTPUT
Input command
Varibles
Print command
Keyboard.
Maths
Screen
Mouse
Loops
Graphics
Function
นิพจน์ (Expressions)
•ตัวดาเนินการทางคณิตศาสตร์
สัญลักษณ์
+
*
/
%
**
//
Z = (A + B) / C + (B * D)
ความหมาย
ตัวอย่าง
บวก (Addition)
C=A+B
ลบ (Subtraction)
C=A-B
คูณ (Multiplication)
C=A*B
หาร (Division)
C=A/B
หารเอาเศษ (Modulo)
C = A %B
ยกกาลัง (Exponent)
C = A ** B
หารปัดเศษ (Floor Division)
C = A//B
ตัวอย่ าง
• A=3
B=2
C = A*B + 5
->
3 * 2 + 5 = 11
C = (A+1)*3 + 2 - > (3 + 1) * 3 + 2 = 14
C = (2*A+1) + 3*(A + B) - > (2*3+1) + 3*(3 + 2) - > (6+1) + 3*5 = 22
คาสั่ งรับและแสดงผลข้ อมูล
• ฟั งก์ชันรับข้อมูล
input()
EX.
msg = input(“ป้อนข้อมูลครับ : “)
x = input()
• ฟั งก์ชันแสดงผลข้อมูล
print()
EX. print(“ข้ อมูลทีป่ ้ อนเข้ ามาคือ ”,msg)
1.
การระบุปัญหา
การคานวณพืน้ ที่สี่เหลีย่ ม
เริ่มต้น
รับความกว้าง
รับความยาว
คานวณพืน้ ที่
แสดงผลพืน้ ที่
จบ
ความกว้าง W
ความยาว L
ประมวลผล
พื้นที่ A
การคานวณพืน้ ที่สามเหลีย่ ม
เริ่มต้น
รับความยาว
รับความสูง
คานวณพืน้ ที่
แสดงผลพืน้ ที่
จบ
อินพุต
ความยาว L
ความสู ง H
ประมวลผล
พื้นที่ A
ตัวแปร ชนิดข้อมูล
แทนตาแหน่งหน่วยความจา
การประกาศตัวแปร
• เป็ นตัวอักษร ตัวพิมพ์เล็กพิมพ์ใหญ่ จะต่ างกัน
• เริ่มต้ นด้ วยตัวอักษรต้ องไม่ ซ้ากับคาสงวน
• ไม่ มีช่องว่ าง ใช้ เครื่ องหมาย underscore (_) คัน่
msg = “TEERAWAT PRAKOBPHON”
num1 = 2342
Temp = 37.5
Pi = 3.141
X = 0b01000001
ชนิดของข้ อมูล
•ค่าคงที่ - > Pi = 3.141
•ข้อมูลจานวนเต็ม
•ข้อมูลจานวนทศนิยม
•ข้อมูลเลขเชิงซ้อน
•ข้อมูลสตริง
•ข้อมูลตรรกะ
ชนิดของตัวแปร
int
ข้อมูลเชิง
ลาดับอืน่ ๆ
Long
จานวนเต็ม
Byte
ชนิดข้อมูล
ตัวแปร
ตัวเลข
ทศนิยม
Float
ออปเจ็กต์
สตริง
Complex
วันเวลา
บูลลีน
Decimal
ใข้ กบั การเงิน
บอกผลลัพธ์ จากการประมวลผลต่ อไปนี้
>>> A = 3
>>> B = 2
>>> C = (A + B*2) + (2*A + B*3 + 2)
>>> print(C)
>>> A = 5
>>> B = 3
>>> C = A/B
>>> C = A%B
>>> C = A//B
เริ่มต้น
รับจานวนสินค้า n
คานวณราคาสินค้า
P = 40 x n
คานวณราคาสินค้า
รวมภาษี
แสดงราคารวม
จบ
การคานวณราคาสิ นค้ า
โจทย์
เครื่ องกดเงิน ATM เครื่ องหนึ่งบรรจุแบงค์ 1000
แบงก์ 500 และแบงก์ 100
ถ้ าหากกดเงิน 4800 บาท จะมีแบงค์ ออกมาดังนี้
แบงค์ 1000 = 4
แบงค์ 500 = 1
แบงค์ 100 = 3
่ ATM โดยร ับจำนวนเงินเข้ำไป
จงเขียนโปรแกรมสำหร ับเครือง
่
แล้วให้เครืองแจ้
งออกมำว่ำมีแบงค ์แต่ละชนิ ดจำนวนเท่ำใด
วิธีคดิ
่ น
เริมต้
่
1.
ร
ับจ
ำนวนเงิ
น
ที
จะถอน
X
่
•อินพุต เงินทีจะถอน
2. B1000 เท่ำกับ X หำร 1000B1000
ประมวลผล
จานวนเงิ
ถ่ อน3.ด B500 เท่
่
B500
•ประมวลผล หาแบงค์
แต่นลทีะชนิ
ำกับเศษทีเหลื
อ หำรด้
วย 500
B100
่
4. B100 เท่ำกับเศษทีเหลื
อ หำรด้
วย 100
•เอาต์พุต จานวนแบงค์แต่ละชนิ
ด
5. แสดงผลจำนวนแบงค ์
จบ
กิจกรรมที่ 2
1. จงหาค่ าของการคานวณต่ อไปนี้
Z = 3*A+(2*B/3+4*2)*2
2. เขียนอัลกอริทึมและโปรแกรมคานวณพืน้ ที่วงกลม
3. เขียนอัลกอริทึมและโปรแกรมคานวณหาค่ าเฉลีย่ ของตัวเลข 4 ค่ า
แบบฝึ กหัด
•จงเขียนอัลกอริทึม และโปรแกรมสาหรับคานวณราคาสิ นค้ ารวม
ภาษีมูลค่ าเพิม่ 7% โดยมีสินค้า 2 รายการ ให้ ป้อนราคาและจานวนของ
สิ นค้ าแต่ ละรายการ จากนั้นให้ โปรแกรมแสดงราคารวมภาษีออกมา
•อินพุต .......
•ประมวลผล ……
•เอาต์ พตุ ……..
STRING
ข้อมู ลแบบ
ลิสต ์
และทู เพิล
ธีรวัฒน์ ประกอบผล
สถาบันเทคโนโลยีพระจอมเกล้าเจ้าคุณทหารลาดกระบัง
ข้ อมูลเก็บเป็ นโครงสร้ างมีลกั ษณะเป็ นช่ อง
ใช้ ตัวชี้ หรื อ index ในการอ้ างถึงข้ อมูล
ข้ อมูลแบบลิสต์
(List)
การประกาศตัวแปร
่ วแปร = [ข้อมู ล 1, ข้อมู ล 2,....,ข้อมู ล n]
ชือตั
ตัวอย่าง
data1 = [1, 3, 6, 9]
data2 = [2, 3.25, “TEE”, 8, 4]
data3 = [25]
ตัวอย่ างการดาเนินการกับลิสต์
การต่อลิสต์
การทาสาเนาแล้วต่อลิสต์
การทาอินเด็กซิง (indexing)
ตัวอย่ าง
สร้างลิสต์ของตัวเลข
กำรทำ สไลซิง (slicing)
ข้ อมูลเก็บเป็ นโครงสร้ างเหมือนลิสต์
แต่ แก้ ไขข้ อมูลไม่ ได้
ข้ อมูลแบบทูเพิล
(Tuple)
การประกาศตัวแปร
่ วแปร = (ข้อมู ล 1, ข้อมู ล 2,....,ข้อมู ล n)
ชือตั
ตัวอย่าง
data = (‘Name’, ‘Address’ ,age,’ID’)
Book = (‘Java’, ‘C++’, ‘Python’)
data3 = (25)
การประมวลผลข้ อมูลในลิสต์ และทูเพิล
•ดาเนินการผ่านเมธอด
เมธอด
การประมวลผล
append()
เพิ่มข้อมูลต่อท้ายลิสต์
clear()
ใช้ลบข้อมูลทัง้ หมดออกจากลิสต์
count()
ใช้นบั จานวนข้อมูลในลิสต์
index()
ใช้คน้ หาตาแหน่งของข้อมูลที่เก็บในลิสต์
pop()
ลบข้อมูลโดยระบุตาแหน่งที่ตอ้ งการลบ
len()
เป็ นฟั งก์ชนั แสดงข้อมูลที่อยูใ่ นลิสต์ เช่น len(str)
ตัวอย่าง
data1.append(x)
เพิม่ ข้อมูล x ลงไป
data1.clear()
data1.count(x)
x คือข้อมูลทีจ่ ะนับ
ทูเพิล เปลีย่ นแปลงข้ อมูลไม่ ได้ แต่ ลบได้
•ดาเนินการผ่านเมธอด และฟั งก์ชัน
เมธอด
การประมวลผล
index()
ใช้แสดงตาแหน่งของข้อมูล
count()
ใช้นบั จานวนข้อมูล
len()
เป็ นฟั งก์ชนั แสดงจานวนข้อมูล
data.index(x)
data.count(x)
len(data)
เมื่อ x คือข้อมูล
ข้ อมูลแบบ Dictionaries
>>> age = {‘Mary’:10 , ‘Sanjay’:8}
>>> print(age)
{‘Sanjay’ : 8, ‘Mary’ : 10}
ใช้คีย ์ (key) ในการอ้างถึงข้อมูล
ข้ อมูลแบบเซต
เก็บข้อมูลทีแ่ ต่ละรายการไม่ซา้ กัน
>>> A = {1,2,2,3,4,4,5,6,7,7,8,8,8}
>>>print(A)
1 9
3
7
2
6
8
4
ผลการรันโปรแกรม
A
B
กำรเขียนโปรแกรมตัดสิ นใจ
ตัวดาเนินการเปรี ยบเทียบ (Comparison Operators)
•ให้ผลลัพธ์เป็ นจริง กับเท็จ
สัญลักษณ์
พืน้ ฐาน
>
<
==
!=
>=
<=
ความหมาย
ตัวอย่าง
มากกว่า
X>Y
น้อยกว่า
X<Y
เท่ากับ
X == Y
ไม่เท่ากับ
X != Y
มากกว่าหรื อเท่ากับ
X >= Y
น้อยกว่าหรื อเท่ากับ
X <= Y
ตัวดาเนินการทางลอจิก
STRING
ตัวดาเนินการตรรกศาสตร์ (Logical Operators)
•ให้ผลลัพธ์เป็ นจริง กับเท็จ
สัญลักษณ์
ความหมาย
ตัวอย่าง
and
or
not
การ AND ผลลัพธ์เป็ นจริ งเมื่อเป็ นจริ งทั้งคู่
X and Y
การ OR ผลลัพธ์เป็ นเท็จ เมื่อเป็ นเท็จทั้งคู่
X or Y
กลับค่าทางลอจิก
not X
คาสั่ งมีทางเลือก (ตัดสิ นใจ)
•การเลือกทาแบบทางเดียว
•การเลือกทาสองทิศทาง
•การเลือกทาแบบหลายทิศทาง
คาสั่ งตัดสิ นใจ
•ใช้การตรวจสอบเงือ่ นไขในการตัดสินใจ
เลือกทาแบบทางเดียว
เริม่ ต้น
ตรวจสอบ
เงื่อนไง
จริง
เท็จ
งานที่ตอ้ งทา
ต่อไปหรือจบ
if (condition) : sc = int(input(‘กรุ ณาป้ อนคะแนนของคุณ = ‘))
statement()
if (sc >= 50) :
print(‘คุณสอบผ่ าน’)
print(‘ให้ กาลังใจนะครับ’)
คาสั่ งตัดสิ นใจ
•ใช้การตรวจสอบเงือ่ นไขในการตัดสินใจ
เลือกทาแบบสองทางเลือก
เริม่ ต้น
เท็จ
ตรวจสอบ
เงื่อนไง
จริง
if (condition) : sc = int(input(‘กรุ ณาป้ อนคะแนนของคุณ = ‘))
statement()
else:
if (sc >= 50) :
statement()
งานที่ทาเมื่อป็ นจริง
งานที่ทาเมื่อเป็ นเท็จ
ต่อไปหรือจบ
print(‘คุณสอบผ่ าน’)
else:
print(’คุณสอบไม่ ผ่าน’)
print(‘ให้ กาลังใจนะครับ’)
คาสั่ งตัดสิ นใจ
เลือกทาแบบหลายทางเลือก
เริม่ ต้น
จริง
มิฉะนั้น
ตรวจสอบ
เงื่อนไง
จริง
งานที่ทาเมื่อเป็ นจริง
มิฉะนั้น
ตรวจสอบ
เงื่อนไง
จริง
งานที่ทาเมื่อเป็ นจริง
งานที่ทาเมื่อเป็ นจริง
ต่อไปหรือจบ
ตรวจสอบ
เงื่อนไง
มิฉะนั้น
if (condition) :
statement()
elif (condition) :
statement() :
elif (condition):
statement()
else:
การทางานแบบมีทางเลือก
เริม่ ต้น
รับค่าคะแนน
F
x > 50
สอบตก
คะแนน
T
สอบผ่าน
จบ
ผลสอบ
การหาค่ าสั มบูรณ์ ของตัวเลข
เริม่ ต้น
x
รับค่า x
จริง
x<0
เท็จ
แสดงค่า x
x = x * (-1)
|x|
ตัวอย่ างโปรแกรมบวกเลข
เริม่ ต้น
ให้โจทย์
• ตัวอย่างนีจ้ ะให้โจทย์
แล้วให้ผู้เล่นป้ อนคาตอบ
ป้อนคาตอบ
เท็จ
ป้อนคาตอบ
ตรวจสอบ
คาตอบ
ถูก หรือ ผิด
ตรวจสอบ
เงื่อนไง
จริง
ถูกต้องครับ
ไม่ถกู ต้อง
ต่อไปหรือจบ
การทางานแบบมีทางเลือก
เริ่ มต้น
1. รับคะแนนสอบกลำงภำค
2. รับคะแนนสอบปลำยภำค
3. หำผลรวมของคะแนน
4. คะแนนรวมมำกกว่ำ 50
4.1 ถ้ำจริ ง สอบผ่ำน
4.2 ถ้ำเท็จ สอบไม่ผำ่ น
จบ
เริม่ ต้น
รับค่าคะแนน
F
x > 50
สอบตก
T
สอบผ่าน
จบ
แบบฝึ กหัด
•ทดลองรันโปรแกรมและหาผลลัพธ์ จากการรันโปรแกรมต่ อไปนี้
แบบฝึ กหัด
• จงเขียนอัลกอริทึม สาหรับคานวณผลการเรียน โดยคะแนนจะมาจาก การบ้ านมีคะแนน
เต็ม 20 คะแนน สอบกลางภาคมีคะแนนเต็ม 40 คะแนน สอบปลายภาคมีคะแนนเต็ม 40
คะแนน โดยเงื่อนไขผลการเรียนเป็ นดังนี้
มากกว่ า 80 คะแนน ดีมาก
มากกว่ า 50 คะแนน ผ่ าน
คะแนน 0 ถึง 50 ไม่ ผ่าน
• อินพุต .......
• ประมวลผล ……
• เอาต์ พตุ ……..
ประมวลผลทางคณิตศาสตร์
รับตัวเลขและการดาเนินการ
จริง
มิฉะนั้น
เลือก บวก
จริง
แสดงผลการบวก
มิฉะนั้น
เลือก ลบ
จริง
แสดงผลการลบ
แสดงผลการคูณ
ต่อไปหรือจบ
4
b =
3
add/sub/mul/div : mul
มิฉะนั้น
เลือก คูณ
a =
Answer = 12
แบบฝึ กหัด
การคานวณราคาสินค้า
เริม่ ต้น
• ร้ านค้ าร้ านหนึ่งขายของหลายชนิด และมีส่วนลดดังนี้
ราคารวมตั้งแต่ 500 บาทขึน้ ไป ลด 10%
รับราคาสินค้า
ราคารวมตั้งแต่ 1000 บาทขึน้ ไป ลด 20%
รับจานวนสินค้า
N
P
คานวณ
Total
คานวณราคารวม
ราคารวม
> 500
F
T
ราคารวม
> 1000
1. หำผลลัพธ์จำกกำรทำงำนต่อไปนี้
คาตอบ
INPUT x =
INPUT y =
2. หำผลลัพธ์จำกกำรทำงำนต่อไปนี้
คาตอบ
3. หำผลลัพธ์จำกกำรทำงำนต่อไปนี้
คาตอบ
แบบฝึ กหัด
•ร้ านค้ าร้ านหนึ่งขายของหลายชนิด และมีส่วนลดดังนี้
ราคารวมตั้งแต่ 500 บาทขึน้ ไป ลด 10%
ราคารวมตั้งแต่ 1000 บาทขึน้ ไป ลด 20%
ให้ แสดงราคาที่ต้องจ่ ายรวมกับภาษีการค้ า 7%
เขียนผังงานพร้ อมโปรแกรม
โจทย์ ทอยลูกเต๋ า
• ลองเขียนโปรแกรม
ทอยลูกเต๋า 3 ลูก
ป้อนคาตอบ
ตรวจสอบ
คาตอบ
สูง หรือ ต่า
โจทย์
• คะแนนการเรียนวิชาหนึ่งแบ่งเป็ นดังนี้
• การบ้านเต็ม 40
• สอบกลางภาคเต็ม 20
• สอบปลายภาคเต็ม 40
เขียนโปรแกรมประมวลผล ถ้าคะแนนตัง้ แต่ 50 ขึน้ ไป ผ่าน
แบบฝึ กหัด
เขียนโปรแกรมรับค่าคะแนน แล้วให้ตดั เกรด โดยมีเงือ่ นไขต่อไปนี้
• คะแนนตัง้ แต่ 80 ได้ A
• คะแนนตัง้ แต่ 70 ถึง 79 ได้ B
• คะแนนตัง้ แต่ 60 ถึง 69 ได้ C
• คะแนนตัง้ แต่ 50 ถึง 59 ได้ D
• คะแนนน้อยกว่า 50 ได้ F
การทาซ้า
เริ่มต้น
for x in range(10):
0
print(x)
1
ทาซา้ n ครัง้
งานทีท่ า
ครบ
เท็จ
จริง
2
3
4
5
6
7
8
9
ตัวอย่ าง
sub1 = [‘Physics’,’Math’,’Chem’]
print(‘วิชาทีผ่ มชอบคือ : ‘,sub1)
Data1 = [3, 8, 2, 9, 5]
for i in range(5):
print(Data1[i])
หาผลรวม
sum = 0
for x in range(1,101,1):
sum = sum + x
print(“sum = “,sum)
หาผลรวมของตัวเลขที่หารด้ วย 3 ลงตัว
sum = 0
for x in range(1,101,1):
if ((x%3)==0):
sum = sum + x
print(“sum = “,sum)
เริ่มต้น
โจทย์ : หาผลรวมตัวเลขที่หารด้วย 3 หรื อ 5 ลงตัว
sum = 0 , x = 1
เพิ่ม x
ทาซ้ าครบ
100 ครั้ง
T
F
F
หารด้วย 3
หรื อ 5 ลงตัว
T
sum = sum+x
แสดงผลรวม
หาผลรวม
เริ่มต้น
sum = 0
ทำซ้ ำ 10 ครั้ง
อ่านค่าในลิสต์
sum = sum + ค่าในลิสต์
เท็จ
ครบ
จริง
แสดงผล sum
จบ
แบบฝึ กหัด
• หาผลรวมของตัวเลข a ถึง b โดยเป็ นเลขทีห่ ารด้วย 3 หรือ 5 ลงตัว
ตัวอย่าง
a = ……..
b = ……..
sum =
ตัวอย่าง
a = 1
b = 10
sum = 33
คานวณค่ าฟังก์ ชัน
Function
และ OOP
ธีรวัฒน์ ประกอบผล
สถาบันเทคโนโลยีพระจอมเกล้าเจ้าคุณทหาร
ลาดกระบัง
ฟังก์ชนั
กับ
เมธอด
• โปรแกรมภาษาโครงสร้ าง (Structured Programming)
นิยมเรี ยกว่า “ฟังก์ชนั ”
EX.
x = len(str)
การเรียกใช้ฟังก์ชัน•โปรแกรมภาษาเชิงวัตถุ (Object-Oriented Programming)
นิยมเรียกว่ า “เมธอด”
str = str.upper()
function(a) EX.
a.function()
ฟังก์ ชันของ Python
•ฟั งก์ชันจากไลบรารีมาตรฐาน
•ฟั งก์ชันทีส่ ร้างขึน้ มาเอง
การสร้ างฟังก์ ชัน
def function_name([parameter list]):
statement
.........
[return expression]
Function
f(x)
2
= x +1
ฟังก์ชนั มีกำรคืนค่ำ
การเขียนโปรแกรมเชิงวัตถุ
•นิยามคลาส
คลาส Box
แบบฝึ กหัด
• เขียนโปรแกรมป้อนคะแนนการบ้าน คะแนนสอบกลางภาค คะแนนสอบปลายภายของ
นักเรียน 10 คน จากนัน้ แสดงผลข้อมูลของนักเรียน พร้อมเกรดแสดงผลออกมาอย่าง
น่าสนใจ
การประมวลผลทาง
คณิตศาสตร์
ธีรวัฒน์ ประกอบผล
สถาบันเทคโนโลยีพระจอมเกล้าเจ้าคุณทหารลาดกระบัง
ตัวอย่างโมดูล
การใช้ งานโมดูล
(Module)
•
•
•
•
โมดู ลคณิ ตศำสตร ์ (math module)
โมดู ลแสดงปฎิทน
ิ (calendar module)
โมดู ลแสดงเวลำ (time module)
โมดู ลพัฒนำ GUI (tkinter module)
รูปแบบการเรียกใช้ โมดูลและฟังก์ ชัน
• ใช้ คาสั่ ง import
import math
print(math.pow(5,2))
เรียกใช้ ฟังก์ ชันในโมดูล
• ใช้ คาสั่ ง from .. import
เรียกใช้ เฉพาะฟังก์ ชันภายในโมดูล
• ใช้ คาสั่ ง from .. import *
from math import pow
โหลดฟังก์ ชันทีม่ อี ยู่ท้งั หมดเข้ ามา print(pow(5,2))
• ใช้ คาสั่ ง import..as
โหลดเข้ ามาแล้ วเปลีย่ นชื่ อ
import matplotlib.pyplot as pl1
การประยุกต์
•NumPy/SciPy ฟังก์ชันกรรมวิธีเชิงตัวเลข และวิทยาศาสตร์
•ALGLIB
การวิเคราะห์ ทางพีชคณิต
•Pandas
เครื่ องมือในการวิเคราะห์ ข้อมูลและโครงสร้ างข้ อมูล
•PyGSL
การเชื่ อมต่ อกับ GNU Scientific Library
•ScientificPython
โมดูลการคานวณทางวิทยาศาสตร์
NumPy
• มำจำกคำว่ำ Numeric Python หรื อ Numerical Python
• เป็ นโมดูลขยำย บรรจุฟังก์ชนั สำหรับกำรคำนวณเชิงตัวเลข
• ออกแบบลักษณะของโครงสร้ำงข้อมูลใหม่
• เมื่อแสดงข้อมูลออกมำจะไม่มีเครื่ องหมำยคอมมำ ,
คณิตศาสตร์
import math
print(math.e ** 2)
ตัวอย่างฟั งก์ชันอืน่ ๆ
sqrt(x)
factorial(x)
pow(x,y)
sin(x)
>>math.sqrt(100)
คณิตศาสตร์
ใช้วงเล็บในการจัดกลุ่มประมวลผล
➢ (6 +5) * 3
➢ 6 + (5 * 3)
เรียกใช้โมดูลทีต่ อ้ งการ เช่น การสุ่มตัวเลข
>> from random import randint
>> randint(1,9)
>>x = randint(1,9)
>>y = randint(1,9)
>>z = x+y
ฟังก์ชนั แบบ Lambda (แลมบ์ดำ)
•ใช้คำว่ำ lambda มีรูปแบบดังนี้
var = lambda arg1[,arg2]... : expression
โจทย์
1.
2.
3.
4.
y = x2 + 2x + 1
y = (x+1)3 + x
y = (𝑥 + 1)
y = 2x+1
โจทย์
f(x) = (𝑥 2 + 3
เมื่อ x = 2, 4, 6,........,20
จานวนเฉพาะ
เริ่มต้ น
1. กาหนดตัวแปร prime เป็ น 0
2. รับค่ าตัวเลข n
3. กาหนดค่ า x เป็ น 2 แล้วทาซ้าจนถึง n – 1
3.1 ตรวจสอบว่ า n หารด้ วย x ลงตัวหรื อไม่
3.1.1 ถ้ าหารลงตัว ให้ prime เป็ น 1
4. ถ้ า prime เป็ น 0
4.1 เป็ นจานวนเฉพาะ
มิฉะนั้น
4.2 ไม่ เป็ นจานวนเฉพาะ
จบ
จานวนเฉพาะ..ปรับโปรแกรม
B
A
การเคลื่อนที่
ด้ วยความเร่ ง
รถยนต์คนั หนึ่ง ผ่านจุด A ด้วยความเร็ ว 2 m/s จากนั้นคนขับ
ได้ใช้ความเร่ ง 3 m/s2 อยากทราบระยะทางห่างจากจุด A เมื่อ
เวลาผ่านไปทุก ๆ 2 วินาที จนถึงวินาทีที่ 20 รถมาถึงจุด B
ความเร็ วต้น u
ความเร่ ง a
S(t)
S = ut + ½ at2
สมการการเคลื่อนที่
2
S = ut+(1/2)at
แก้สมกำร
• Ax2 + Bx + C = 0
A = …..
B = …..
C = …..
ลองคิดต่อ
Matrix
3 4 2
1 3 1
2 1 4
A
+
1 2 4
2 3 1
2 4 3
B
=
4 6 6
3 6 2
4 5 7
C
ตัวอย่ างการเขียนเชิงคณิตศาสตร์
S = 𝑥 2 𝑥 ∈ 𝑁, 0 ≤ 𝑥 ≤ 10}
S = {0, 1, 4, 9, 16, 25, 36, 49, 64, 81, 100}
ตัวอย่ าง
•S = {x2 | x ∈ N , 0 ≤ 𝑥 < 10}
การวาดกราฟ
ด้วยภาษา
Python
เรียกใช้ โมดูล matplotlib
วาดกราฟได้หลายรู ปแบบ เก็บไฟล์ภาพไว้ได้
ฟังก์ชันวาดกราฟอย่ างง่ าย
import matplotlib.pyplot as pl
pl.plot([3,5,20,8,10,25,18])
pl.show()
ฟังก์ชันวาดกราฟอย่ างง่ าย
import matplotlib.pyplot as pl
pl.plot([3,5,20,8,10,25,18],’o:r’)
pl.show()
คาสั่ ง plot
plt.plot(x_values, y_values, format_string[,x,y,format,])
การวาดกราฟเส้ น
มาร์ กเกอร์ ลักษณะเส้ น สี ของกราฟ
อักขระ
มาร์กเกอร์
อักขระ
มาร์กเกอร์
อักขระ
มาร์กเกอร์
อักขระ
’o’
‘v’
‘h’
‘1’
‘s’
‘^’
‘H’
‘2’
‘p’
‘<‘
‘D’
‘3’
‘*’
‘>’
‘d’
‘4’
‘P’
‘X’
‘8’
‘None’
‘+’
‘x’
X
‘.’
‘|’
|
‘,’
‘_’
+
-
.
มาร์กเกอร์
ไม่มี
กาหนดรูปแบบเส้ นกราฟ
อักขระ
รู ปแบบเส้น
อักขระ
รู ปแบบเส้น
’-’
เส้นทึบ
‘- .’
เส้นประจุด - สลับกับเป็ นขีด
‘- -’
เส้นประเป็ นขีด
‘:’
เส้นประเป็ นจุด
กาหนดสี ของเส้ นกราฟ
อักขระ
'b’
‘g’
‘C0’
สี
น้ ำเงิน
เขียว
อักขระ
‘r’
‘c’
‘C1’
สี
แดง
ไซแอน
อักขระ
‘m’
‘y'
‘C2’
สี
อักขระ
มำเจนตำ ‘k’
เหลือง ‘w’
’c→9’
สี
ดำ
ขำว
ฟังก์ชันวาดกราฟอย่ างง่ าย
import matplotlib.pyplot as pl
pl.axis([0,10,0,10])
for x in range(10):
y = x
pl.plot(5,5,’x’)
pl.plot(x,y,’x’)
pl.show()
ฟังก์ชันวาดกราฟอย่ างง่ าย
import matplotlib.pyplot as pl
x = range(0, 16, 2)
y = [25, 45, 60, 15, 23, 89, 12, 20]
pl.plot(x,y)
pl.show()
การวาดกราฟแท่ ง
ตัวอย่ำงปั ญหำและกำรประยุกต์
B
A
การเคลื่อนที่
ด้ วยความเร่ ง
รถยนต์คนั หนึ่ง ผ่านจุด A ด้วยความเร็ ว u m/s จากนั้นคนขับ
ได้ใช้ความเร่ ง a m/s2 อยากทราบระยะทางห่างจากจุด A เมื่อ
เวลาผ่านไปทุก ๆ 2 วินาที จนถึงวินาทีที่ 20 รถมาถึงจุด B
ความเร็ วต้น u
ความเร่ ง a
S(t)
S = ut + ½ at2
ระยะเบรกของรถยนต์
ความเร็ว km/h
10
15
20
30
40
50
60
70
80
ระยะหยุด m
5
9
15
18
22
30
35
38
43
โปรแกรม
สมกำรโพลิโนเมียล
•อันดับหนึ่ง
x + 7 = 0
•อันดับสอง
x2 + 2x – 3 = 0
สมการโพลิโนเมียลอันดับทั่วไป
f = x3 – 4x2 + x + 6 = 0
MATRICES
#solving linear equation
การแก้ระบบสมการเชิงเส้ น
5x1 - 4x2 + 2x3 = 3
3x1 + 2x2 - x3 = 4
x1 - 2x2 + 3x3 = 6
คาตอบ
5
3
1
−4 2 𝑥1 3
2 −1 𝑥2 = 4
−2 3 𝑥3 6
𝐴 𝑋 =𝐵
การฟิ ตสมการ แบบเชิงเส้ น
X
0
0.5
1
1.5
2
2.5
3
3.5
4
Y
2.0
1.65
1.54
1.31
1.2
0.82
0.75
0.3
0.15
y = -0.4507 x + 1.981
โปรแกรม
การฟิ ตสมการแบบเชิงเส้ น
X
0.5
2
3
4
6
8
9.5
Y
1
1.3
2.7
5
4
4.5
6
เลือกใช้ฟังก์ชัน polyfit
np.polyfit(x , y , n)
โครงงาน Python
โมดู ลเต๋าไพ
ทอน
ธีรวัฒน์ ประกอบผล
สถาบันเทคโนโลยีพระจอมเกล้าเจ้าคุณทหารลาดกระบัง
W
y มีคา่ มากขึน้
ลองสร้ างกราฟิ ก
ง่ าย ๆ
N
(0,0)
E
x มีคา่ มากขึน้
S
ส่ วนประกอบของเต่ าไพทอน
1. พืน้ ทีว่ าดรูปหรื อกระดาน (TurtleScreen)
2. อุปกรณ์ ทใี่ ช้ วาดรูป (RawTurtle)
เมธอดควบคุมการเคลื่อนที่ (Moving)
• ควบคุมการจรดปากกา แล้วลากเส้น
เมธอด
การประมวลผล
forward(ระยะ)
ไปข ้างหน้าตามแนวลูกศร โดยมีระยะเป็ นจานวนจุด
backward(ระยะ)
right(มุม)
left(มุม)
gotoxy(x,y)
home()
setx(x)
sety(y)
ไปด ้านหลังของลูกศร โดยมีระยะเป็ นจานวนจุด
่ าหนด
ิ าด ้วยมุมทีก
หมุนลูกศรตามเข็มนาฬก
(200 , 100) (300 , 100)
่ าหนด
ิ าด ้วยมุมทีก
หมุนลูกศรทวนเข็มนาฬก
ลากเส ้นไปยังตาแหน่ ง x , y ใหม่
่ ้น
กลับไปยังจุดเริมต
(0 , 0)
วาดเส ้นไปยังตาแหน่ ง x ใหม่ โดยค่า y เป็ นค่าเดิม
วาดเส ้นไปยังตาแหน่ ง y ใหม่ โดยค่า x เป็ นค่าเดิม
(200 , 0)
เมธอดควบคุม
เมธอด
การประมวลผล
pensize(size)
กาหนดขนาดของปากกาด ้วยตัวเลข size
pencolor(สี )
clear()
penup()
pendown()
reset()
speed(s)
bgcolor(สี )
กาหนดสีของปากกา ใช ้ได ้ 3 รูปแบบ
pencolor(color)
้
ลบสีทวาดออกไปทั
ี่
งหมด
pencolor(r, g, b)
pencolor()
้
้ วาดภาพ
่
ยกปากกาขึนออกจากพื
นที
่
จรดปลายปากกาลงไปเพือวาดภาพ
้
่ ้น
ลบทังหมดแล
้วกลับไปยังจุดเริมต
้
กาหนดความเร็วในการวาด โดย s มีคา่ ตังแต่
0 ถึง 10
กาหนดสีพน
ื้
0.0 - 1.0
circle(r) วาดรูปวงกลมร ัศมี r
เมธอดวาดรูป
fillcolor(สี)
เทสีลงไปในรูป
end_fill()
หยุดเทสี
่
่ าแหน่ ง,รูปแบบตัวอักษร)ใช ้เขียนข ้อความ
write(“ข ้อความ”,การเคลือนที
,ต
onclick(ฟังก ์ช ัน) ตรวจสอบการคลิกเมาส ์
ondrag(ฟังกัช ัน) ตรวจสอบการลากเมาส ์
ลองวาดรูป
ดังต่ อไปนี้
Robot Builder
START
กาหนดสีพนื้
วาดเท้า
วาดขา
วาดตัว
วาดมือ
วาดคอ
วาดหัว
วาดตา
วาดปาก
END
วิธีการพัฒนาโปรแกรม
•สร้างฟั งก์ชันวาดสี่เหลี่ยม
•กาหนดตาแหน่งแล้ววาดสี่เหลี่ยมตามขนาดทีก่ าหนด
Download