Vòng lặp trong Python

 

Vòng lặp trong Python


1- Tổng quan các vòng lặp trong Python

Trong Python các câu lệnh (statement) được thực hiện một cách tuần tự từ trên xuống dưới. Tuy nhiên đôi khi bạn muốn thực hiện một khối các câu lệnh nhiều lần, bạn có thể sử dụng vòng lặp (loop).
Python cung cấp cho bạn 2 loại vòng lặp sau:
  1. Vòng lặp while
  2. Vòng lặp for
Các câu lệnh liên hợp với vòng lặp:
  • else
Các câu lệnh (statement) có thể được sử dụng bên trong vòng lặp:
  1. continue
  2. break
  3. pass
LệnhMô tả

break

Đây là câu lệnh ngừng vòng lặp.

continue

Đây là câu lệnh để bỏ qua các câu lệnh còn lại trong khối lệnh (block),  và ngay lập tức kiểm tra lại điều kiện trước khi tiếp tục thực thi lại khối lệnh.

pass

Lệnh pass trong vòng lặp chỉ đơn giản là một đánh dấu, nhắc bạn nhớ thêm mã (code) nào đó trong tương lai. Nó là một lệnh null (Không làm gì cả).

2- Vòng lặp while

Cú pháp vòng lặp while:
1
2
3
while (condition) :
    # Làm gì đó ở đây
    # ....
Ví dụ:
whileLoopExample.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
print("While loop example");
# Tạo một biến x và gán giá trị 2 cho nó.
x = 2;
 
# Điều kiện kiểm tra là x < 10
# Nếu x < 10 đúng, thì chạy khối lệnh này.
while (x < 10) :
 
    print("Value of x = ", x);
     
    x = x + 3;
 
# Dòng lệnh này nằm ngoài khối lệnh while.
print("Finish");
Chạy ví dụ:

3- Vòng lặp for với range

Ví dụ đơn giản nhất của vòng lặp for trong Python là sử dụng 'for' với 'range' (Phạm vi). Ví dụ biến 'x' có giá trị chạy trong pham vi (3, 7)  (x= 3, 4, 5, 6).
forLoopExample.py
1
2
3
4
5
6
7
8
9
10
print("For loop example");
 
# for x = 3, 4, 5, 6
for x in range (3, 7) :
  
    print("Value of x = ", x);
    print("  x^2 = ", x * x);
 
# Dòng lệnh này nằm ngoài khối lệnh for.
print("End of example");
Chạy ví dụ:

4- Sử dụng for và mảng


Sử dụng vòng lặp for có thể giúp bạn duyệt trên các phần tử của mảng.
forLoopExample3.py
1
2
3
4
5
6
7
8
9
10
11
print("For loop example");
 
# Khai báo một mảng.
names =["Tom","Jerry", "Donald"];
 
for name in names:
  
    print("Name = ", name);     
 
  
print("End of example");
Duyệt các phần tử của mảng thông qua chỉ số (index):
forLoopExample3b.py
1
2
3
4
5
6
7
8
9
10
11
12
13
print("For loop example");
 
# Khai báo một mảng.
names =["Tom","Jerry", "Donald"];
 
# Hàm len() trả về số phần tử của mảng.
# index = 0,1,.. len-1
for index in range(len(names)):
  
    print("Name = ", names[index] );     
 
  
print("End of example");

5- Sử dụng lệnh break trong vòng lặp

break là một lệnh nó có thể nằm trong một khối lệnh của một vòng lặp. Đây là lệnh kết thúc vòng lặp vô điều kiện.
loopBreakExample.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
print("Break example");
 
# Tạo một biến x và gán giá trị 2 cho nó.
x = 2;
 
while (x < 15) :
    print("----------------------\n");
    print("x = ", x);
     
    # Kiểm tra nếu x = 5 thì thoát ra khỏi vòng lặp.
    if (x == 5) :    
        break;
     
    # Tăng giá trị của x thêm 1
    x = x + 1;
    print("x after + 1 = ", x);
     
     
print("End of example");

6- Sử dụng lệnh continue trong vòng lặp

continue là một lệnh, nó có thể nằm trong một vòng lặp, khi bắt gặp lệnh continue chương trình sẽ bỏ qua các dòng lệnh trong khối phía dưới của continue và bắt đầu một vòng lặp mới.
 
loopContinueExample.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
print("Continue example");
 
# Khai báo một biến và gán giá trị 2
x = 2
 
while (x < 7) :
    print("----------------------\n")
    print("x = ", x)
     
    # % : Là phép chia lấy số dư.
    # Nếu x là số chẵn, thì bỏ qua các lệnh bên dưới của 'continue'   
    # để tiếp tục bước lặp (iteration) mới.   
    if (x % 2 == 0) :  
        # Increase x by 1.
        x = x + 1
        continue
 
    else :
        # Increase x by 1.
        x = x + 1
 
        print("x after + 1 =", x)
         
  
  
print("End of example");

7- Sử dụng lệnh pass trong vòng lặp

Trong Pythonpass là một lệnh null (Không gì cả), khác biệt giữa một chú thích (comment) và lệnh pass trong Python là bộ thông dịch (interpreter) sẽ bỏ qua toàn bộ chú thích, còn với pass thì không bỏ qua.

Tuy vậy, không có gì xẩy ra khi lệnh pass được thực thi.
Lệnh pass trong vòng lặp chỉ đơn giản là một đánh dấu, để bạn nhớ thêm mã (code) nào đó trong tương lai.
loopPassExample.py
1
2
3
4
5
6
7
8
9
10
11
12
number = 0
 
for number in range(5):
    number = number + 1
   
    if number == 3:      
        print(" do something here " , number)
        pass 
 
    print(" >> " ,number )
 
print('Out of loop')
Chạy ví dụ:
Bạn có thể loại bỏ lệnh pass trong ví dụ trên mà không làm thay đổi điều gì.
loopPassExample.py (Remove pass statement)
1
2
3
4
5
6
7
8
9
10
11
12
number = 0
 
for number in range(5):
    number = number + 1
   
    if number == 3:      
        print(" do something here " , number)
        # pass (Remove pass)
 
    print(" >> " ,number )
 
print('Out of loop')

8- Sử dụng lệnh 'else' với vòng lặp


Lệnh else có thể liên hợp với vòng lặp. Lệnh else sẽ được thực thi nếu vòng lặp chạy và kết thúc một cách bình thường, không bị ngắt bởi lệnh break.
forLoopElseExample.py
1
2
3
4
5
6
7
8
9
10
11
12
print("For loop example");
 
# for x = 3, 4, 5, 6
for x in range (3, 7) :
  
    print("Value of x = ", x);
    print("  x^2 = ", x * x);
else :
    print("finish for loop")
     
# Đây là một lệnh nằm ngoài khối lệnh for.
print("End of example");
Nếu vòng lặp bị ngừng bởi lệnh break, lệnh else liên hợp với vòng lặp sẽ không đươc thực thi.
forLoopElseExample2.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
print("For loop example");
 
# for x = 3, 4, 5, 6
for x in range (3, 7) :
  
    print("Value of x = ", x);
    if x == 5:
        print("Break!")
        break;
     
else :
    # Nếu lệnh break đã được gọi trong vòng lặp,
    # lệnh này sẽ không được thực thi.
    print("This command will not be executed!")
     
# Dòng lệnh này nằm ngoài khối lệnh for.
print("End of example");