82
Chapter 2 Python Programming For Artificial Intelligence

Chapter 2 Python Programming For Artificial Intelligence

  • Upload
    others

  • View
    18

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Chapter 2 Python Programming For Artificial Intelligence

Chapter 2 Python ProgrammingFor Artificial Intelligence

Page 2: Chapter 2 Python Programming For Artificial Intelligence

Python

• Python เปนภาษา Dynamic Object-Oriented Programming ทถกพฒนาขนโดย Guido von Rossum ในป ค.ศ. 1990 และปจจบนถกดแลโดย Python Software Foundation (PSF) โดย Version ลาสดตอนนคอ Python 3.7.2

• Official Site ของ python คอ http://www.python.org

Page 3: Chapter 2 Python Programming For Artificial Intelligence

Python

• Python เปนทง Cross Platform และม Open Source License หมายความวา

• ถาพฒนาโปรแกรมสกตวดวย Python สามารถทจะเอาไปท างานบน Operating System ไดหลากหลาย ไมวาจะเปน? MS Windows, Linux, หรอ OS/X เปนตน - - > (Cross Platform)

• มอสระในการแกไข Library ตางๆ ท Python ใหมา รวมถงการน า Software ทพฒนาขนจาก Python ไปท าประโยชนทางธรกจไดอยางเตมทโดย ไมเสยเงน - - > (Open Source License)

• นอกจากนตวโครงสรางและ Syntax ของภาษาคอนขางอานงาย เขาใจงาย และม Object ดาน Data Structure รองรบอยหลายแบบแลว ท าให Python เปนของ ฟร และของด ทชวยใหพฒนาโปรแกรมไดเรวขน

Page 4: Chapter 2 Python Programming For Artificial Intelligence

Python

ตวอยางท 1: ตวอยางโปรแกรมยอดฮต “Hello world !” ส าหรบ Javapublic class{

public static void main(String[]args){

System.out.println("Hello, world!");}

}ส าหรบ Pythonprint ("Hello, world!")

Page 5: Chapter 2 Python Programming For Artificial Intelligence

ขอเสยเมอเทยบกบ C/C++

• ประการแรก Python เปน Scripting Language ซงท างานโดยม Interpreter แปลงค าสงในแตละบรรทดของโปรแกรมใหเปน machine code ในระหวางทโปรแกรมท างาน โดยไมมการ compile ตว source code ทงหมดเปน machine code กอนเรมการท างานของโปรแกรม ดงนนสงทจะพบแน ๆ คอ มนจะท างานชากวา C/C++ (รวมถง Java ดวย )

• ประการทสอง ทเปนผลพวงตามมาจากขอแรกคอ มนไมมการตรวจสอบความถกตองของการเรยกใชตวแปรทงหมดของโปรแกรมกอนเรมท างาน ดงนนแลว ถาผเขยนขาดความระมดระวงในระหวางพฒนาโปรแกรม จะท าใหโอกาสเกด Runtime Error จากการเรยกใชตวแปรทไมไดประกาศหรอใชงานตวแปรผดประเภทไดงาย (สาเหตสวนใหญของกรณพวกนเทาทพบกคอ พมพชอตวแปรผด) ซงความผดพลาดพวกนจะไมถกคนพบจนกวาโปรแกรมจะถกสงใหท างานจนถงบรรทดทมปญหานน

Page 6: Chapter 2 Python Programming For Artificial Intelligence
Page 7: Chapter 2 Python Programming For Artificial Intelligence

Google Colabเปนโครงการท Google ท างานรวมกบทม Jupyter มาตงแต 2014 แตเพงเปดใหใชสาธารณะ ขอด

ของ clolab กคอ ไมตองลงอะไรทงนน มความสามารถเหมอน Jupyter Notebook แทบทกอยาง ดกวากคอ ไมตองโหลดมาลงบนเครองใหเสยเวลา แถมยงสามารถ colaborate (เขยน code ไปพรอม ๆ กนกบเพอนๆ) กบเพอนๆในเวลาเดยวกน สามารถทง comments แนะน าเพอน ๆ อยางงายดาย เขยนเสรจไฟลก save อยบน Google Drive ของตวเองอตโนมต จะแชรใหคนอน จะโหลดลงมารนโดย Jupyter บนเครองเรากยงได แถมอกอยางส าหรบชาว Data คอม credit ใหใช GPU ฟร ๆ กนอกดวย

ขอเสยของมนอยางหนงทเหนไดชดคออาจจะยงมอาการชาบางเวลาสงรน code อกเรองกคอการ import or read local data นนมขนตอนมากขน เชนตองเอาไฟลไปเกบไวใน Google Drive หรอ Google Cloud Storage กอน แลวถงจะสามารถใช APIs ท Colab เตรยมไวใหไปดงมาขอมลใชได

Page 8: Chapter 2 Python Programming For Artificial Intelligence

CPU VS GPU VS TPUในสมยกอนเราจะไดยนค าวา CPU (central processing unit) บอยๆ ซงมนกคอหนวยประมวลผล

ในระบบคอมพวเตอรนนเอง เอาไวสงการตางๆ และประมวลผลการท างานตางๆในคอม ซงตว CPU นนกม core processor แบงการท างานไดหลาย core และกมตงแต 1 core , 2 core , 4 core , 8 core ไปเรอย ๆ

