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à:

Nhp mt số: 3
 Gp ba ca 3 là 9
 Nhp mt số: 5
 Gp ba ca 5 là 15
 Nhp mt số: 7
 Gp ba ca 7 là 21
 Nhp mt số: 9
 Gp ba ca 9 là 27
 Nhp mt số: 10
 Gp ba ca 10 là 30
 Nhp mt 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:

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
 # Code by Quantrimang.com
 # 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à:

Tng 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:

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!") 
 # Code by Quantrimang.com 
 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:

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:

Nhn Enter để tung xúc xc
 Bn tung được mt 1
 Bn có mun tung li không?(y/n) y
 Nhn Enter để tung xúc xc
 Bn tung được mt 4
 Bn có mun tung li 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é!