การใช้ประโยคสั่งทำงานวนซ้ำ
ฟังก์ชัน range()
ฟังก์ชัน range()
คือ ระยะตั้งแต่เริ่มต้นถึงก่อนระยะสิ้นสุด
มักจะใช้ในการควบคุมการทำงานของโปรแกรมเป็นจำนวนรอบ มีวิธีการเขียนดังนี้
range(start, stop[, step])
โดย start เป็นค่าเริ่มต้น stop
เป็นตำแหน่งค่าระยะสิ้นสุด และ step
คือระยะห่างการเพิ่มดังตัวอย่างต่อไปนี้
for i in range(5):
print(i, end=' ')
>>> 0 1 2 3 4
for i in range(1,5):
print(i, end=' ')
>>> 1 2 3 4
for i in range(1,5,2):
print(i, end=' ')
>>> 1 3
for i in range(5,1,-2):
print(i, end=' ')
>>> 5 3
คำสั่ง for
คำสั่ง for
statement เป็นการทำงานซ้ำๆ
ตามจำนวนครั้งที่ระบุไว้อย่างแน่นอน เช่น การใช้ for
statement
ร่วมกันกับ range()
โดยมีรูปแบบการเขียนดังนี้
for var in sequence:
statement
statement
statement
statement
...
ตัวอย่างการใช้ for
statement เป็นดังนี้
for x in range(0,5):
print(x, end=' ')
ซึ่งจะได้ผลลัพธ์ดังนี้
0 1 2 3 4
ตัวอย่างการใช้ for
statement จะได้ผลลัพธ์ดังนี้
name = 'Jan'
for char in name:
print(char, end=' ')
>>> J a n
mylist = ['Jan', 200, 4.5]
for item in mylist:
print(item, end = ' ')
>>> Jan 200 4.5
ตัวอย่างการใช้ for
statement ที่มีการผสมของการใช้ if
ในการกำหนดเงื่อนไขการตัดสินใจ เป็นดังนี้
message = input('Enter a message: ')
vowels = 'AEIOU'
counter = 0
for char in message:
if char.upper() in vowels:
counter += 1
print('Vowels: ', counter)
ซึ่งจะได้ผลลัพธ์ดังนี้
Enter a message: Jantawan
Vowels: 3
คำสั่ง while
while
statement
เป็นคำสั่งให้โปรแกรมทำงานวนซ้ำในขณะที่เงื่อนไขของการวนซ้ำนั้นยังคงเป็นจริงอยู่
และเมื่อเงื่อนไขเป็นเท็จจะสิ้นสุดการทำงานวนซ้ำนั้นทันที
ดังนั้นจึงต้องมีตัวควบคุมในการเพิ่มค่าไปเรื่อยๆ จนเงื่อนไขเป็นเท็จ
while
statement มีลักษณะการเขียน 3 รูปแบบ คือ แบบ Pre-Test แบบ
Post-Test และแบบ Mid-Test
รูปแบบการเขียน while
statement แบบ Pre-Test เป็นดังนี้คือ
while expression:
statement
statement
statement
statement
...
และมีตัวอย่างการใช้ while
statement เป็นดังนี้
x = 0
while x < 10:
print(x, end=' ')
x = x + 1
ซึ่งได้ผลลัพธ์เช่นนี้
0 1 2 3 4 5 6 7 8 9
รูปแบบการเขียน while
statement แบบ Post-Test เป็นดังนี้คือ
while True:
statement
statement
statement
statement
...
if expression:
break
และมีตัวอย่างการใช้ while
statement เป็นดังนี้
i = 10
while True:
print(i, end=' ')
-= 2
if i <= 0: break
ซึ่งได้ผลลัพธ์เช่นนี้
10 8 6 4 2 0
รูปแบบการเขียน while
statement แบบ Mid-Test เป็นดังนี้คือ
while True:
statement
statement
statement
statement
...
if expression:
break
statement
statement
statement
statement
...
และมีตัวอย่างการใช้ while
statement เป็นดังนี้
x = 0
while True:
print(x, end=' ')
if x == 10:
break
x = x +1
ซึ่งได้ผลลัพธ์เช่นนี้
0 1 2 3 4 5 6 7 8 9 10
แบบฝึกหัด
สร้างฟังก์ชันหาค่าของ \(3^1\) + \(3^2\) + \(3^3\) + \(3^4\) + \(3^5\) โดยใช้ For loop
สร้างฟังก์ชันให้ผู้ใช้ป้อนค่า x แล้วนำค่า x มาคำนวณ \(x^1\) + \(x^2\) + \(x^3\) + \(x^4\) + \(x^5\)
สร้างฟังก์ชันให้ผู้ใช้ป้อนค่า n และให้แสดงเลขเริ่มที่ n โดยลดลงทีละหนึ่ง โดยใช้ while loop
สร้างฟังก์ชันให้ผู้ใช้ป้อนตัวเลข แล้วหาว่ามีเลขใดที่สามารถหารเลขที่ผู้ใช้ป้อนได้ลงตัว เช่น ผู้ใช้ป้อนตัวเลข 4 จะมี 1 2 4 ที่หารเลข 4 ลงตัว
สร้างฟังก์ชันคำนวณปีเกิด คศ. เป็น 12 ราศีปีนักษัตร
สร้างฟังก์ชันรับจำนวนเงินมาหนึ่งค่า แล้วแลกเปลี่ยนธนบัตร 100 บาท 50 บาท 20 บาท เหรียญ 10 บาท 5 บาท และ 1 บาท