และตอมาเมอววฒนาการของเรอง gaming พฒนาไปเรอยๆ มเกมใหม ๆ ทใชความสามารถของการดจอเพอประมวลผล เรองรปภาพ ใหละเอยดขน เลนเกมทมความละเอยดของภาพมากขน และตว CPU เองกไมไดตอบโจทยในเรองน จงไดมการพฒนาในสวนของ GPU (Graphic processing unit) ขนมาแทนท และใสลงในการดจอแทน เพอใหประมวลผลภาพกราฟฟคไดเรวและละเอยดมากยงขน ซงปกตในหนง GPU สามารถมไดถง 1000 CPU Core

Page 9: Chapter 2 Python Programming For Artificial Intelligence

CPU VS GPU VS TPUจนกระทงลาสด ววฒนาการของเทคโนโลยเรอง AI และ Machine Learning next gen ไดเรมถกน ามาใชงาน

มากขน หรอทเราคนหกน ในค าวา Deep learning technology ซงเปนการน าขอมลพวก ภาพ เสยง หรอกระทงพวก รปแบบของการโจมตตางๆ มาสอนระบบเพอสรางเปนระบบโครงสรางประสาท ( Artificial neural network) ใหมการเรยนร ในศาสตรตาง ๆ เพอใหสามารถตดสนใจทถกตอง ในเรองนนๆ ได ซงการใชงาน GPU นนยงมขอจ ากดในเรอง Deep learning จนกระทงทาง TensorFlow (Opensource) ทท าเกยวกบเรอง machine learning ไดพฒนาออกมาเปนตว TPU (Tensorflow Processing unit) เพอใชในการวจย เกบขอมล และสรางระบบโครงสรางประสาทไดดยงขน

ปจจบนทาง Google Engineer เองกมการน า TensorFlow และ TPU มาท า Project แลวเชนกน ยกตวอยางเชน ตว Magenta ซงเปน Project ทท าเกยวกบเรองของ เพลง ท านอง และเครองดนตรตางๆ มาสรางเปนเพลงขน และท าการวเคราะห และสรางสวนประกอบของเพลงไดดยงขน

Page 10: Chapter 2 Python Programming For Artificial Intelligence

กจกรรม 1 : พมพขอความออกหนาจอ

ค าสง print

ค าสงพมพขอความในภาษา Python คอ print

เชน print('Hello')

กจะแสดงขอความวา Hello ออกทหนาจอ

Page 11: Chapter 2 Python Programming For Artificial Intelligence

แบบฝกหด 1.1

คราวนเรามาลองพมพสตรง 'สวสดจะ' ออกทหนาจอ ลองเตมขอความดงกลาวลงในเครองหมายค าพดเดยวด

print('สวสดจะ')

ลองเปลยนสตรงดตามใจชอบ แลวลองรนด

Page 12: Chapter 2 Python Programming For Artificial Intelligence

หมายเหต (comment)

บางครงเราอยากใสหมายเหตลงไปในโคดเพอเปนบนทกชวยจ า เราจะใชสญลกษณ # (แฮช หรอ hash) น าหนาหมายเหต โดยเมอไรกตามทใชเครองหมาย # สงทตามหลงเครองหมายนจะเปนหมายเหตทงหมด เชน

print('Hello') #แสดงขอความ Hello ออกทหนาจอ

Page 13: Chapter 2 Python Programming For Artificial Intelligence

หมายเหต (comment)

หากเราตองการหมายเหตทงบรรทด ใหเราใสเครองหมาย `#` ทดานหนาสด เชน

#แสดงขอความ Hello ออกทหนาจอ

print('Hello')

Page 14: Chapter 2 Python Programming For Artificial Intelligence

หมายเหต (comment)

เวลาคอมพวเตอรท างาน มนจะกระโดดขามสวนทเปนหมายเหตไป

เชน ในโคดดานลางน คอมพวเตอรจะกระโดดขามบรรทดท 3 ไป เพราะถกมองเปนหมายเหต

print('Please')

print('Mr.')

# print('and Ms.')

print('Postman')

print('Look and See')

Page 15: Chapter 2 Python Programming For Artificial Intelligence

แบบฝกหด 1.2

• ลองใสเครองหมาย # หนาบรรทดตางๆ ในโคด แลวสงเกตความเปลยนแปลงของผลลพธ

print('Hello')

print('World')

print('My')

print('name')

print('is')

print('Peter')

Page 16: Chapter 2 Python Programming For Artificial Intelligence

กจกรรม 2: การค านวณทางคณตศาสตร

• เราสามารถท าการค านวณทางคณตศาสตรได โดยใชเครองหมายบวก +, ลบ -, คณ *, และหาร /กบตวเลขไดขอสงเกต: เราจะใชเครองหมายดอกจน * แทนการคณ

• เชน ถาเราสงใหคอมพวเตอรค านวณคาของนพจนทางคณตศาสตร 5×2+10 คอมพวเตอรกจะค านวณผลลพธใหทนท

5 * 2 + 10

20

Page 17: Chapter 2 Python Programming For Artificial Intelligence

