6. 6
1. ชุดคาสั่ง for loop
1.1 ไวยากรณ์ for loop
for val in sequence:
loop body
for คือ คาสาคัญที่ระบุเพื่อให้คอมไพเลอร ์ทราบว่าเป็ นงานวนซ้า
val คือ ตัวแปรที่สร ้างขึ้นมาหยิบค่าจาก sequence แล้วนาไปใช ้งาน
in คือ คาสาคัญที่แสดงการเป็ นสมาชิกของออบเจกต์ sequence
loop body คือ ชุดคาสั่งงานที่ต้องดาเนินการภายใต้ for loop
7. 7
1.2 ผังงานชุดคาสั่ง for loop
1. ชุดคาสั่ง for loop
รายการสุดท้าย ?
จริง
เท็จ
บอดี้ของ for
ออกจากลูป
รายการใน sequence
Password == true
true
false
Select menu
password
It’s wrong
ภาพที่ 2 ตัวอย่างผังงานป้ อนรหัส ATM
ภาพที่ 1 ผังงานการวนซ้าแบบ for loop
8. 8
1. ชุดคาสั่ง for loop
1.3 ตัวอย่างชุดคาสั่ง for loop ของการหาผลรวมตัวเลขในรายการข้อมูล
1
2
3
4
5
6
7
8
# List of numbers
numbers = [6, 5, 3, 8, 4, 2, 5, 4,
11]
# variable to store the sum
sum = 0
# iterate over the list
for val in numbers:
sum = sum+val
print( “The sum is”, sum)
The sum is 48
ผลลัพธ์
9. 9
1. ชุดคาสั่ง for loop
1.4 ฟังก์ชัน range ( )
• ฟังก์ชัน range คือฟังก์ชันสาหรับสร ้างรายการลาดับตัวเลขแบบอัตโนมัติ โดยกาหนดค่าเริ่มต้น ค่าสิ้นสุด และขนาดอนุกรม
ตัวเลข มีรูปแบบการใช ้งานดังนี้
range (10) หมายถึง ให้สร ้างรายการลาดับตัวเลข 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
range (2 , 5) หมายถึง ให้สร ้างรายการลาดับตัวเลข 2, 3, 4
range (2 , 10, 2) หมายถึง ให้สร ้างรายการลาดับตัวเลข 2, 4, 6, 8
แต่ฟังก์ชัน range ( ) เป็ นฟังก์ชันที่ไม่รองรับการทางานแบบวนซ้าได้จึงต้องทางานร่วมกับฟังก์ชัน list ( ) ซึ่งเป็ น
ฟังก์ชันแปลงข้อมูลให้อยู่ในรูปแบบข้อมูลลิสต์
11. 11
1. ชุดคาสั่ง for loop
นอกจากฟังก์ชัน list ( ) ที่สามารถใช ้งานร่วมกับฟังก์ชัน rang ( ) แล้วยังมีอีกฟังก์ชันคือฟังก์ชัน len ( ) ซึ่งเป็ นฟังก์ชัน
สร ้าง index ให้กับรายการข้อมูล ดังนี้
1
2
3
4
5
# Program to iterate through a list using indexing
genre = ['pop', 'rock', 'jazz']
# iterate over the list using index
for i in range(len(genre)):
print( “I like” , genre[i])
I like pop
I like rock
I like jazz
ผลลัพธ ์
12. 12
1. ชุดคาสั่ง for loop
1.5 ขั้นตอนการเขียนโปรแกรมด้วย for loop
System Development Lift Cycle
SDLC
ทาความเข้าใจกับปัญหา (Understance Business)
1
วิเคราะห์ระบบ (System Analysis)
2
ออกแบบระบบ (System Design)
3
พัฒนาระบบ (System Development)
4
ทดสอบระบบ (Testing)
5
14. 14
1. ชุดคาสั่ง for loop
ตัวอย่างเขียนโปรแกรมด้วยคาสั่ง for loop
2) วิเคราะห์ระบบ
2.1 ) วิเคราะห์ส่วนงานที่สอดคล้องกับหน่วยทางานของคอมพิวเตอร ์4 หน่วย
หน่วยนาเข้า : list (ที่จัดเก็บรายการ 1-10)
หน่วยประมวลผล : sum = item % 2
หน่วยตัดสินใจ : list == Empty
หน่วยแสดงผล : จานวนเลขคู่
15. 15
1. ชุดคาสั่ง for loop
ตัวอย่างเขียนโปรแกรมด้วยคาสั่ง for loop
2.2) วิเคราะห์ขั้นตอนงาน ด้วยอัลกอริทึมและผังงาน
อัลกอริทึม
1. สร ้าง list เก็บรายการเลขจานวนเต็ม 1-10
2. สร ้างตัวแปร var สาหรับรอรับค่าจาก list คราวละ 1 รายการ พร้อมตรวจสอบ list
== Empty ให้หยุด
3. ถ้ามีรายการตัวเลขให้นามาทาการหารเก็บเศษด้วย sum= item % 2
4. ถ้าผลหารเก็บเศษได้เท่ากับ 0 เป็ นจริง แสดงรายการนั้นออกทางจอภาพ แล้ววน
กลับไปเริ่มต้นใหม่อีกรอบ
5. ถ้า list == Empty หยุดการวนซ้าไปทางานเดิม
6. จบการทางาน
16. 16
1. ชุดคาสั่ง for loop
ตัวอย่างเขียนโปรแกรมด้วยคาสั่ง for loop
Start
number =
[1,2,3,4,5,6,7,…10]
number !=
Empty
sum = number [ i ] % 2
Sto
p
sum == 0
True
Tru
e
Fal
se
False
number [
i ]
17. 17
3) ออกแบบ (ส่วนติดต่อกับผู้ใช ้)
1. ชุดคาสั่ง for loop
ตัวอย่างเขียนโปรแกรมด้วยคาสั่ง for loop
รายการ [ 1,2,3,4,5,6,7,8,9,10]
---------------------------------------------------
รายการเลขคู่มีดังนี้
2,4,6,8,10
18. 18
1. ชุดคาสั่ง for loop
ตัวอย่างเขียนโปรแกรมด้วยคาสั่ง for loop
4) พัฒนาระบบ หรือเขียนโปรแกรม
1
2
3
4
5
6
7
8
number =[1,2,3,4,5,6,7,8,9,10]
print ("รายการ :",number)
print ("------------------------------------")
print ("รายการเลขคู่n")
for var in number:
sum=var%2
if sum==0:
print(var, end=' ')
19. 2. ชุดคาสั่ง for loop กับ else
19
• for loop กับ else คือ ในลูป for สามารถมีบอดี้ else ได้ โดย else เป็ นส่วนที่ถูก
ประมวลผลเมื่อ for loop ดาเนินการกับข้อมูลในรายการครบถ้วนแล้ว
• เพื่อเป็ นการแจ้งเตือนให้ทราบว่าข้อมูลหมดแล้ว และถือว่า else เป็ นส่วนหนึ่ง for
loop
20. 20
1
2
3
4
5
digits = [0, 1, 5]
for i in digits:
print(i)
else:
print(“No items left.” )
2. ชุดคาสั่ง for loop กับ else
ตัวอย่างการใช้ for ร่วมกับ else
0
1
5
No items left.
ผลลัพธ์
21. 21
ตัวอย่างการใช้ for ร่วมกับ break
1
2
3
4
5
6
7
8
9
# program to display student's marks from record
student_name = 'chaisiri'
marks = {'Somchai': 90, 'Somsak': 55, 'Somchai': 77}
for student in marks:
if student == student_name:
print(marks[student])
break
else:
print('No entry with that name found.')
2. ชุดคาสั่ง for loop กับ else
No entry with that name found.
ผลลัพธ์
22. 3. ชุดคาสั่ง while loop
22
• while loop ในไพทอนถูกใช้เพื่อวนซ้าทางานเดิมจนกว่าผลของนิพจน์ทดสอบ
เป็ นเท็จ และนิยมใช้กับการวนซ้างานเดิมที่ไม่ทราบจานวนรอบที่แน่นอนในการวน
ซ้า
23. 23
3. ชุดคาสั่ง while loop
3.1 ไวยากรณ์ชุดคาสั่ง while loop
while test_expression:
Body of while
while คือ คาสาคัญที่กาหนดมาให้แจ้งคอมไพเลอร ์ทราบว่าเป็ นการวนซ้า
test_expression คือ นิพจน์ทดสอบถ้าผลของนิพจน์เป็ นจริงให้ทางานในลูป
colon ( : ) คือ สัญลักษณ์สิ้นสุดส่วนหัวของ while
Body of while คือ ส่วนของชุดคาสั่งที่ดาเนินการภายใน while loop
24. 24
3.2 ผังงานชุดคาสั่ง while loop
3. ชุดคาสั่ง while loop
นิพจน์
ทดสอบ
บอดี้ของ while
เท็จ
จริ
ง
ออกจาก loop
นาเข้า while
loop
25. 25
3. ชุดคาสั่ง while loop
3.2 ตัวอย่างการเขียนชุดคาสั่ง while loop
หาผลรวมจากเลขจานวนนับธรรมชาติจากผู้ที่ป้ อนผ่านเข้ามาทางแป้ นพิมพ์
1
2
3
4
5
6
7
ผลลัพธ์
n = int(input( "Enter n: ” ))
sum = 0
i = 1
while i <= n:
sum = sum + i
i = i+1 # update counter
print( “The sum is” , sum)
Enter n: 10
The sum is 55
28. 28
2.2) วิเคราะห์ขั้นตอนงาน ด้วยอัลกอริทึมและผังงาน
อัลกอริทึม
3.4 ขั้นตอนการเขียนโปรแกรมด้วย while loop
3. ชุดคาสั่ง while loop
1. เริ่มต้น
2. สร ้าง List เก็บจานวน 34,56,43,23,59,70
3. กาหนดตัวแปร i = 0 เพื่อใช ้อ้างอิงตาแหน่งข้อมูลใน List
4. กาหนดตัวแปร total = 0 ไว้ใช ้เก็บผลรวม
5. วนซ้าตรวจตาแหน่งที่อ้างอิงข้อมูลต้องน้อยกว่าขนาดข้อมูล
5.1 ถ้าเงื่อนไขเป็ นจริงให้ทา ผลรวม = ผลรวม + ข้อมูลตาแหน่งที่ i
5.2เพิ่มค่า i อีก 1
6. เมื่อหาผลรวมข้อมูลครบแล้ว
6.1 หาค่าเฉลี่ยจาก ค่าเฉลี่ย = ผลรวม / จานวนข้อมูลทั้งหมด
7. แสดงผลค่าเฉลี่ยออกทางจอภาพ
8. จบการทางาน
29. 29
3.4 ขั้นตอนการเขียนโปรแกรมด้วย while loop
3. ชุดคาสั่ง while loop
เขียนผังงาน
Sta
rt
score = [ 34,56,43,23,59,70]
i =0
total =0
1
1
i <
len(score)
i = i + 1
average = total /
len(score)
False
Sto
p
average
True
total = total + score[ i
]
1
31. 31
3.4 ขั้นตอนการเขียนโปรแกรมด้วย while loop
3. ชุดคาสั่ง while loop
4) เขียนโปรแกรม 1
2
3
4
5
6
7
8
9
10
11
Sta
rt
score = [ 34,56,43,23,59,70]
i =0
total =0
1
1
score = [34,56,43,23,59,70]
i=0
total=0
print (“ข้อมูล : ”,score)
while i<len(score):
total=total+score[i]
i=i+1
else:
average = total/(len(score))
print (“ผลรวม : ” total)
print ("คะแนนเฉลี่ย : ",average)
i <
len(score)
i = i + 1
average = total /
len(score)
False
Sto
p
average
True
total = total + score[ i
]
1
32. 32
4. ชุดคาสั่ง while loop กับ else
• การใช ้else กับ while loop นั้น ส่วนของ else ถูกดาเนินการเมื่อเงื่อนไขในการ
ดาเนินการ while loop เป็นเท็จ
• โดยปกติแล้วการหยุด while loop สามารถใช ้ชุดคาสั่ง break แต่ในบางกรณี
ต้องการให้ทาอะไรบางอย่างหลังจากวนลูปทางานครบตามเงื่อนไข ดังนั้นต้องอาศัย
ชุดคาสั่ง else มาร่วมทางาน
34. 34
5. ชุดคาสั่ง Nested loop
• Nested loop คือชุดคาสั่ง loop ชุดหนึ่งซ ้อนอยู่ภายใต้ชุดคาสั่ง loop อีกชุดหนึ่ง
• สามารถใช ้ได้กับทั้ง while และ for อาจจะเป็ น for ถูกซ ้อนภายใต้ while หรือ while
ซ ้อนภายใต้ for หรือ while ซ ้อนภายใต้ while หรือ for ซ ้อนภายใต้ for
ตัวอย่าง เช่น การแสดงสูตรคูณแม่ 2 – 5
Loop นอก คือ การวนซ้าดาเนินการหาผลคูณของแม่สูตรคูณแม่ 2 , 3, 4, และแม่ 5
ส่วน Loop ใน คือ การหาผลลัพธ์ของผลคูณจาก 1 – 12 ของแต่ละแม่สูตรคูณ
35. 35
5. ชุดคาสั่ง Nested loop
สูตรคูณแม่ 2
1 x 2 = 2
2 x 2 = 4
3 x 2 = 6
4 x 2 = 8
5 x 2 = 10
6 x 2 = 12
7 x 2 = 14
8 x 2 = 16
9 x 2 = 18
10 x 2 = 20
11 x 2 = 22
12 x 2 = 24
สูตรคูณแม่ 3
1 x 3 = 3
2 x 3 = 6
3 x 3 = 9
4 x 3 = 12
5 x 3 = 15
6 x 3 = 18
7 x 3 = 21
8 x 3 = 24
9 x 3 = 27
10 x 3 = 30
11 x 3 = 33
12 x 3 = 36
สูตรคูณแม่ 4
1 x 4 = 4
2 x 4 = 8
3 x 4 = 12
4 x 4 = 16
5 x 4 = 20
6 x 4 = 24
7 x 4 = 28
8 x 4 = 32
9 x 4 = 36
10 x 4 = 40
11 x 4 = 44
12 x 4 = 48
สูตรคูณแม่ 5
1 x 5 = 5
2 x 5 = 10
3 x 5 = 15
4 x 5 = 20
5 x 5 = 25
6 x 5 = 30
7 x 5 = 35
8 x 5 = 40
9 x 5 = 45
10 x 5 = 50
11 x 5 = 55
12 x 5 = 60
36. 36
5.1 ไวยากรณ์ชุดคาสั่ง Nested loop
5. ชุดคาสั่ง Nested loop
while test_expression:
while test_expression:
Body of inside while
while test_expression:
for val in sequence:
loop body of for
หรือ
37. 37
5.2 ตัวอย่างโปรแกรมการแสดงชุดคาสั่ง nested loop
5. ชุดคาสั่ง Nested loop
แบบ for ซ ้อนภายใต้ while ของงานแสดงแม่สูตรคูณ
1
2
3
4
5
6
7
8
9
10
11
n=int(input("ป้ อนจานวนแม่สูตรที่ต้องการดาเนินการ :” ))
i=2
while i<= n:
for m in range(1,13):
sum = m*i
print("%d X %d = %d"%(m,i,sum))
else:
print( "จบการคูณแม่ %d” %i )
i=i+1
else:
print( "การคูณดาเนินการสาเร็จ” )
45. 45
การทางานของชุดคาสั่ง break ใน for loop และ while loop
6. ชุดคาสั่ง break และ continue
for var in sequence :
# ชุดคำสั่งใน for loop
If condition :
break
#ชุดคำสั่งใน for loop
# ชุดคำสั่งนอก for loop
while test expression :
# ชุดคำสั่งใน while
loop
If condition :
break
#ชุดคำสั่งใน while loop
# ชุดคำสั่งนอก while loop
46. 46
6. ชุดคาสั่ง break และ continue
4. ตัวอย่างการใช้ชุดคาสั่ง break ในงานแสดงตัวอักษรจากชุดตัวอักษรออกทางจอภาพทุกตัวยกเว้นอักษร i จาก
ข้อความ “chaisiri”
1
2
3
4
5
6
# กำรใช ้คำสั่ง break ใน for loop
for var in "chaisiri":
if var == "i":
break
print(var)
print("The end")
c
h
a
The end
ผลลัพธ์
48. 48
การทางานของชุดคาสั่ง continue ใน for loop และ while loop
6. ชุดคาสั่ง break และ continue
for var in sequence :
# ชุดคำสั่งใน for loop
If condition :
continue
#ชุดคำสั่งใน for loop
# ชุดคำสั่งนอก for loop
while test expression :
# ชุดคำสั่งใน while
loop
If condition :
continue
#ชุดคำสั่งใน while loop
# ชุดคำสั่งนอก while loop
49. 49
8. ตัวอย่างการใช้ชุดคาสั่ง continue ในงานแสดงตัวอักษรจากชุดตัวอักษรออกทางจอภาพทุกตัว
ยกเว้นอักษร i จากข้อความ “chaisiri”
6. ชุดคาสั่ง break และ continue
1
2
3
4
5
6
# กำรใช ้คำสั่ง break ใน for loop
for var in "chaisiri":
if var == "i":
continue
print(var)
print("The end")
c
h
a
s
r
The end
ผลลัพธ์