Vòng lặp trong Python
Vòng lặp là gì?
Có thể có tình huống, khi bạn cần thực thi một khối mã nhiều lần. Nói chung, các câu lệnh được thực hiện tuần tự: Câu lệnh đầu tiên trong một hàm được thực thi đầu tiên, tiếp theo là câu lệnh thứ hai, v.v.
Ngôn ngữ lập trình cung cấp các cấu trúc điều khiển khác nhau cho phép thực thi những câu lệnh phức tạp. Vòng lặp là một trong những cấu trúc điều khiển đó.
Vòng lặp cho phép chúng ta thực thi một câu lệnh hoặc một nhóm các câu lệnh nhiều lần. Sau đây là lược đồ tổng quát từ một câu lệnh lặp trong hầu hết các ngôn ngữ lập trình:
Ngôn ngữ lập trình Python cung cấp các loại vòng lặp sau để xử lý các yêu cầu lặp:
- Vòng lặp
while
. - Vòng lặp
for
.
Vòng lặp while
trong Python
Vòng lặp while
trong ngôn ngữ lập trình Python sẽ thực thi khối lệnh của nó nhiều lần miễn là biểu thức điều kiện vẫn trả về TRUE.
Cú pháp vòng lặp while
trong Python
Cú pháp của một vòng lặp while
trong ngôn ngữ lập trình Python như sau:
while expression:
statement(s)
Ở đây, statement(s) có thể là một câu lệnh đơn hoặc một khối các câu lệnh. expression có thể là bất kỳ biểu thức nào trả về giá trị TRUE. Vòng lặp while sẽ thực thi khi điều kiện là TRUE.
Khi điều kiện trả về FALSE, vòng lặp while kết thúc và chuyển tới dòng lệnh ngay sau khối lệnh while.
Trong Python, tất cả các câu lệnh được thụt vào bởi cùng một số ký tự khoảng trắng, những ký tự khoảng trắng này được coi là một phần của một khối mã. Python sử dụng thụt lề làm phương pháp nhóm các câu lệnh.
Lược đồ vòng lặp while
trong Python
Ở đây, điểm mấu chốt của vòng lặp while là vòng lặp có thể không bao giờ chạy. Khi điều kiện được kiểm tra trả về FALSE, thân vòng lặp sẽ bị bỏ qua và câu lệnh đầu tiên sau vòng lặp while sẽ được thực thi.
Ví dụ về vòng lặp while
trong Python
#!/usr/bin/python
count = 0
while (count < 9):
print 'The count is:', count
count = count + 1
print "Good bye!"
Khi đoạn mã trên được thực thi, nó tạo ra kết quả sau
The count is: 0
The count is: 1
The count is: 2
The count is: 3
The count is: 4
The count is: 5
The count is: 6
The count is: 7
The count is: 8
Good bye!
Khối lệnh while ở đây bao gồm các câu lệnh print và đếm tăng, được thực hiện lặp đi lặp lại cho đến khi số đếm không còn nhỏ hơn 9. Với mỗi lần lặp, giá trị hiện tại của số đếm được in ra và sau đó tăng thêm 1.
Vòng lặp while
vô hạn trong Python
Một vòng lặp trở thành vòng lặp vô hạn nếu biểu thức điều kiện không bao giờ trả về FALSE. Bạn phải thận trọng khi sử dụng các vòng lặp while vì khả năng điều kiện này không bao giờ trả về giá trị FALSE. Điều này dẫn đến một vòng lặp không bao giờ kết thúc. Một vòng lặp như vậy được gọi là một vòng lặp vô hạn.
Một vòng lặp vô hạn có thể hữu ích trong lập trình máy khách / máy chủ nơi máy chủ cần chạy liên tục để các chương trình máy khách có thể giao tiếp với nó khi được yêu cầu.
#!/usr/bin/python
var = 1
while var == 1 : # This constructs an infinite loop
num = raw_input("Enter a number: ")
print "You entered: ", num
print "Good bye!"
Khi đoạn mã trên được thực thi, nó tạo ra kết quả sau
Enter a number: 20
You entered: 20
Enter a number: 29
You entered: 29
Enter a number: 3
You entered: 3
Enter a number between: Traceback (most recent call last):
File "test.py", line 5, in <module>
num = raw_input("Enter a number :")
KeyboardInterrupt
Ví dụ trên đi vào một vòng lặp vô hạn và bạn cần sử dụng CTRL + C
để thoát khỏi chương trình.
Sử dụng lệnh else
trong vòng lặp while
Python hỗ trợ sử dụng câu lệnh else
trong các vòng lặp như sau:
- Nếu câu lệnh
else
được sử dụng với vòng lặpfor
thì câu lệnhelse
được thực thi khi vòng lặp đã duyệt hết danh sách. - Nếu câu lệnh
else
được sử dụng với vòng lặpwhile
thì câu lệnhelse
được thực hiện khi điều kiện lặp trả về FALSE.
Ví dụ sau minh họa sự kết hợp của câu lệnh else
với vòng lặp while
:
#!/usr/bin/python
count = 0
while count < 5:
print count, " is less than 5"
count = count + 1
else:
print count, " is not less than 5"
Khi đoạn mã trên được thực thi, nó tạo ra kết quả sau
0 is less than 5
1 is less than 5
2 is less than 5
3 is less than 5
4 is less than 5
5 is not less than 5
Lệnh while
một dòng trong Python
Tương tự như cú pháp câu lệnh if
một dòng, nếu mệnh đề while
của bạn chỉ có một câu lệnh đơn, nó có thể được đặt trên cùng một dòng với câu lệnh while
.
Dưới đây là cú pháp và ví dụ về lệnh while
một dòng:
#!/usr/bin/python
flag = 1
while (flag): print 'Given flag is really true!'
print "Good bye!"
Tốt hơn là không thử ví dụ trên vì nó sẽ tạo vòng lặp vô hạn và bạn cần nhấn các phím CTRL + C
để thoát.
Vòng lặp for
trong Python
Vòng lặp for
trong Python có khả năng lặp lại các phần tử của bất kỳ danh sách hoặc chuỗi nào.
Cú pháp vòng lặp for
trong Python
for iterating_var in sequence:
statements(s)
Nếu một danh sách chứa một danh sách biểu thức, nó được đánh giá đầu tiên. Sau đó, phần tử đầu tiên trong danh sách được gán cho biến lặp iterating_var. Tiếp theo, khối lệnh của vòng lặp được thực thi. Mỗi phần tử trong danh sách được gán cho iterating_var và khối lệnh được thực thi cho đến khi toàn bộ danh sách được duyệt hết.
Lược đồ vòng lặp for
trong Python
Ví dụ vòng lặp for
trong Python
#!/usr/bin/python
for letter in 'Python': # First Example
print 'Current Letter :', letter
fruits = ['banana', 'apple', 'mango']
for fruit in fruits: # Second Example
print 'Current fruit :', fruit
print "Good bye!"
Khi đoạn mã trên được thực thi, nó tạo ra kết quả sau:
Current Letter : P
Current Letter : y
Current Letter : t
Current Letter : h
Current Letter : o
Current Letter : n
Current fruit : banana
Current fruit : apple
Current fruit : mango
Good bye!
Vòng lặp lồng nhau trong Python
Ngôn ngữ lập trình Python cho phép sử dụng một vòng lặp bên trong một vòng lặp khác gọi là vòng lặp lồng nhau. Phần sau đây cho thấy một vài ví dụ để minh họa khái niệm này.
Cú pháp vòng lặp lồng nhau trong Python
Cú pháp cho vòng lặp for
lồng nhau trong ngôn ngữ lập trình Python như sau:
for iterating_var in sequence:
for iterating_var in sequence:
statements(s)
statements(s)
Cú pháp cho vòng lặp while
lồng nhau trong ngôn ngữ lập trình Python như sau:
while expression:
while expression:
statement(s)
statement(s)
Một lưu ý cuối cùng về vòng lặp lồng nhau là bạn có thể đặt bất kỳ loại vòng lặp nào bên trong bất kỳ loại vòng lặp nào khác. Ví dụ, một vòng lặp for
có thể nằm trong vòng lặp while
hoặc ngược lại.
Ví dụ vòng lặp for
trong Python
Chương trình sau đây sử dụng vòng lặp lồng nhau để tìm các số nguyên tố từ 2 đến 100:
#!/usr/bin/python
i = 2
while(i < 100):
j = 2
while(j <= (i/j)):
if not(i%j): break
j = j + 1
if (j > i/j) : print i, " is prime"
i = i + 1
print "Good bye!"
Khi đoạn mã trên được thực thi, nó tạo ra kết quả như sau:
2 is prime
3 is prime
5 is prime
7 is prime
11 is prime
13 is prime
17 is prime
19 is prime
23 is prime
29 is prime
31 is prime
37 is prime
41 is prime
43 is prime
47 is prime
53 is prime
59 is prime
61 is prime
67 is prime
71 is prime
73 is prime
79 is prime
83 is prime
89 is prime
97 is prime
Good bye!
Điều khiển vòng lặp
Đôi khi bạn muốn thay đổi cách vòng lặp duyệt các phần tử trong danh sách. Các lệnh điều khiển vòng lặp sẽ giúp bạn làm điều này.
Python hỗ trợ các câu lệnh điều khiển vòng lặp sau:
- Lệnh
break
. - Lệnh
continue
. - Lệnh
pass
.
Lệnh break
trong Python
Lệnh break
chấm dứt vòng lặp hiện tại và tiếp tục thực hiện tại câu lệnh tiếp theo, giống như câu lệnh break truyền thống trong C.
Việc sử dụng phổ biến nhất của break
là khi một số điều kiện bên ngoài được kích hoạt yêu cầu thoát nhanh khỏi vòng lặp. Câu lệnh break
có thể được sử dụng trong cả vòng lặp while
và vòng lặp for
.
Nếu bạn đang sử dụng các vòng lặp lồng nhau, câu lệnh break
dừng thực thi vòng lặp trong cùng và bắt đầu thực thi dòng mã tiếp theo sau vòng lặp.
Cú pháp lệnh break
trong Python
Cú pháp của lệnh break trong Python như sau:
break
Sơ đồ lệnh break
trong Python
Ví dụ lệnh break
trong Python
#!/usr/bin/python
for letter in 'Python': # First Example
if letter == 'h':
break
print 'Current Letter :', letter
var = 10 # Second Example
while var > 0:
print 'Current variable value :', var
var = var -1
if var == 5:
break
print "Good bye!"
Đây là kết quả của chương trình trên:
Current Letter : P
Current Letter : y
Current Letter : t
Current variable value : 10
Current variable value : 9
Current variable value : 8
Current variable value : 7
Current variable value : 6
Good bye!
Lệnh continue
trong Python
Lệnh continue
trong Python không bắt buộc vòng lặp kết thúc, nó bắt buộc vòng lặp tiếp theo diễn ra, bỏ qua bất kỳ đoạn dòng lệnh nào ở sau nó.
Lệnh continue
có thể được sử dụng trong cả vòng lặp while
và vòng lặp for
.
Cú pháp lệnh continue trong Python
Cú pháp của lệnh continue trong Python như sau:
continue
Sơ đồ lệnh continue
trong Python
Ví dụ lệnh continue
trong Python
#!/usr/bin/python
for letter in 'Python': # First Example
if letter == 'h':
continue
print 'Current Letter :', letter
var = 10 # Second Example
while var > 0:
var = var -1
if var == 5:
continue
print 'Current variable value :', var
print "Good bye!"
Kết quả của chương trình như sau:
Current Letter : P
Current Letter : y
Current Letter : t
Current Letter : o
Current Letter : n
Current variable value : 9
Current variable value : 8
Current variable value : 7
Current variable value : 6
Current variable value : 4
Current variable value : 3
Current variable value : 2
Current variable value : 1
Current variable value : 0
Good bye!
Lệnh pass
trong Python
Lệnh pass
trong Python được sử dụng khi một câu lệnh được yêu cầu về mặt cú pháp nhưng bạn không muốn bất kỳ lệnh hoặc mã nào được thực thi.
Câu lệnh pass là một toán tử null; Không có gì xảy ra khi nó thực thi. Câu lệnh pass chỉ hữu ích trong trường hợp bạn muốn xử lý trường hợp đó nhưng bạn chưa viết code để xử lý.
Cú pháp lệnh pass
trong Python
Cú pháp của lệnh pass
trong Python như sau:
pass
Ví dụ lệnh pass
trong Python
#!/usr/bin/python
for letter in 'Python':
if letter == 'h':
pass
print 'This is pass block'
print 'Current Letter :', letter
print "Good bye!"
Kết quả của chương trình như sau:
Current Letter : P
Current Letter : y
Current Letter : t
This is pass block
Current Letter : h
Current Letter : o
Current Letter : n
Good bye!