• ถาเราสงใหคอมพวเตอรค านวณคาของนพจน 10 +5

2เราจะไดผลลพธดงน

10 + 5 / 2

12.5

• จะสงเกตไดวา คอมพวเตอรค านวณการหาร 5 / 2 และใสคาทศนยมใหโดยอตโนมต

Page 18: Chapter 2 Python Programming For Artificial Intelligence

แบบฝกหด 2.1

เรามาลองค านวณคาของนพจนทางคณตศาสตรตอไปนกนดบาง

1. 3

4+

1

41.0

2. 1 + 6 × 8 − 742

3. 5 × 6 + 7 × 8 −2

585.6

Page 19: Chapter 2 Python Programming For Artificial Intelligence

วงเลบในนพจนทางคณตศาสตร

วงเลบในนพจนทางคณตศาสตรทงน เราสามารถใชเครองหมายวงเลบ ( ) ไดเหมอนกบนพจนทางคณตศาสตรปกตเชน เราสามารถค านวณคาของนพจน 4×3+(1+2)/4

ไดดวยค าสงน4 * 3 + (1 + 2) / 4 12.75

Page 20: Chapter 2 Python Programming For Artificial Intelligence

วงเลบในนพจนทางคณตศาสตร

• ขอแตกตางคอ ในกรณทมวงเลบซอนวงเลบ เราจะใชเครองหมายวงเลบ ( ) เสมอ หามใช เครองหมายกามป[ ] และเครองหมายปกกา { } โดยเดดขาด

• เชน ถาเราจะค านวณคาของนพจน ([1/{2+3}]×4+5)/6 เราจะตองเปลยนกามปและปกกากลบมาเปนวงเลบกอนเสมอ

ลองเขยนค าสงหาคา ([1/{2+3}]×4+5)/6 ด

((1 / (2 + 3)) * 4 + 5) / 6

0.9666666666666667

Page 21: Chapter 2 Python Programming For Artificial Intelligence

วงเลบในนพจนทางคณตศาสตร

หวใจ: เครองหมายวงเลบมหนาทเปลยนล าดบการท างาน โดยจะเรมท าในวงเลบกอนเสมอ โดยล าดบการท างานจะเรมจาก (1) ท าในวงเลบ (2) คณและหาร (3) บวกและลบ

เชน ลองสงเกตผลลพธของนพจนทงสองน :

(1+2)×3 กบ 1+(2×3)

(1 + 2) * 3

9

Page 22: Chapter 2 Python Programming For Artificial Intelligence

วงเลบในนพจนทางคณตศาสตร

1 + (2 * 3)

7

ทงนขอใหระมดระวงการใชเครองหมายคณ * และหาร / ดวย เพราะถาหากไมระบวงเลบใหชดเจน ล าดบการค านวณกอาจจะไมเปนไปตามทตองการได

Page 23: Chapter 2 Python Programming For Artificial Intelligence

แบบฝกหด 2.2

มาลองค านวณคาของนพจนทางคณตศาสตรตอไปนกน

1. 3 × (4 + 1 − 2 × 5)

-15

2. 1+2+3

4+5+6[หมายเหต: โปรดเลอกการใชเครองหมายวงเลบดวยความระมดระวง]

0.4

3. 7 ×5+6

7+7

8

9.777777777777777

Page 24: Chapter 2 Python Programming For Artificial Intelligence

2 ** 5

32

เครองหมายยกก าลงในภาษา Python จะใชเครองหมาย ** (ดอกจนเขยนตดกน 2 ดวง) เชน ถาเราจะค านวณคาของนพจน 25 เราจะใชค าสงวา

Page 25: Chapter 2 Python Programming For Artificial Intelligence

เมอเราน าเครองหมายยกก าลงมาใสในนพจนทางคณตศาสตร ล าดบการท างานจะเปลยนไปตามนa) ท าในวงเลบกอนb) ท าเครองหมายยกก าลงc) ท าเครองหมายคณและหารd) ท าเครองหมายบวกและลบ

2 * (5 ** 3)250

2 * 5 ** 3

250

ดงนนเพอความปลอดภย เราจงนยมเขยนเครองหมายยกก าลง ** ตดกบตวเลข เพอใหเปนทรกนวา ถาหากไมมวงเลบ เราจะเรมท าจากเครองหมายยกก าลงกอนเสมอ เชน เราจะเขยนนพจน 2 × 53 ดวยค าสง 2 * 5**3 เปนตน

Page 26: Chapter 2 Python Programming For Artificial Intelligence

นอกจากนเรายงสามารถค านวณคาราก (root) ไดโดยการใชสตร:𝑟 𝑎 = 𝑎1/𝑟

เชน เราสามารถค านวณคา 38 (รากท 3 ของ 8) ไดโดยค าสง 8**(1/3)

ลองพมพ

8**(1/3)

2.0

Page 27: Chapter 2 Python Programming For Artificial Intelligence

แบบฝกหด 2.3เรามาลองค านวณคาของนพจนดงตอไปนกน

1. 35+3/4

553.920214840011

2. 2 (7 + 3 × 4)4.358898943540674

3. 5+62.5

23.5

+ 32

58.8076767100986

Page 28: Chapter 2 Python Programming For Artificial Intelligence

