แนะนำภาษาไพธอน

Download Report

Transcript แนะนำภาษาไพธอน

นิพจน์ ตัวแปร และฟั งก์ชนั
เนื้อหา
• การคานวณบนคอมพิวเตอร์
• นิ พจน์ ตัวแปร และลาดับความสาคัญ
• ประเภทตัวแปร
• การอ่านข้อมูลเข้า
• ตัวอย่างการคานวณอย่างง่าย
2
เครื่องคิดเลข
• เราสามารถใช้คอมพิวเตอร์เป็ นเครื่องคิดเลขได้
• พิมพ์ใน Python Shell
Python Shell ใน Wing IDE
3
เครื่องคิดเลข
• ทดลองพิมพ์
ป้อนลงใน Python Shell
>>> 10 * 5
50
คาตอบที่ได้รบั
>>> 1 + 2 + 3 + 4
10
>>> 1+2+3+4
10
ช่องว่างไม่มีผล
คือการยกกาลัง
>>> 1 * 4 + 5 ** 10
9765629
4
นิพจน์
• สิ่งที่เราป้อนเข้าไปใน Console ของไพธอนเรียกว่า
นิพจน์ (expression)
• ที่ Console เมื่อคอมพิวเตอร์ได้รบั นิ พจน์จะนาไป
ประมวลผลโดยการคานวณ แล้วพิมพ์ผลลัพธ์ออกมา
5
ทดลองคานวณ
• วัตถุชิ้นหนึ่ งเคลื่อนที่ดว้ ยความเร็วต้น 10 เมตรต่อ
วินาที มีความเร่ง 2 เมตร2/วินาที เมื่อเคลื่อนที่ไป 5
วินาที วัตถุจะอยูห่ า่ งจากจุดเริ่มต้นกี่เมตร?
s = ut + at2/2
10 * 5 + 2 * (5*5) / 2
6
ตัวดาเนินการ (1)
• ในการเขียนนิ พจน์ ในการคานวณข้างต้น เราได้ใช้ "ตัว
ดาเนินการ (Operator)" เช่น +, -, *, / เพื่อนาข้อมูล
มาประมวลผล
• ตัวดาเนิ นการระบุการประมวลผลที่เกิดขึ้ นกับตัวถูก
ดาเนินการ (Operand)
ตัวถูกดาเนินการ
10 * 5
ตัวดาเนินการ
7
ตัวดาเนินการ (2)
• ตัวดาเนิ นการมีท้งั แบบ

ทวิภาค (binary) ที่ทางานกับข้อมูลสองตัว เช่น +, -, *
5*3

10 – 2
15*7
เอกภาค (unary) ที่ทางานกับข้อมูลตัวเดียว เช่น –
-3
+2
-5 * 7
8
ตัวดาเนินการ (3)
• ตัวดาเนินการทางคณิตศาสตร์บางส่วนแสดงดังตารางต่อไปนี้
ตัวดาเนินการ
+
*
/
%
**
ความหมาย
บวก
ลบ
คูณ
หาร
หารเอาเศษ
ยกกาลัง
ตัวอย่าง
3+5
4-2
4.5*10
หน้าถัดไป
หน้าถัดไป
3**4
9
การหารในไพธอน
• ตัวดาเนิ นการหารมีหลัก ๆ สองแบบ
หารเอาผลลัพธ์
นิพจน์
ผลลัพธ์
4/2
2.0
3/2
1.5
10/7 1.4286
3.0/2
1.5
10/7.0 1.4286
หารเอาเศษ
นิพจน์
4%2
3%2
10%7
3.0%2
10%7.0
ผลลัพธ์
0
1
3
1.0
3.0
10
ประเภทของจานวนในไพธอน
• ข้อมูลประเภทตัวเลขในไพธอนมี 2 แบบคือ จานวน
เต็ม (integer) กับ จานวนจริง (floating point)
จานวน
เต็ม
ค่า
จานวนจริง
ค่า
10
3-2
19*5
10
1
95
10.0
3.0-2
19*5.2
10.0
1.0
98.8
11
ทดสอบความเข้าใจ
นิพจน์
ค่า
2 + 3 * 6
(2+3) *6
3/5*2
3*5.0/2
20
30
1.2
7.5
12
สรุป: จานวนเต็ม - จานวนจริง
• ถ้าเขียนจานวนโดยไม่ใส่จุดทศนิ ยม จะถือว่าเป็ น
จานวนเต็ม
• ผลลัพธ์
การดาเนิ นการระหว่างจานวนเต็มกับจานวนเต็มได้
ผลลัพธ์เป็ นจานวนเต็ม ยกเว้นการหาร
 การหารจะให้ผลลัพธ์เป็ นจานวนจริง
 การดาเนิ นการที่เกี่ยวข้องกับจานวนจริง ได้ผลลัพธ์เป็ น
