Các kỹ thuật vòng lặp trong Python

Trong bài học Python này, bạn sẽ học cách để kiểm soát việc thực hiện một vòng lặp bằng cách sử dụng các câu lệnh điều khiển vòng lặp như break và continue.

Ngôn ngữ lập trình Python cung cấp 2 loại vòng lặp, vòng lặp for và vòng lặp while. Sử dụng những vòng lặp này cùng với câu lệnh điều khiển vòng lặp như break và continue bạn có thể tạo ra những dạng vòng lặp khác nhau. Chúng ta sẽ đi tìm hiểu về những dạng vòng lặp Python này dưới đây.

Vòng lặp vô hạn trong Python

Có thể tạo vòng lặp vô hạn trong Python bằng cách sử dụng while. Khi điều kiện của vòng lặp while luôn True thì bạn sẽ nhận được một vòng lặp vô hạn.

Để thoát khỏi một vòng lặp vô hạn trong Python bạn sử dụng tổ hợp phím Ctrl + C nhé.

Ví dụ về vòng lặp vô hạn sử dụng while:

Chương trình Python dưới đây yêu cầu người dùng nhập vào một số và in ra số gấp 3 lần của số đó. Vòng lặp là vô hạn vì không có điều kiện dừng nào cả.

while True:
num = int(input("Nhập một số: "))
  print("Gấp ba của",num,"là",3 * num)

Kết quả khi chạy code trên là:

Nhập một số: 3
Gấp ba của 3 là 9
Nhập một số: 5
Gấp ba của 5 là 15
Nhập một số: 7
Gấp ba của 7 là 21
Nhập một số: 9
Gấp ba của 9 là 27
Nhập một số: 10
Gấp ba của 10 là 30
Nhập một số:
Traceback (most recent call last):

Bạn cứ Enter thì sẽ tiếp tục nhập được số mới vào và chương trình sẽ chạy mãi cho đến khi bạn nhấn Ctrl + C.

Vòng lặp Python với điều kiện ở đầu

Đây là dạng lặp thông thường, không có lệnh break xuất hiện. Điều kiện của vòng lặp while sẽ xuất hiện ở đầu và vòng lặp kết thúc khi điều kiện này False.

Sơ đồ vòng lặp Python với điều kiện ở đầu:

Sơ đồ vòng lặp Python với điều kiện ở đầu

Ví dụ về vòng lặp với điều kiện ở đầu: 

#Thử những số khác nhau bằng cách gán số đó cho n 
n = 15

# Dùng lệnh sau nếu muốn người dùng nhập số
#n = int(input("Nhập số n: "))

# Khởi tạo tổng tong và biến đếm i
tong = 0
i = 1

while i <= n:
tong = tong + i
i = i+1 # cập nhật số đếm

# in tổng
print("Tổng các số từ 1 đến ",n, " là", tong)

Chương trình trên lặp lại các số cho đến số n cho trước, tính tổng các số đó và in ra màn hình. Sau khi chạy chương trình ta nhận được kết quả là:

Tổng các số từ 1 đến 15 là 120

Vòng lặp Python với điều kiện ở giữa

Loại vòng lặp này có thể được thực hiện bằng cách sử dụng một vòng lặp vô hạn kết hợp với lệnh break trong khối lệnh của vòng lặp.

Sơ đồ vòng lặp Python với điều kiện ở giữa:

Sơ đồ vòng lặp Python với điều kiện ở giữa

Ví dụ về vòng lặp với điều kiện ở giữa:

# Nhận đầu vào từ người dùng cho đến khi họ nhập một nguyên âm

nguyenAm = "aeiouAEIOU"

# vòng lặp vô hạn
while True:
   m = input("Nhập một nguyên âm: ")
   # Điều kiện ở giữa khối lệnh
   if m in nguyenAm:
       break
   print("Đây không phải là nguyên âm. Hãy thử lại!")

print("Chuẩn rồi, cảm ơn bạn!")

Chương trình trên yêu cầu người dùng nhập vào một nguyên âm, đi kèm với lệnh kiểm tra để buộc người dùng nhập cho đến khi đúng thì thôi. Chừng nào dữ liệu người dùng nhập vào không phải là nguyên âm chừng đó vòng lặp còn tiếp tục.

Sau khi chạy chương trình ta được kết quả như sau:

Kết quả sau khi chạy vòng lặp Python với điều kiện ở giữa

Vòng lặp Python với điều kiện ở cuối 

Loại vòng lặp này đảm bảo rằng khối lệnh được thực thi ít nhất một lần. Nó có thể được thực hiện bằng cách sử dụng một vòng lặp vô hạn cùng với lệnh break ở cuối. Điều này khá giống với vòng lặp do...while trong C.

Sơ đồ vòng lặp Python với điều kiện ở cuối:

Sơ đồ vòng lặp Python với điều kiện ở cuối

Ví dụ về vòng lặp Python với điều kiện ở cuối:

Dưới đây chúng ta sẽ tạo một chương trình tung xúc xắc, đưa ra kết quả ngẫu nhiên cho người dùng bằng cách sử dụng vòng lặp while. Vòng lặp sẽ tiếp tục cho đến khi người dùng chọn dừng lại.

# Tung xúc xắc cho đến khi người dùng chọn thoát
import random while True: input("Nhấn Enter để tung xúc xắc") # nhận số mặt xúc xắc bất kỳ từ 1 đến 6 num = random.randint(1,6) print("Bạn tung được mặt",num) option = input("Bạn có muốn tung lại không?(y/n) ") # điều kiện if option == 'n': break

Khi chạy chương trình trên ta được kết quả sau:

Nhấn Enter để tung xúc xắc
Bạn tung được mặt 1
Bạn có muốn tung lại không?(y/n) y
Nhấn Enter để tung xúc xắc
Bạn tung được mặt 4
Bạn có muốn tung lại không?(y/n) n
>>>

Vậy là bạn đã biết được những kỹ thuật lặp cơ bản trong Python rồi, đừng quên làm bài tập Python để rèn luyện các kỹ thuật lặp của mình nhé. 

Trong bài tới các bạn sẽ biết về các hàm Python, cú pháp cũng như cách thức hoạt động của chúng. Đừng bỏ lỡ nhé!

Bài trước: Lệnh pass trong python