กจกรรม 3 : ตวแปร

• ตวแปรเปรยบเสมอนททดเลข เพอทจะไดน าผลลพธจากการค านวณคาของนพจนททดไว ไปใชตอไดในอนาคต• เนองจากกระดาษในคอมพวเตอรมขนาดใหญมาก เราจงตองจองพนทส าหรบทดเลขและตงชอเอาไว เวลาจะ

หยบสงททดไวกลบมาใชใหมจะไดไมหลงทนนเอง

Page 29: Chapter 2 Python Programming For Artificial Intelligence

a = 2**5 # ทดคาไวในตวแปร a

b = 5**(1/2) # ทดคาไวในตวแปร b

a**3 + b**3

32779.1803398875

เชน เราสามารถทดคาของ 25 เกบไวในตวแปร a และทดคาของ25 เกบไวในตวแปร b เพอใชตอในการค านวณ

ตอ ๆ ไปได

ซงในตวอยางนเราจะค านวณคาของ 𝑎3 + 𝑏3 กน

Page 30: Chapter 2 Python Programming For Artificial Intelligence

เราสามารถพมพคาตวแปรออกหนาจอไดดวยค าสง print เชนเดยวกบการแสดงขอความ เชน

print(a)print(b)32

2.23606797749979

Page 31: Chapter 2 Python Programming For Artificial Intelligence

แตบางครงการตงชอตวแปรดวยตวอกษรเดยว ๆ กจ ายาก เดยวมาอานทหลงกอาจจะลมอก เราเลยนยมตงชอตวแปรใหเปนค าทอานแลวจ าไดงายแทน เชน width (ความกวาง), height (ความสง), และ area (พนท) ดงตวอยางดานลางน

width = 40height = 30area = width * heightprint(area)1200

Page 32: Chapter 2 Python Programming For Artificial Intelligence

หากชอตวแปรประกอบดวยหลายค า ใหใชเครองหมาย _ (ขดเสนใต หรอ underscore) คนระหวางค า เพอใหอานงายขน เชน area_of_triangle พนทสามเหลยม เปนตน

width = 40

height = 30

area_of_triangle = 1/2 * width * height

print(area_of_triangle)

600.0

Page 33: Chapter 2 Python Programming For Artificial Intelligence

นอกจากนค าสง print ยงสามารถพมพคาออกหนาจอไดหลายๆ อนพรอมกน เชน

width = 40

height = 30

area_of_triangle = 1/2 * width * height

print('width =', width, 'and height =', height)

print('area = 1/2*width * height =',area_of_triangle)

width = 40 and height = 30

area = 1/2*width * height = 600.0

Page 34: Chapter 2 Python Programming For Artificial Intelligence

แบบฝกหด 3.1

1.ทดลองก าหนดคาในตวแปร a, b, และ c ในโคดดานลาง แลวสงเกตความเปลยนแปลงของผลลพธ

a = 10b = 20c = 30mean = (a + b + c) / 3print(mean) 20.0

Page 35: Chapter 2 Python Programming For Artificial Intelligence

2.จงเขยนโคดลงในชองวางใหสมบรณ เพอค านวณคาเฉลยฮารโมนก (harmonic mean) ของตวแปร a, b, และ c โดยคาเฉลยฮารโมนกมสตรดงน

ℎ𝑚𝑒𝑎𝑛 𝑎, 𝑏, 𝑐 =3

1𝑎+1𝑏+1𝑐

a = 10

b = 20

c = 30

hmean = 3/((1/a)+(1/b)+(1/c))

print(hmean)

16.363636363636363

Page 36: Chapter 2 Python Programming For Artificial Intelligence

3.เขยนโคดเพอค านวณปรมาตรของทรงร (ellipsoid) จากตวแปรตอไปนความกวางเกบอยในตวแปร widthความยาวเกบอยในตวแปร lengthความลกเกบอยในตวแปร depth

สตรของปรมาตรทรงรมดงน

𝑣𝑜𝑙𝑢𝑚𝑒 =4

3× 𝜋 × 𝑤𝑖𝑑𝑡ℎ × 𝑙𝑒𝑛𝑔𝑡ℎ × 𝑑𝑒𝑝𝑡ℎ

pi = 3.1415926 # คา 𝜋 (ไพ)ก าหนดความกวางในตวแปร width ใหเทากบ 20 ก าหนดความยาวในตวแปร length ใหเทากบ 30 ก าหนดความลกในตวแปร depth ใหเทากบ 40 ค านวณปรมาตรของทรงรแลวเกบในตวแปร volume และพมพคาในตวแปร volume

Page 37: Chapter 2 Python Programming For Artificial Intelligence

pi = 3.1415926

width = 20

length = 30

depth = 40

volume = 4*pi*width*length*depth/3

print (volume)

100530.9632

Page 38: Chapter 2 Python Programming For Artificial Intelligence

กจกรรม 4: การเกบรายการขอมล

ลสต (list)

oลสต (list) คอรายการทเราสามารถปรบเปลยนรายการไดตลอดเวลา

oลสตใชสญลกษณ [ ] คนดวยเครองหมายคอมมา ,

Page 39: Chapter 2 Python Programming For Artificial Intelligence

