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
# 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 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é!


  1. I know this site offers quality based articles or reviews and other material,
    is there any other web site which offers such information in quality?

  2. I was wondering if you ever considered changing the layout of
    your blog? Its very well written; I love what youve got
    to say. But maybe you could a little more in the way
    of content so people could connect with it better.
    Youve got an awful lot of text for only having one or 2 images.
    Maybe you could space it out better?

  3. Have you ever thought about adding a little bit more than just your
    articles? I mean, what you say is fundamental and all. But think
    of if you added some great photos or videos to give your posts more,
    “pop”! Your content is excellent but with pics and videos, this site could definitely be one of the most beneficial in its field.
    Awesome blog!

  4. Hello! I’ve been following your site for a long time now and
    finally got the bravery to go ahead and give you a shout out from Lubbock
    Tx! Just wanted to say keep up the excellent job!

  5. naturally like your web-site however you need to check the spelling on quite a few of your posts.
    A number of them are rife with spelling problems and I find it very bothersome to inform the
    truth nevertheless I’ll definitely come back again.

  6. whoah this blog is excellent i like studying your articles.
    Stay up the good work! You understand, many people are looking around for this info, you could aid them greatly.

  7. Hello there, I found your web site by means of Google whilst looking for a related topic,
    your web site got here up, it seems to be great.
    I’ve bookmarked it in my google bookmarks.
    Hello there, just turned into aware of your weblog via
    Google, and located that it’s really informative.
    I am gonna watch out for brussels. I’ll appreciate if you
    happen to continue this in future. Numerous people will probably be benefited out of your writing.


  8. You really make it seem really easy along with your presentation but
    I find this matter to be really something which I feel I’d never understand.
    It sort of feels too complicated and extremely broad for me.
    I’m having a look ahead for your next post, I’ll attempt
    to get the hold of it!

  9. Wonderful blog! I found it while surfing around on Yahoo News. Do you have any suggestions on how to get listed in Yahoo News? I ave been trying for a while but I never seem to get there! Many thanks

  10. Your typical military officer is a person with extensiveknowledge of history, particularly military history, and who takesoaths and honor seriously.

  11. wonderful issues altogether, you just received a new reader. What could you suggest in regards to your put up that you made some days ago? Any sure?

  12. Wow, awesome weblog format! How lengthy have you ever been running a blog for? you make running a blog glance easy. The full look of your website is excellent, let alone the content material!

  13. Spot on with this write-up, I seriously believe this amazing site needs far more attention. I’ll probably be returning to see more,
    thanks for the information!

  14. This very blog is really awesome and also factual. I have chosen many handy stuff out of this source. I ad love to go back again and again. Thanks!

  15. Spot on with this write-up, I really assume this website wants rather more consideration. IaаАа’б‚Т€ТšаЂаŒаАа’б‚Т€ТžаБТžll probably be once more to read far more, thanks for that info.

  16. If you are free to watch comical videos on the internet then I suggest you to pay a quick visit this web site, it contains actually therefore humorous not only videos but also extra information.

  17. My brother recommended I might like this blog. He was totally right. This post truly made my day. You cann at imagine just how much time I had spent for this info! Thanks!


Please enter your comment!
Please enter your name here