Vòng lặp trong Python - Vòng lặp For, While và Lồng nhau
Category: Python
Vòng lặp trong Python được sử dụng để lặp lại các hành động một cách hiệu quả. Các loại chính là vòng lặp For (đếm qua các mục) và vòng lặp While (dựa trên các điều kiện). Ngoài ra, Vòng lặp lồng nhau cho phép lặp trong các vòng lặp cho các tác vụ phức tạp hơn. Mặc dù tất cả các cách đều cung cấp chức năng cơ bản tương tự nhau, nhưng chúng khác nhau về cú pháp và thời gian kiểm tra điều kiện. Trong bài viết này, chúng ta sẽ xem xét các vòng lặp Python và hiểu cách hoạt động của chúng với sự trợ giúp của các ví dụ.
Vòng lặp While trong Python
Trong Python , vòng lặp while được sử dụng để thực hiện một khối lệnh lặp đi lặp lại cho đến khi một điều kiện nhất định được thỏa mãn. Khi điều kiện trở thành sai, dòng ngay sau vòng lặp trong chương trình sẽ được thực hiện.
Cú pháp vòng lặp While của Python:
biểu thức while:
câu lệnh(s)
Tất cả các câu lệnh được thụt lề bằng cùng số ký tự sau một cấu trúc lập trình được coi là một phần của một khối mã duy nhất. Python sử dụng thụt lề làm phương pháp nhóm các câu lệnh.
Ví dụ về vòng lặp While của Python:
cnt = 0
while (cnt < 3):
cnt = cnt + 1
print("Hello Geek")
Đầu ra:
Hello Geek
Hello Geek
Hello Geek
Sử dụng câu lệnh else với vòng lặp While trong Python
Mệnh đề Else chỉ được thực thi khi điều kiện while của chúng ta trở thành false. Nếu chúng ta thoát khỏi vòng lặp hoặc nếu một ngoại lệ được đưa ra thì nó sẽ không được thực thi.
Cú pháp của vòng lặp While với câu lệnh else:
while điều kiện:
# thực hiện các câu lệnh này
else:
# thực hiện các câu lệnh này
Ví dụ:
Mã này in ra "Hello Geek" ba lần bằng cách sử dụng vòng lặp 'while' và sau vòng lặp, nó in ra "In Else Block" vì có một khối "else" được liên kết với vòng lặp 'while'.
cnt = 0
while (cnt < 3):
cnt = cnt + 1
print("Hello Geek")
else:
print("In Else Block")
Đầu ra:
Hello Geek
Hello Geek
Hello Geek
In Else Block
Vòng lặp While vô hạn trong Python
Nếu chúng ta muốn một khối mã thực thi vô số lần thì chúng ta có thể sử dụng vòng lặp while trong Python để thực hiện điều đó.
Đoạn mã dưới đây sử dụng vòng lặp 'while' với điều kiện (count == 0) và vòng lặp này sẽ chỉ chạy khi count bằng 0. Vì count ban đầu được đặt thành 0 nên vòng lặp sẽ thực thi vô thời hạn vì điều kiện luôn đúng.
count = 0
while (count == 0):
print("Hello Geek")
Lưu ý: Bạn không nên sử dụng loại vòng lặp này vì đây là vòng lặp vô hạn không bao giờ kết thúc, trong đó điều kiện luôn đúng và chúng ta phải buộc dừng trình biên dịch.
Vòng lặp For trong Python
Vòng lặp For được sử dụng để duyệt tuần tự. Ví dụ: duyệt danh sách hoặc chuỗi hoặc mảng , v.v. Trong Python, có vòng lặp "for in" tương tự như vòng lặp foreach trong các ngôn ngữ khác. Chúng ta hãy tìm hiểu cách sử dụng vòng lặp for trong Python để duyệt tuần tự với các ví dụ.
Cú pháp vòng lặp For:
cho iterator_var theo trình tự:
các câu lệnh
n = 4
for i in range(0, n):
print(i)
Đầu ra:
0
1
2
3
Giải thích: Đoạn mã này in ra các số từ 0 đến 3 (bao gồm) bằng cách sử dụng vòng lặp for lặp lại trong phạm vi từ 0 đến n-1 (trong đó n = 4).
Ví dụ với List, Tuple, String và Dictionary Lặp lại bằng cách sử dụng vòng lặp for trong Python
Chúng ta có thể sử dụng vòng lặp for để lặp lại các danh sách, bộ , chuỗi và từ điển trong Python.
li = ["geeks", "for", "geeks"]
for i in li:
print(i)
tup = ("geeks", "for", "geeks")
for i in tup:
print(i)
s = "Geeks"
for i in s:
print(i)
d = dict({'x':123, 'y':354})
for i in d:
print("%s %d" % (i, d[i]))
set1 = {1, 2, 3, 4, 5, 6}
for i in set1:
print(i),
Đầu ra:
geeks
for
geeks
geeks
for
geeks
G
e
e
k
s
x 123
y 354
1
2
3
4
5
6
Lặp lại theo Chỉ mục của Chuỗi
Chúng ta cũng có thể sử dụng chỉ số của các phần tử trong chuỗi để lặp lại. Ý tưởng chính là trước tiên tính toán độ dài của danh sách và lặp lại chuỗi trong phạm vi độ dài này.
list = ["geeks", "for", "geeks"]
for index in range(len(list)):
print(list[index])
Đầu ra:
geeks
for
geeks
Giải thích: Mã này lặp qua từng phần tử của danh sách bằng cách sử dụng chỉ mục của nó và in từng phần tử một. Range(len(list)) tạo ra các chỉ mục từ 0 đến độ dài của danh sách trừ đi 1.
Sử dụng câu lệnh else với vòng lặp for trong Python
Chúng ta cũng có thể kết hợp câu lệnh else với vòng lặp for như trong vòng lặp while. Nhưng vì không có điều kiện nào trong vòng lặp for dựa trên đó việc thực thi sẽ kết thúc nên khối else sẽ được thực thi ngay sau khi khối for hoàn tất việc thực thi.
list = ["geeks", "for", "geeks"]
for index in range(len(list)):
print(list[index])
else:
print("Inside Else Block")
Đầu ra:
geeks
for
geeks
Inside Else Block
Giải thích: Mã lặp qua danh sách và in ra từng phần tử. Sau khi vòng lặp kết thúc, nó in ra "Inside Else Block" khi khối else thực thi khi vòng lặp hoàn tất mà không có ngắt.
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 được gọi là vòng lặp lồng nhau . Phần sau đây trình bày một số ví dụ để minh họa khái niệm này.
Cú pháp vòng lặp lồng nhau:
cho iterator_var theo trình tự:
cho iterator_var theo trình tự:
câu lệnh(
các câu lệnh)
Cú pháp cho câu lệnh vòng lặp while lồng nhau trong ngôn ngữ lập trình Python như sau:
while biểu thức:
while biểu thức:
câu lệnh(các câu
lệnh)
Lưu ý cuối cùng về lồng vòng lặp là chúng ta 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 trong Python. Ví dụ, vòng lặp for có thể nằm bên trong vòng lặp while hoặc ngược lại.
from __future__ import print_function
for i in range(1, 5):
for j in range(i):
print(i, end=' ')
print()
Đầu ra:
1
2 2
3 3 3
4 4 4 4
Giải thích: Trong đoạn mã trên, chúng ta sử dụng các vòng lặp lồng nhau để in giá trị của i nhiều lần trong mỗi hàng, trong đó số lần in i tăng lên sau mỗi lần lặp của vòng lặp bên ngoài. Hàm print() in giá trị của i và chuyển sang dòng tiếp theo sau mỗi hàng.
Các câu lệnh điều khiển vòng lặp
Các câu lệnh điều khiển vòng lặp thay đổi việc thực thi khỏi trình tự bình thường của chúng. Khi việc thực thi rời khỏi phạm vi, tất cả các đối tượng tự động được tạo trong phạm vi đó sẽ bị hủy. Python hỗ trợ các câu lệnh điều khiển sau.
Câu lệnh continue
Câu lệnh continue trong Python trả về quyền điều khiển ở đầu vòng lặp.
for letter in 'geeksforgeeks':
if letter == 'e' or letter == 's':
continue
print('Current Letter :', letter)
Đầu ra:
Current Letter : g
Current Letter : k
Current Letter : f
Current Letter : o
Current Letter : r
Current Letter : g
Current Letter : k
Giải thích: Câu lệnh continue được sử dụng để bỏ qua lần lặp hiện tại của vòng lặp và chuyển sang lần lặp tiếp theo. Câu lệnh này hữu ích khi chúng ta muốn bỏ qua một số điều kiện nhất định mà không cần kết thúc vòng lặp.
Câu lệnh Break
Câu lệnh break trong Python giúp thoát khỏi vòng lặp.
for letter in 'geeksforgeeks':
if letter == 'e' or letter == 's':
break
print('Current Letter :', letter)
Đầu ra:
Current Letter : e
Giải thích: câu lệnh break được sử dụng để thoát khỏi vòng lặp trước thời hạn khi một điều kiện được chỉ định được đáp ứng. Trong ví dụ này, vòng lặp sẽ dừng khi chữ cái là 'e' hoặc 's', dừng việc lặp lại tiếp theo.
Câu lệnh pass
Chúng ta sử dụng câu lệnh pass trong Python để viết các vòng lặp rỗng. Pass cũng được sử dụng cho các câu lệnh điều khiển, hàm và lớp rỗng.
for letter in 'geeksforgeeks':
pass
print('Last Letter :', letter)
Đầu ra:
Last Letter : s
Giải thích: Trong ví dụ này, vòng lặp lặp lại từng chữ cái trong 'geeksforgeeks' nhưng không thực hiện bất kỳ thao tác nào và sau khi vòng lặp kết thúc, chữ cái cuối cùng ('s') sẽ được in ra.
Vòng lặp for hoạt động như thế nào trong Python?
Trước khi tiếp tục phần này, chúng ta cần có hiểu biết trước về Python Iterator.
Đầu tiên, chúng ta hãy xem vòng lặp for đơn giản trong Python trông như thế nào.
Ví dụ: Mã Python này lặp qua một danh sách có tên là trái cây, bao gồm "táo", "cam" và "kiwi". Mã này in tên từng loại trái cây trên một dòng riêng biệt, hiển thị chúng theo thứ tự xuất hiện trong danh sách.
fruits = ["apple", "orange", "kiwi"]
for fruit in fruits:
print(fruit)
Đoạn mã này lặp lại từng mục trong danh sách trái cây và in ra mục đó (trái cây) ở mỗi lần lặp lại và đầu ra sẽ hiển thị từng loại trái cây trên một dòng mới.
Mã Python này lặp thủ công qua danh sách các loại trái cây bằng cách sử dụng một trình lặp. Nó in tên của từng loại trái cây một và dừng lại khi không còn mục nào trong danh sách.
fruits = ["apple", "orange", "kiwi"]
iter_obj = iter(fruits)
while True:
try:
fruit = next(iter_obj)
print(fruit)
except StopIteration:
break
Đầu ra:
apple
orange
kiwi
Chúng ta có thể thấy rằng bên trong chúng ta đang gọi phương thức iter() và next().
Published on Jun 16, 2025