ลสต (list)

เชน ลสตของความสงนกเรยนในกลม 5 คน มดงน

[163.5, 150.0, 167.0, 161.25, 170.0]

เราสามารถน าลสตมาเกบในตวแปรได ท าใหตวแปรเดยวสามารถเกบคาไวไดหลายคา เชน

# ลสตความสงของนกเรยนในกลม

student_heights = [163.5, 150.0, 167.0, 161.25, 170.0]

print('student heights =', student_heights)

student heights = [163.5, 150.0, 167.0, 161.25, 170.0]

Page 40: Chapter 2 Python Programming For Artificial Intelligence

แบบฝกหด 4.1

ลองสรางลสตจากรายการสมาชกดงตอไปน [10, 20, 30, 40, 50] แลวเกบลงในตวแปร my_list และสงพมพ ตวแปร my_list

my_list = [10, 20, 30, 40, 50]

print(my_list)

[10, 20, 30, 40, 50]

Page 41: Chapter 2 Python Programming For Artificial Intelligence

ขนาดของลสต

เราสามารถหาขนาดของลสตไดดวยค าสง len ซงยอมาจากค าวา length เชน

len(student_heights)

Page 42: Chapter 2 Python Programming For Artificial Intelligence

แบบฝกหด 4.2

จงหาขนาดของลสตในตวแปร my_list ใสตวแปร my_length แลวพมพคาของตวแปรดงกลาวออกหนาจอ

my_list = [157, 158, 159, 160]

my_length = len(my_list)

print(my_length)

4

Page 43: Chapter 2 Python Programming For Artificial Intelligence

การเขาถงสมาชกภายในลสต

• เราสามารถเขาถงสมาชกแตละตวในลสตดวยการระบต าแหนงของสมาชกทเราตองการ

• การนบต าแหนง (index) ของสมาชก จะเรมตนจาก 0 เสมอ

• เชน student_heights[0] จะแทนสมาชกตวแรกของลสตความสงของนกเรยน

ในขณะท student_heights[1] จะแทนสมาชกตวท 2 ของลสต ฯลฯ

เชน

student_heights = [163.5, 150.0, 167.0, 161.25, 170.0]

print(student_heights[0])

print(student_heights[1])

print(student_heights[2])

163.5

150.0

167.0

Page 44: Chapter 2 Python Programming For Artificial Intelligence

หากเราระบต าแหนงเกนจากขนาดของลสต คอมพวเตอรจะฟองออกมาดวยค าวา IndexError ซงแปลวาระบคาต าแหนงเกนขนาดของลสต เชน

student_heights = [157, 159, 161, 162, 165] print(student_heights[10]) #ทงๆ ทลสต student_heights มขนาดแค 5 ตว

IndexError: list index out of range

Page 45: Chapter 2 Python Programming For Artificial Intelligence

การเปลยนแปลงสมาชกภายในลสต

เราสามารถเปลยนแปลงสมาชกภายในลสต โดยการใชเครองหมาย = เหมอนกบการก าหนดคาในตวแปร

เชน เราสามารถเปลยนสมาชกตวท 2 ของลสต student_heights จากคา 150.0 ใหเปนคา 180.0 ได

student_heights= [163.5, 150.0, 167.0, 161.25, 170.0]

student_heights[1] = 180.0

print(student_heights)

[163.5, 180.0, 167.0, 161.25, 170.0]

Page 46: Chapter 2 Python Programming For Artificial Intelligence

การเลอกบางสวนของลสต (slicing)

นอกจากเราจะสามารถเลอกสมาชกบางตวในลสตไดแลว เรายงสามารถเลอกบางสวนของลสตไดดวย

ค าสงเลอกบางสวน (slicing): ลสต[a : b] จะเลอกสมาชกตงแต index ท a จนถง index ท b−1

เชน ถาเราตองการเลอกสมาชกตงแตตวท 2 จนถงตวท 4 ของลสตในตวแปร student_heights เราจะใชค าสง

student_heights[1:4]

Page 47: Chapter 2 Python Programming For Artificial Intelligence

การเลอกบางสวนของลสต (slicing)

ค าสงเลอกบางสวนสามารถละจดจบไดดวย ลสต[a:]

เชน เราจะเลอกสมาชกตงแตตวท 2 เปนตนไปในลสต student_heights ดวยค าสง

student_heights[1:]

Page 48: Chapter 2 Python Programming For Artificial Intelligence

แบบฝกหด 4.5

เรามลสต my_list ทมสมาชก 10 ตวดงนmy_list = [10, 20, 30, 40, 50, 60, 70, 80, 90, 100]

จงเลอกสมาชกตวท 3 จนถงตวท 7my_list[2:7][30, 40, 50, 60, 70]

จงเลอกสมาชกตวท 3 จนถงตวท 5my_list[2:5][30, 40, 50]

Page 49: Chapter 2 Python Programming For Artificial Intelligence

กจกรรม 5: ขอความ

ขอความ (string) กเปนขอมลรปแบบหนงทเราสามารถประมวลผลไดและทดไวในตวแปรไดเชนเดยวกน

เชน เราสามารถเกบขอความ 'Hello' ไวในตวแปร message ได

message = 'Hello'

print(message)

Hello

