1. Vòng lặp while trong Python
Vòng lặp while
được sử dụng để thực thi lặp đi lặp lại một khối lệnh khi thỏa một điều kiện nhất định nào đó. Cú pháp vòng lặp while:
while condition:
#Body of while
Nếu condition là True thì các khối lệnh trong thân while sẽ được thực thi. Nếu condition là False thì các khối lệnh trong thân while sẽ không được thực thi. Lưu ý: Trình biên dịch của Python sẽ hiểu bất kỳ giá trị nào của condition khác 0 sẽ là True. Còn None hoặc 0 sẽ là False.
Ví dụ:
sum = 0
i = 1
while (i < 5):
sum = sum + i
print(i, end=' ')
i = i+1
print("\nsum = ", sum)
Kết quả
1 2 3 4
sum = 10
Chúng ta cũng có thể sử dụng while để duyệt các phần tử trong list.
fruits = ["apple", "banana", "cherry"]
i = 0
while i < len(fruits):
print(fruits[i])
i = i + 1
Kết quả
apple
banana
cherry
2. Vòng lặp while trong một dòng lệnh
Chúng ta có thể viết vòng lặp while chỉ trong một dòng lệnh. Lúc này, nếu trong thân của while có nhiều câu lệnh thì các câu lệnh phân tách nhau bởi dấu chấm phẩy ;. Ví dụ:
i = 0
sum = 0
while (i < 3): i += 1; print("Welcome to Gochocit.com"); sum +=i
print("sum = ", sum)
Kết quả
Welcome to Gochocit.com
Welcome to Gochocit.com
Welcome to Gochocit.com
sum = 6
3. Vòng lặp while với else
Giống như vòng lặp for trong Python, vòng lặp while cũng có thể được sử dụng với else. Khối lệnh của else chỉ thực thi sau khi condition của vòng lặp while là False. Lưu ý: Trong trường hợp vòng lặp while có câu lệnh break và câu lệnh break làm thoát vòng lặp while thì khối lệnh trong else cũng sẽ không được thực thi.
Ví dụ sử dụng vòng lặp while với else
numbers = [0, 1, 5]
i = 0
while i < len(numbers):
print(numbers[i])
i = i + 1
else:
print("That is all in numbers list.")
Kết quả
0
1
5
That is all in numbers list.
Ví dụ sử dụng vòng lặp while có break với else
print("#Result 1")
i = 0
while i < 4:
if(i!=9):
print(i)
else:
break
i = i + 1
else: # Executed because break in for is not executed
print("No Break")
print("#Result 2")
i = 0
while i < 4:
if(i!=3):
print(i)
else:
break
i = i + 1
else: # Not executed as there is a break is executed
print("No Break")
Kết quả
#Result 1
0
1
2
3
No Break
#Result 2
0
1
2
Trong ví dụ trên, nếu break trong while được thực hiện (làm thoát khỏi vòng lặp while) thì else sẽ không được thực hiện. Còn nếu trong while có break mà break trong while không thực thi thì else vẫn được thực thi.
4. Kiểm tra giá trị input với vòng lặp while
Tính chất của vòng lặp while là lặp đi lặp lại một khối lệnh cho đến khi thỏa mãn một điều kiện nhất định. Dựa vào tính chất này, chúng ta có thể sử dụng while để giúp kiểm tra giá trị input mà người dùng nhập vào. Nếu giá trị input mà người dùng nhập không thỏa yêu cầu thì sẽ yêu cầu người dùng nhập lại cho đến khi thỏa yêu cầu thì thôi. Ví dụ:
a = int(input('Enter a positive number: '))
while a <= 0:
a = int(input('Enter a positive number: '))
Kết quả
Enter a positive number: -9
Enter a positive number: -1
Enter a positive number: -2
Enter a positive number: -8
Enter a positive number: -5
Enter a positive number: 7
Vòng lặp while giúp kiểm tra một số a nhập vào mà a<= 0 thì phải nhập tiếp. Đến khi nào người dùng nhập a > 0 thì mới dừng.