จานวนจริง

13
3/5*2
• การคานวณทัว่ ไปจะกระทาจากซ้ายไปขวา
((3/5)*2)
( 0.6 *2)
14
ลาดับความสาคัญของตัวดาเนินการ
• แต่ตวั ดาเนิ นการมีความสาคัญไม่เท่ากัน เช่น * หรือ /
สาคัญกว่า + หรือ -
2+3*6
2+(3*6)
15
นี่มนั ก็แค่...
• คณิตศาสตร์ระดับประถม
เท่านั้นเอง!
16
ความสาคัญของตัวดาเนินการ
ลาดับที่
ตัวดาเนินการ
ตัวอย่าง
1
2
3
()
**
-,+ (เอกภาพ)
(3+4)
2**3
-5, +10
4
5
*,/,%
-,+
3*4, 7%2
2+7, 3-4
• ตัวดาเนิ นการที่สาคัญเท่ากันจะทาจากซ้ายไปขวา
ยกเว้นการยกกาลัง
17
ทดลองคานวณ (1)
2+5*6/3+(7-2*3)
ผลลัพธ์คือ?
13.0
18
ทดลองคานวณ (2)
2 ** 2 ** 3
ผลลัพธ์คือ?
2 ** (2 ** 3)
8
2
= 256
19
การคานวณซ้ า ๆ
• ก้อนหินมวล 2 kg เริ่มต้นหยุดนิ่ ง มีแรงกระทาไป
ทางซ้าย 2.5 นิ วตั้น อยากทราบว่าที่เวลา 1 วินาที, 5
วินาที และ 15 วินาที ก้อนหินจะอยูท่ ี่ตาแหน่ งใด
(2.5/2.0)*1*1/2
(2.5/2.0)*5*5/2
(2.5/2.0)*15*15/2
ซ้ า
ซ้อน
20
ตัวแปร
• เราสามารถใช้ตวั แปรในการอ้างถึงผลลัพธ์จากการ
คานวณได้
a = 2.5/2.0
a*1*1/2
a*5*5/2
a
1.25
a*15*15/2
21
ตัวแปร
a = 2.5/2.0
a
1.25
• ตัวแปรเป็ นสิ่งที่ใช้อา้ งถึงข้อมูลต่าง ๆ
• กาหนดให้ตวั แปรอ้างถึงข้อมูลโดยใช้เครื่องหมาย =
• หลังจากนั้นเมื่ออ้างตัวแปรก็จะได้ขอ้ มูลนั้นกลับมา
22
ตัวแปรเปลี่ยนค่าได้ (1)
a
a
b
a
a
a
a
a
a
=
*
=
+
=
+
=
10
5
3
b
7
b
b + 5
+ b
50
13
10
8
11
23
ตัวแปรเปลี่ยนค่าได้ (2)
a = 10
a = a + 1
11
24
ตัวแปรเปลี่ยนค่าได้ (3)
x = 10
x = x * 2
20
25
ตัวแปรเปลี่ยนค่าได้ (4)
x = 10
x = x * 2 + 5
25
26
การทางานบน Wing IDE
Shell หรือ Console
พิมพ์คาสั ่งหรือนิพจน์
Python จะคานวณ
แล้วแสดงผลลัพธ์ทนั ที
เมื่อกด Enter
27
ป้อนโปรแกรมใน WingIDE
ส่วนพิมพ์/แก้ไข
โปรแกรม
คาสั ่งในนี้จะถูกทางานเมื่อสั ่ง Run
สามารถเขียนและแก้คาสั ่ง
ได้หลายบรรทัดก่อนสั ่งให้ทางาน
28
โปรแกรม
• โปรแกรมคือรายการของคาสัง่ ที่เรียงต่อกัน
a
b
a
c
b
c
a
1
=
=
=
=
=
+
+
10
a +
b
12
a +
a*b
b +
a -
5
ทดลอง
นาไปป้อนใน
Wing IDE
c
c
c
29
ผลลัพธ์
ผลลัพธ์คือความว่างเปล่า!
• เพราะว่าในโปรแกรมยังไม่มีคาสัง่ ที่สงั ่ ให้แสดงผล
ลัพธ์ของการคานวณ
30
คาสั ่งพิมพ์
• ในการพิมพ์ค่าของข้อมูล สามารถใช้ฟังก์ชนั
print
ในการสัง่ พิมพ์ได้
31
โปรแกรม
• โปรแกรมคือรายการของคาสัง่ ที่เรียงต่อกัน
a = 10
b = a +
print(a
c = 12
b = a +
c = a*b
print(a
print(1
5
– b)
c
เพิ่มคาสั ่ง
print
ให้แสดงผลลัพธ์
ของนิพจน์ที่ตอ้ งการ
+ b + c)
+ a – c)
32
เมื่อสั ่ง Run จะเห็นผลลัพธ์
33
การเรียกฟั งก์ชนั
print(10)
ชื่อฟั งก์ชนั
อาร์กิวเมนท์ (argument)
34
การทางานในการเรียกฟั งก์ชนั
print(a + b * 2)
20
สมมติว่า
a = 5
b = 10
25
print(25)
• จะมีการคานวณนิ พจน์ที่ถกู ส่งให้กบั ฟั งก์ชนั ให้เสร็จก่อน
ส่งค่าไปให้กบั ฟั งก์ชนั นั้น
35
โปรแกรมง่าย ๆ
• เรามีเงินในกระเป๋าดังนี้
เหรียญบาท 5 เหรียญ
 เหรียญสิบบาท 7 เหรียญ
 ธนบัตรใบละ 20 บาท 2 ใบ
 ธนบัตรใบละ 100 บาท 3 ใบ