Page 50: Chapter 2 Python Programming For Artificial Intelligence

การตอขอความ

เราสามารถน าขอความ 2 อนมาตอกนไดดวยเครองหมาย +

เชน เราจะตอขอความในตวแปร message1 และ message2 เขาดวยกนไดดงน

message1 = 'Hello '

message2 = 'World!'

message = message1 + message2

print(message)

Hello World!

Page 51: Chapter 2 Python Programming For Artificial Intelligence

การท าซ าขอความ

นอกจากนเรายงสามารถท าซ าขอความไดดวยเครองหมาย *

เชน ถาเราตองการท าซ าขอความ hello 3 รอบ

3 * 'hello'

'hellohellohello'

Page 52: Chapter 2 Python Programming For Artificial Intelligence

แบบฝกหด 5.1

จงสรางตวแปร 2 ตวmessage1 เกบขอความ 'Hello'message2 เกบขอความ 'World'หลงจากนนใหท าซ า message1 จ านวน 3 ครง และ message2 จ านวน 5 ครง น าผลลพธทงสองอนมาตอกน แลวน ามาเกบในตวแปร message3 และสงพมพตวแปร message3

message1 = 3*'Hello'message2 = 5*'World'message3 = message1+ message2print(message3)HelloHelloHelloWorldWorldWorldWorldWorld

Page 53: Chapter 2 Python Programming For Artificial Intelligence

ขอความในฐานะของลสต

ในภาษา Python ขอความคอลสตของตวอกษรเราสามารถเขาถงตวอกษรสมาชกแตละตวในขอความได

message = 'wow'print(message[0])print(message[1])print(message[2])

wOw

Page 54: Chapter 2 Python Programming For Artificial Intelligence

ขอความในฐานะของลสต

นอกจากน เรายงสามารถเลอกบางสวนของขอความมาไดดวย เหมอนอยางทเราเลอกบางสวนของลสต

เชน เราสามารถเลอกตงแตตวอกษร index ท 1 จนถง index ท 3 ไดดวยค าสงน

message = 'flowers'

message[1:4]

'low'

แตทงนเราไมสามารถแกไขสมาชกในขอความได

message[1] = 'E'

TypeError: 'str' object does not support item assignment

Page 55: Chapter 2 Python Programming For Artificial Intelligence

แบบฝกหด 5.2

1.จงท าซ าขอความ 'aloha' จ านวน 3 ครงแลวเกบไวในตวแปร my_string และสงพมพตวแปร my_stringmy_string = 3*'aloha’ print(my_string)

alohaalohaaloha

2.จงเลอกบางสวนของขอความ girl='you are cute'เรมจากสมาชกตวท 1 จนถงตวท 3 แลวเกบลงในตวแปร my_love และสงพมพตวแปร my_lovegirl='you are cute'my_love = girl[0:4] print(my_love)

you

Page 56: Chapter 2 Python Programming For Artificial Intelligence

กจกรรม 6: การวนซ า

ในกจกรรม 4 และ 5 ตองใชวธ copy-paste แลวแกหมายเลขต าแหนงของสมาชกเอาทละต าแหนง ถาเกดลสตมสมาชกจ านวนมากขนมา เรากคงจะ copy-paste กนเยอะแนนอน เราสามารถใชวธการวนลป (loop) เพอท ากระบวนการเดมซ า ๆ ได

Page 57: Chapter 2 Python Programming For Artificial Intelligence

ลปฟอร (for-loop)

ลปฟอร (for-loop) ใชส าหรบท ากระบวนการเดมซ า ๆ กบสมาชกแตละตวในลสต ตามล าดบรปแบบค าสงของลปฟอรคอ

for <ตวแปร> in <ลสต>:

<กระบวนการ>

ค าสงนจะแทนสมาชกแตละตวในลสตดวยตวแปรทก าหนด แลวจงท าซ ากระบวนการนจนกวาจะใชสมาชกครบทกตวตามล าดบ

Page 58: Chapter 2 Python Programming For Artificial Intelligence

ลปฟอร (for-loop)

# สมาชกแตละตวของลสต student_heights จะแทนดวยตวแปร heightstudent_heights = [163.5, 150.0, 167.0, 161.25, 170.0]for height in student_heights:

# พมพคาของตวแปร height ออกหนาจอprint(height)

print('That is all')163.5

150.0 167.0161.25170.0That is all

Page 59: Chapter 2 Python Programming For Artificial Intelligence

กฎการยอหนาของภาษาไพธอน

1) กระบวนการทเราตองการท าซ าในลปทกชนด จะตองยอหนาถดเขาไปทางขวาเสมอ

2) ขนาดของยอหนาทนยมกนคอ เคาะ spacebar 4 ครง

3) เมอไรกตามทยอหนากลบออกมาทางซาย จะถอวาจบลปแลว

Page 60: Chapter 2 Python Programming For Artificial Intelligence

แบบฝกหด 6.1

1.พมพสมาชกแตละตวในลสต my_list ออกหนาจอโดยใชลปฟอรและค าสง printmy_list = ['hello', 'my', 'name', 'is', 'Pug']# ลปฟอรfor mylist in my_list:

print(mylist)

hello my name is Pug

