Ngôn ngữ lập trình Python cung cấp các kiểu vòng lặp sau đây nhằm giải quyết các yêu cầu về vòng lặp. Python cung cấp ba cách để thực hiện các vòng lặp. Mặc dù tất cả các cách cung cấp tính năng cơ bản tương tự, chúng khác nhau về cú pháp và thời gian kiểm tra điều kiện.
Nội dung chính
1. While loop
Trong python, while loop được sử dụng để thực thi một khối các câu lệnh lặp đi lặp lại cho đến khi thỏa mãn một điều kiện đã cho. Và khi điều kiện trở thành sai, dòng lệnh ngay sau vòng lặp trong chương trình được thực thi.
Cú pháp:
while expression:
statement(s)
Tất cả các câu lệnh được thụt vào bởi cùng số các khoảng trắng ký tự sau cấu trúc lập trình. Chúng được coi là một phần của một khối code đơn. Python sử dụng việc thụt lề làm phương pháp nhóm các câu lệnh.
Lấy ví dụ:
# -----------------------------------------------------------
#Cafedev.vn - Kênh thông tin IT hàng đầu Việt Nam
#@author cafedevn
#Contact: cafedevn@gmail.com
#Fanpage: https://www.facebook.com/cafedevn
#Group: https://www.facebook.com/groups/cafedev.vn/
#Instagram: https://instagram.com/cafedevn
#Twitter: https://twitter.com/CafedeVn
#Linkedin: https://www.linkedin.com/in/cafe-dev-407054199/
#Pinterest: https://www.pinterest.com/cafedevvn/
#YouTube: https://www.youtube.com/channel/UCE7zpY_SlHGEgo67pHxqIoA/
# -----------------------------------------------------------
# Python program to illustrate
# while loop
count = 0
while (count < 3):
count = count + 1
print("Hello Cafedev")
Đầu ra:
Hello Cafedev
Hello Cafedev
Hello Cafedev
- Sử dụng câu lệnh else kết hợp với vòng lặp while loop: Như đã thảo luận ở trên, vòng lặp while loop thực thi khối code đến khi một điều kiện được thỏa mãn. Khi điều kiện trở thành sai, câu lệnh ngay sau khi vòng lặp được thực thi.
Mệnh đề khác chỉ được thực hiện khi điều kiện while của bạn trở thành sai. Nếu bạn ngắt khỏi vòng lặp, hoặc nếu một ngoại lệ phát sinh, nó sẽ không được thực thi.
- Câu lệnh điều kiện if else như sau:
if condition:
# execute these statements
else:
# execute these statements
- Và vòng lặp while cũng tương tự như thế:
while condition:
# execute these statements
else:
# execute these statements
# -----------------------------------------------------------
#Cafedev.vn - Kênh thông tin IT hàng đầu Việt Nam
#@author cafedevn
#Contact: cafedevn@gmail.com
#Fanpage: https://www.facebook.com/cafedevn
#Group: https://www.facebook.com/groups/cafedev.vn/
#Instagram: https://instagram.com/cafedevn
#Twitter: https://twitter.com/CafedeVn
#Linkedin: https://www.linkedin.com/in/cafe-dev-407054199/
#Pinterest: https://www.pinterest.com/cafedevvn/
#YouTube: https://www.youtube.com/channel/UCE7zpY_SlHGEgo67pHxqIoA/
# -----------------------------------------------------------
#Python program to illustrate
# combining else with while
count = 0
while (count < 3):
count = count + 1
print("Hello Cafedev")
else:
print("In Else Block")
Kết quả:
Hello Cafedev
Hello Cafedev
Hello Cafedev
In Else Block
Khối lệnh while đơn: Cũng giống như khối if, nếu khối while bao gồm một câu lệnh đơn, chúng ta có thể khai báo toàn bộ vòng lặp trong một dòng như dưới đây:
# Python program to illustrate
# Single statement while block
count = 0
while (count == 0): print("Hello Cafedev")
Lưu ý: Không nên sử dụng loại vòng lặp này vì đây là một vòng lặp vô hạn không bao giờ kết thúc trong đó điều kiện luôn luôn đúng, do đó bạn phải buộc dừng trình biên dịch để kết thúc vòng lặp.
Xem bài này để biết ví dụ trong đó vòng lặp while được sử dụng cho các iterators. Như đã đề cập trong bài viết, không nên sử dụng vòng lặp while cho các iterator trong python.
2. For in Loop:
For loop được sử dụng để truyền tuần tự. Ví dụ: truyền list hoặc string hoặc array, v.v. Trong Python, không có for loop kiểu C, nghĩa là, for (i = 0; i <n; i ++). Có một vòng lặp “for in|” tương tự như đối vòng “for each” trong các ngôn ngữ khác. Hãy cùng tìm hiểu làm thế nào để sử dụng trong vòng lặp cho việc truyền tuần tự.
Cú pháp:
for iterator_var in sequence:
statements(s)
Nó có thể được sử dụng để lặp lại trên một phạm vi và nhiều trình lặp.
# Python program to illustrate
# Iterating over range 0 to n-1
n = 4
for i in range(0, n):
print(i)
Kết quả:
0
1
2
3
# -----------------------------------------------------------
#Cafedev.vn - Kênh thông tin IT hàng đầu Việt Nam
#@author cafedevn
#Contact: cafedevn@gmail.com
#Fanpage: https://www.facebook.com/cafedevn
#Group: https://www.facebook.com/groups/cafedev.vn/
#Instagram: https://instagram.com/cafedevn
#Twitter: https://twitter.com/CafedeVn
#Linkedin: https://www.linkedin.com/in/cafe-dev-407054199/
#Pinterest: https://www.pinterest.com/cafedevvn/
#YouTube: https://www.youtube.com/channel/UCE7zpY_SlHGEgo67pHxqIoA/
# -----------------------------------------------------------
# Python program to illustrate
# Iterating over a list
print("List Iteration")
l = ["cafedev", "vs", "cafedev"]
for i in l:
print(i)
# Iterating over a tuple (immutable)
print("\nTuple Iteration")
t = ("cafedev", "vs", "cafedev")
for i in t:
print(i)
# Iterating over a String
print("\nString Iteration")
s = "cafedev"
for i in s :
print(i)
# Iterating over dictionary
print("\nDictionary Iteration")
d = dict()
d['xyz'] = 123
d['abc'] = 345
for i in d :
print("%s %d" %(i, d[i]))
Kết quả:
List Iteration
cafedev
vs
cafedev
Tuple Iteration
cafedev
vs
cafedev
String Iteration
c
a
f
d
e
v
Dictionary Iteration
xyz 123
abc 345
3. Lặp lại theo chỉ mục của các chuỗi:
Chúng ta cũng có thể sử dụng chỉ mục của các yếu tố trong chuỗi để lặp. Ý tưởng chính là trước tiên tính toán độ dài của list và lặp lại theo chuỗi trong phạm vi của độ dài này.
Xem ví dụ dưới đây:
# -----------------------------------------------------------
#Cafedev.vn - Kênh thông tin IT hàng đầu Việt Nam
#@author cafedevn
#Contact: cafedevn@gmail.com
#Fanpage: https://www.facebook.com/cafedevn
#Group: https://www.facebook.com/groups/cafedev.vn/
#Instagram: https://instagram.com/cafedevn
#Twitter: https://twitter.com/CafedeVn
#Linkedin: https://www.linkedin.com/in/cafe-dev-407054199/
#Pinterest: https://www.pinterest.com/cafedevvn/
#YouTube: https://www.youtube.com/channel/UCE7zpY_SlHGEgo67pHxqIoA/
# -----------------------------------------------------------
# Python program to illustrate
# Iterating by index
list = ["cafedev", ".", "vn"]
for index in range(len(list)):
print list[index]
Kết quả:
cafedev
.
vn
4. Sử dụng câu lệnh else với vòng lặp for:
Chúng ta cũng có thể kết hợp câu lệnh khác với vòng lặp for loop như vòng lặp while loop. Nhưng vì không có điều kiện trong vòng lặp for dựa trên đó việc thực thi nào sẽ được kết thúc nên khối else sẽ được thực thi ngay sau khi khối for dừng chạy.
Ví dụ dưới đây sẽ giải thích điều này:
# Python program to illustrate
# combining else with for
list = ["cafedev.vn", "vs", "cafedev.vn"]
for index in range(len(list)):
print list[index]
else:
print "Inside Else Block"
Kết quả:
cafedev.vn
for
cafedev.vn
Inside Else Block
Chúng ta có thể sử dụng vòng lặp for in loop cho các trình vòng lặp do người dùng định nghĩa. Xem bài này để tìm hiểu thêm.
5. Vòng lặp lồng nhau:
Ngôn ngữ lập trình Python cho phép ta sử dụng một vòng lặp bên trong một vòng lặp khác. Phần sau đây sẽ cho chúng ta thấy một vài ví dụ để minh họa khái niệm này.
Cú pháp:
for iterator_var in sequence:
for iterator_var in sequence:
statements(s)
statements(s)
Cú pháp cho câu lệnh loop 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 ý 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. 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.
# Python program to illustrate
# nested for loops in Python
from __future__ import print_function
for i in range(1, 5):
for j in range(i):
print(i, end=' ')
print()
Kết quả:
1
2 2
3 3 3
4 4 4 4
6. 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 thực thi từ chuỗi thông thường của nó. Khi thực thi để lại một 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: Nó trả về đầu vòng lặp.
# Prints all letters except 'e' and 'f'
for letter in 'cafedevandcafedev':
if letter == 'e' or letter == 'f':
continue
print 'Current Letter :', letter
var = 10
Kết quả:
Current Letter : c
Current Letter : a
Current Letter : d
Current Letter : v
Current Letter : a
Current Letter : n
Current Letter : d
Current Letter : c
Current Letter : a
Current Letter : d
Current Letter : v
- Câu lệnh Break: Nó thoát trình điều khiển ra khỏi vòng lặp
# -----------------------------------------------------------
#Cafedev.vn - Kênh thông tin IT hàng đầu Việt Nam
#@author cafedevn
#Contact: cafedevn@gmail.com
#Fanpage: https://www.facebook.com/cafedevn
#Group: https://www.facebook.com/groups/cafedev.vn/
#Instagram: https://instagram.com/cafedevn
#Twitter: https://twitter.com/CafedeVn
#Linkedin: https://www.linkedin.com/in/cafe-dev-407054199/
#Pinterest: https://www.pinterest.com/cafedevvn/
#YouTube: https://www.youtube.com/channel/UCE7zpY_SlHGEgo67pHxqIoA/
# -----------------------------------------------------------
for letter in 'cafedev.vn':
# break the loop as soon it sees 'e'
# or 's'
if letter == 'e' or letter == 's':
break
print 'Current Letter :', letter
Kết quả:
Current Letter : e
- Câu lệnh Pass: Chúng ta sử dụng câu lệnh pass để viết các vòng lặp trống. Pass cũng được sử dụng cho câu lệnh, hàm và các class điều khiển trống.
# -----------------------------------------------------------
#Cafedev.vn - Kênh thông tin IT hàng đầu Việt Nam
#@author cafedevn
#Contact: cafedevn@gmail.com
#Fanpage: https://www.facebook.com/cafedevn
#Group: https://www.facebook.com/groups/cafedev.vn/
#Instagram: https://instagram.com/cafedevn
#Twitter: https://twitter.com/CafedeVn
#Linkedin: https://www.linkedin.com/in/cafe-dev-407054199/
#Pinterest: https://www.pinterest.com/cafedevvn/
#YouTube: https://www.youtube.com/channel/UCE7zpY_SlHGEgo67pHxqIoA/
# -----------------------------------------------------------
# An empty loop
for letter in 'cafedev.vn':
pass
print 'Last Letter :', letter
Kết quả:
Last Letter : n
Nguồn và Tài liệu tiếng anh tham khảo:
Tài liệu từ cafedev:
- Full series tự học Python từ cơ bản tới nâng cao tại đây nha.
- Ebook về python tại đây.
- Các series tự học lập trình khác
Nếu bạn thấy hay và hữu ích, bạn có thể tham gia các kênh sau của cafedev để nhận được nhiều hơn nữa:
Chào thân ái và quyết thắng!