มีเงินรวมทั้งสิ้นกี่
บาท?
sum1 = 1 * 5
sum10 = 10 * 7
sum20 = 20 * 2
sum100 = 100 * 3
sum = sum1+sum5+sum20+sum100
print(sum)
36
โปรแกรมง่าย ๆ (2)
• หรือสามารถเขียนโดยไม่ตอ้ งใช้ตวั แปร sum ก็ได้
sum1 = 1 * 5
sum10 = 10 * 7
sum20 = 20 * 2
sum100 = 100 * 3
print(sum1+sum5+sum20+sum100)
37
พิจารณา
โปรแกรมสอง
โปรแกรมนี้
โปรแกรมทั้ง
สองทางาน
เหมือนกัน
โปรแกรมใด
ที่อ่านแล้ว
เข้าใจเป้าหมาย
มากกว่า?
ชื่อและความหมาย
a = 1 * 5
b = 10 * 7
c = 20 * 2
d = 100 * 3
e = a + b + c + d
print(e)
sum1 = 1 * 5
sum10 = 10 * 7
sum20 = 20 * 2
sum100 = 100 * 3
sum = sum1+sum5+sum20+sum100
print(sum)
38
คาแนะนา
• เขียนโปรแกรมให้คนอ่าน
• เพราะอย่างน้อยก็คณ
ุ คนหนึ่ง
นั ่นเอง ที่ตอ้ งอ่านโปรแกรมที่
คุณเขียน
39
การใส่หมายเหตุ (#)
• เพื่อทาให้โปรแกรมอ่านง่ายขึ้ น เราสามารถใส่หมาย
เหตุ (comment) ที่เขียนอธิบายโปรแกรมได้
• ทุกอย่างหลังเครื่องหมาย # จะถือว่าเป็ นหมายเหตุ
40
โปรแกรมพร้อมหมายเหตุ
โปรแกรมนี้ คำนวณเงินรวม
# จำกจำนวนธนบัตรประเภทต่ำงๆ
sum1 = 1 * 5
# เงินรวมของธนบัตร
#
1
บำท
sum10 = 10 * 7
sum20 = 20 * 2
sum100 = 100 * 3
print(sum1+sum5+sum20+sum100)
41
ข้อมูลประเภทข้อความ
• คอมพิวเตอร์นอกจากจะคานวณด้านตัวเลขได้แล้ว ยัง
สามารถประมวลผลข้อมูลแบบอื่น ๆ ได้มากมาย
• ข้อความ (string) ก็เป็ นข้อมูลอีกประเภทหนึ่ งที่
สามารถประมวลผลได้
• สตริงเป็ นประเภทข้อมูลสาหรับลาดับของของอักขระ
”Hello
”Hello, world”
42
การระบุขอ้ มูลประเภทข้อความ
• ระบุภายในเครื่องหมายคาพูดคู่ ”Hello” หรือภายใน
เครื่องหมายคาพูดเดี่ยว ’World’
• เครื่องหมายคาพูดที่ใช้จะต้องเปิ ด-ปิ ดแบบเดียวกัน
• นอกจากนี้ ยังสามารถใส่เครื่องหมายพิเศษภายในได้
โดยขึ้ นต้นด้วยเครื่องหมาย \ (ทับกลับข้าง)
43
ตัวอย่างข้อมูลประเภทข้อความ (1)
print("hello")
print('hello')
print("I'm 9")
print('I'm 9')
print('I\'m 9')
print("I\'m 9")
hello
hello
I'm 9
ผิดพลาด
I'm 9
I'm 9
44
ตัวอย่างข้อมูลประเภทข้อความ (2)
print("123")
print(123)
print("12" + "3")
print(12 + 3)
print("12" + '3')
print("12" + 3)
123
123
123
15
123
ผิดพลาด
45
โปรแกรมคานวณที่ดดู ีข้ ึน
sum1 = 1 * 5
sum10 = 10 * 7
sum20 = 20 * 2
sum100 = 100 * 3
sum = sum1+sum5+sum20+sum100
print("The total is",sum)
The total is 415
46
โปรแกรมคานวณที่ดดู ีข้ ึน
sum1 = 1 * 5
sum10 = 10 * 7
sum20 = 20 * 2
sum100 = 100 * 3
sum = sum1+sum5+sum20+sum100
print("The total is",sum,"bath.")
The total is 415 bath.
47
ของแถม: print ไม่ข้ ึนบรรทัดใหม่
• สามารถสัง่ พิมพ์ขอ้ มูลด้วยฟั งก์ชนั print
• พิมพ์เสร็จจะขึ้ นบรรทัดใหม่
• ถ้าต้องการยกเว้นการขึ้ นบรรทัดใหม่ ให้ระบุ option
end เพิ่มเติม ดังตัวอย่างด้านล่าง
print(10)
print(20)
print(10,end='')
print(20)
10
20
1020
ส่วนนี้ระบุให้ฟังก์ชนั print พิมพ์สตริงว่างแทนการขึ้นบรรทัดใหม่ทา้ ยการพิมพ์
48
การรับข้อมูลจากผูใ้ ช้
• เราสามารถอ่านข้อมูลจากผูใ้ ช้โดยใช้ฟังก์ชนั
input
• ฟั งก์ชนั ดังกล่าวจะคืนค่าเป็ นข้อมูลประเภท string
49
ตัวอย่างการใช้งานใน Console
>>> name = input()
Somchai
>>> print("Hello", name)
Hello Somchai
>>> a = input()
10
>>> b = input()
100
>>> print(a+b)
10100
50
ข้อสังเกต
• พิจารณาคาสัง่
print(a+b)
• เนื่ องจากตัวแปร a และ b เก็บข้อมูลประเภท string ที่
ได้รบั จากฟั งก์ชนั input การนา string มาบวกกันจึงเป็ น
การนาข้อความมาต่อกันเฉย ๆ
51
?????
• แล้วเราจะคานวณค่าที่ได้รบั จากผูใ้ ช้ได้อย่างไร ในเมื่อ
ข้อมูลที่รบั ได้มีแค่ขอ้ มูลประเภทข้อความ (string)
เท่านั้น
52
การแปลงประเภทข้อมูล
• เรามีฟังก์ชนั int, float, และ str สาหรับแปลง
ข้อมูลให้เป็ นข้อมูลประเภทต่าง ๆ
int("10")
float("10")
float(10)
int(10.6)
10
10.0
10.0
10
53
การแปลงประเภทข้อมูล
int("10")+10
float("10")+10
float(10)+int(5)
str(10)+str(5)
20
20.0
15.0
105
54
การแปลงระหว่าง float และ int
int(10.2)
int(10.9)
int(-10.1)
10
10
-10
ฟั งก์ชนั int คืนจานวนเต็มที่ได้หลังจากการตัดส่วนทศนิยมออก
55
Conversion between float and int (2)
เราสามารถใช้ฟังก์ชนั round ที่ปัดค่าให้เป็ นจานวนเต็มที่ใกล้ที่สุดได้
round(10.2)
round(10.9)
10
round(-10.1)
-10
11
56
ฟั งก์ชนั ที่สาคัญอีกสองฟั งก์ชนั
ฟั งก์ชนั
abs(x)
ความหมาย
คืนค่าสัมบูรณ์ของ x
pow(x,y)
คืนค่า xy
57
โปรแกรมบวกเลข
# This program adds two numbers
astr = input()
a = int(astr)
bstr = input()
b = int(bstr)
print("The result is",a+b)
58
การส่งค่าต่อเนื่องในฟั งก์ชนั (1)
• พิจารณาส่วนของโปรแกรม
astr = input()
a = int(astr)
• เราใช้ตวั แปร astr เพื่อรับสตริงจากผูใ้ ช้แล้วนามาแปลง
เป็ นจานวนเต็มเก็บไว้ที่ตวั แปร a เท่านั้น
• เราสามารถละตัวแปร astr ออกได้โดยเขียนเป็ น
a = int(input())
59
การส่งค่าต่อเนื่องในฟั งก์ชนั (2)
• พิจารณาการทางานของส่วนของโปรแกรม
a = int(input())
input()
"12345"
int
12345
a
a = 12345
60
โปรแกรมคานวนเงิน (ปรับปรุง)
# This program calculates total amount
# of money from numbers of bank notes
p1 = int(input())
sum1 = 1 * p1
p5 = int(input())
sum5 = 10 * p5
p20 = int(input())
sum20 = 20 * p20
p100 = int(input())
sum100 = 100 * p100
sum = sum1+sum5+sum20+sum100
print("The total is",sum,"bath.")
61
การระบุขอ้ ความนา
• เราสามารถระบุให้ฟังก์ชนั input แสดงข้อความนา
ก่อนจะอ่านข้อมูลได้ โดยส่งค่าสตริงให้กบั ฟั งก์ชนั
input
Enter X: 100
110
62
มุมนักคิด
• มีวตั ถุชิ้นหนึ่ ง เคลื่อนที่จากสถาพหยุดนิ่ งด้วยความเร่ง
a m/s2 เป็ นเวลา t วินาที
• เขียนโปรแกรมรับความเร่งและเวลา จากนั้นคานวณ
ระยะที่วตั ถุเคลื่อนที่ไปได้
63
เฉลย
a = float(input("Enter a: "))
t = float(input("Enter t: "))
print("Total distance =", a*t*t/2)
64
มุมนักคิด: การกระจายหน่วย
Enter length in inch: 320
It is 26 feet, 8 inch.
x = int(input("Enter length in inch"))
xf = int(x/12)
xi = x – xf * 12
print("It is", xf, "feet,",xi,"inch.")
65
คานวณปริมาตร
• คานวณปริมาตรของทรงกระบอก
r
h
2
r
xh
66
ค่า 
• เราสามารถใช้ค่าประมาณ 22/7
• เราอาจจะใช้ค่าคงที่ที่ละเอียดกว่าได้ ซึ่งอยูใ่ นโมดูล
math
3.141592653589793
67
โมดูล math
• ภาษาไพธอนมีการแบ่งคาสัง่ มาตรฐานออกเป็ นกลุม่ ๆ
เป็ นหมวดหมู่ เรียกว่า โมดูล (module)
• ก่อนใช้ตอ้ งมีการประกาศขอใช้กอ่ น ด้วยคาสัง่ import
• จากนั้นฟั งก์ชนั รวมถึงค่าคงที่ต่าง ๆ ใน โมดูลสามารถ
เรียกใช้ได้โดยระบุชื่อโมดูลนาหน้า
import math
print("Pi is", math.pi)
3.141592653589793
68
มุมนักคิด
• เขียนโปรแกรมรับค่า r และ h
จากนั้นคานวณปริมาตรของ
ทรงกระบอก
r
h
2
r
xh
69
เฉลย
import math
r = float(input("Enter r: "))
h = float(input("Enter h: "))
print("Volume =", math.pi*r*r*h)
70
ฟั งก์ชนั ในโมดูล math
ฟั งก์ชนั
fabs(x)
sin(x), cos(x),
tan(x)
ความหมาย
คืนค่าสัมบูรณ์ของ x
pi
ฟั งก์ชนั ตรีโกณมิติของ x (มุมเป็ นหน่ วย
เรเดียล)
ค่าพาย
e
ค่า e
log(x),log10(x)
ค่า log ฐานธรรมชาติ, ค่า log ฐาน 10
exp(x)
ค่า ex
sqrt(x)
รากที่สองของ x
71
ตัวอย่างการใช้ฟังก์ชนั คณิตศาสตร์
• การแตกแรง
อย่
ำ
ลื
ม
import math
# อย่ำลืม import math
# ถ้ำมุมเป็ นองศำ ต้องแปลงก่อน
# กรณี มม
ุ เป็ นเรเดียล
#
f
t
r = t * math.pi/180
fy = f * math.sin(t)
fy = f * math.sin(r)
fx = f * math.cos(t)
fx = f * math.cos(r)
72