Page 61: Chapter 2 Python Programming For Artificial Intelligence

แบบฝกหด 6.12.เพมคาสมาชกแตละตวในลสต my_numbers ตวละ 10 และพมพออกหนาจอmy_numbers = [50, 40, 30, 20, 10]# ลปฟอรfor number in my_numbers:

number=number+10print(number)

6050403020

Page 62: Chapter 2 Python Programming For Artificial Intelligence

ชวงจ านวน (range)

บางครงเราจ าเปนตองวนลปฟอรบนเลขต าแหนง index ดวยเราสามารถใชค าสง range(a , b) เพอสรางชวงจ านวนในลปฟอรได โดย a จะเปนคา index เรมตนและ b−1 จะเปนคาสดทาย เชนfor i in range(1, 6):

print('i =', i)i = 1

i = 2 i = 3 i = 4 i = 5

Page 63: Chapter 2 Python Programming For Artificial Intelligence

ชวงจ านวน (range)หากเราละคา a ไป เหลอเพยง range( b ) ชวงจ านวนจะเรมตนจาก 0 และสนสดท b−1for i in range(6):

print('i =', i)

i = 0 i = 1 i = 2 i = 3 i = 4 i = 5

Page 64: Chapter 2 Python Programming For Artificial Intelligence

นอกจากนเรายงสามารถก าหนดขนาดของกาวในการสรางชวงจ านวนได โดยใชค าสง range(a , b, c) เมอคา c คอขนาดของกาว

# กาวมขนาดเทากบ 2for i in range(0, 10, 2):

print('i =', i)i = 0

i = 2 i = 4 i = 6 i = 8

Page 65: Chapter 2 Python Programming For Artificial Intelligence

ขอดของการใชค าสง range ทก าหนดขนาดของกาวได กคอ เราสามารถไล index ยอนหลงไดดวย เชน

# กาวมขนาดตดลบ แปลวาเดนถอยหลงfor i in range(5, 0, -1):

print(i)

54321

Page 66: Chapter 2 Python Programming For Artificial Intelligence

แบบฝกหด 6.2

1.จงวนลปคา index i จากคา 1 ถง 5 แลวพมพคาของ 2 * i ออกมาทางหนาจอ# วนลปคา index i จาก 1 ถง 5for i in range(1, 5):

# พมพคา 2 * i ออกทางหนาจอprint(2*i)

2468

Page 67: Chapter 2 Python Programming For Artificial Intelligence

แบบฝกหด 6.2

2. จงวนลปคา index i จากคา 20 จนถง 15 แลวพมพคา i /10 ออกมาทางหนาจอ# วนลปคา index i จาก 20 จนถง 15for i in range(20, 15, -1):

# พมพคา i /10 ออกมาทางหนาจอprint(i/10)

2.01.91.81.71.6

Page 68: Chapter 2 Python Programming For Artificial Intelligence

แบบฝกหด 6.2

3. จงวนลปเพอแสดงสตรคณแม 3 ไลตงแต 3×1 จนถง 3×12 โดยจะไดผลลพธดงน3 * 1 = 33 * 2 = 63 * 3 = 9:::3 * 12 = 36

for i in range(1, 13):

print('3 *', i ,'=', 3*i)

Page 69: Chapter 2 Python Programming For Artificial Intelligence

ลปซอนลป (loop embedding)

เราสามารถเขยนลปซอนลปไดดวย หากวาโปรแกรมของเรามความซบซอนกวาลปเดยวเชน เราสามารถวนลปเพอไลสตรคณแม 3 ถงแม 5 ไดดงน

# วนลป index m เพอไลแมสตรคณจากแม 3 ถงแม 5for m in range(3, 6):

print('Multiplication of', m)# วนลป index i เพอไลตวคณจาก 1 ถง 12for i in range(1, 13):

print(m, '*', i, '=', m * i)# พมพบรรทดใหมคนระหวางแมprint()

Output:

Page 70: Chapter 2 Python Programming For Artificial Intelligence

ขอสงเกตจากการวนลปฟอรในการไลแมสตรคณ กคอ1) ในลปนอก เราจะวนลป index ของแมสตรคณกอน เชน แม 3 ถงแม 5 เปนตน2) สวนลปขางใน เราจะวนลป index ของตวคณในแตละแม คอตงแต 1 ถง 12

นนแสดงวา ถาเราจะเขยนโปรแกรมทสลบซบซอนได เราจะตองแยกแยะและถอดลปออกเปนชนนอกและชนในใหออก

Page 71: Chapter 2 Python Programming For Artificial Intelligence

แบบฝกหด 6.3

1.จงเขยนโปรแกรมเพอไลแมสตรคณจากแม 11 ถงแม 15 โดยแตละแมจะคณกบตวเลขตงแต 1 จนถง 12

for m in range(11, 16):

print('Multiplication of', m)

for i in range(1, 13):

print(m, '*', i, '=', m * i)

Page 72: Chapter 2 Python Programming For Artificial Intelligence

กจกรรม 7: การก าหนดเงอนไข

การก าหนดเงอนไข (branching) ในภาษาไพธอนจะใชค าสง if (แปลวา 'ถา') โดยจะมรปแบบดงน

if <เงอนไข>:

<กระบวนการ>

คอมพวเตอรจะท ากระบวนการทอยในดานใน ถาหากวาเงอนไขทก าหนดนเปนจรง

จะสงเกตวากระบวนการนจะตองยอหนาเหมอนกบค าสงลป for นนเปนเพราะวา การเวนวรรคยอหนาจะเปนการบอกสโคป (scope) ของค าสง วาเปนกระบวนการทอยภายใตค าสงทอยดานนอก การวนลปกจะวนภายใน scope ของตวเอง การก าหนดเงอนไขกจะท างานเฉพาะภายใน scope ของตวเองเทานน

Page 73: Chapter 2 Python Programming For Artificial Intelligence

เชน โปรแกรมดานลางนจะพมพขอความ 'Hurray!' ถาหากวาเงนเดอนในตวแปร salary มคามากกวา 10,000 บาท

ทดลองพมพและรนsalary = 5000if salary > 10000:

print('Hurray!') No Outputทดลองเปลยนคาตวเลขของตวแปร salary เปน 12000 แลวรนใหม Hurray!

Page 74: Chapter 2 Python Programming For Artificial Intelligence

รปแบบของเงอนไข

เราสามารถใชเครองหมายเปรยบเทยบทางคณตศาสตรไดเหมอนในวชาคณตศาสตร

เครองหมาย ความหมาย ตวอยาง< นอยกวา 3 < 5> มากกวา 5 > 3== เทากบ my_salary == your_salary!= ไมเทากบ my_salary != your_salary>= มากกวาหรอเทากบ my_salary >= your_salary<= นอยกวาหรอเทากบ my_salary <= your_salary

Page 75: Chapter 2 Python Programming For Artificial Intelligence

ถาเราลองพมพคาความจรงของเงอนไขออกมา เราจะไดเปนคา True หรอ False ซงคาความจรงกเปนขอมลประเภทหนงเหมอนกน เรยกวา คาตรรกะ (boolean) เชน

ทดลองพมพและรนprint(0.5 > 0.3) # Trueprint(0.25 < -1.0) # Falseprint(1.25 == 1.25) # Trueprint(1.30 != -0.78) # TrueTrue

False True True

Page 76: Chapter 2 Python Programming For Artificial Intelligence

ทงนเราสามารถใชเครองหมายเปรยบสามารถใชไดกบขอความได เชน

ทดลองพมพและรน

print('hello' == 'hello') # Trueprint('hello' != 'world') # Trueprint('hello' < 'alphabet') # False – คอมพวเตอรเรยงล าดบขอความตามตวอกษร True

True False

Page 77: Chapter 2 Python Programming For Artificial Intelligence

นอกจากนเรายงสามารถใชตวเชอมทางตรรกศาสตรไดดวย

ตวเชอม ความหมาย ตวอยางand และ a == b and x == yor หรอ a != b or c != dnot ไม not (a > b)( ) วงเลบ (a == b) and not (c > d)

Page 78: Chapter 2 Python Programming For Artificial Intelligence

ทดลองพมพและรน

v1 = 100v2 = 200v3 = 300print(v1 == v2 and v2 == v3) # False and False = Falseprint(v1 + v2 == v3 or v2 + v3 == v1) # True or False = Trueprint(not(v1 == v2 and v2 == v3) or v1 == v2) # not(False and False) or False = TrueFalse

TrueTrue

Page 79: Chapter 2 Python Programming For Artificial Intelligence

แบบฝกหด 7.1

จงตงเงอนไขเพอใหคอมพวเตอรพมพขอความวา 'You are tall.'

ถาหากวาความสงในตวแปร my_height มากกวา 170 ก าหนดใหตวแปร my_height มคาเทากบ 175

my_height = 175

if my_height>170 :

print('You are tall.')

You are tall.

Page 80: Chapter 2 Python Programming For Artificial Intelligence

แบบฝกหด 7.2

จงตงเงอนไขเพอใหคอมพวเตอรพมพขอความวา 'You are weathy and tall.' ถาหากวาเงนเดอนในตวแปร my_salary มากกวา 10000 และความสงในตวแปร my_height มากกวา 170

my_salary = 15000

my_height = 175

if (my_salary > 10000) and (my_height > 170) :

print('You are wealthy and tall.')

You are wealthy and tall.

Page 81: Chapter 2 Python Programming For Artificial Intelligence

แบบฝกหด 7.3

จงตงเงอนไขเพอควบคมการพมพความสงของนกเรยนแตละคน โดยจะพมพออกมาเฉพาะคนทมความสงมากกวา 160 เซนตเมตรเทานน [หมายเหต: จะสงเกตวาโจทยขอนจะใชทงลปฟอรและการตงเงอนไขประกอบกนไดดวย]student_heights = [163.5, 150.0, 167.0, 161.25, 170.0]for height in student_heights:

if height >160 :print(height)

163.5167.0161.25170.0

Page 82: Chapter 2 Python Programming For Artificial Intelligence

Reference

• ธนารกษ ธระมนคง และคณะ. (2562). การโปรแกรมภาษา Python (ไพธอน) เบ องตน. กรงเทพฯ: สมาคมปญญาประดษฐประเทศไทย.

• http://www.ayarafun.com