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

355 BÌNH LUẬN

  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.

    Cheers!

  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!

  18. Spot on with this write-up, I truly suppose this website wants far more consideration. I all most likely be once more to read far more, thanks for that info.

  19. Very nice post. I just stumbled upon your blog and wanted to say that I ave truly enjoyed surfing around your blog posts. In any case I all be subscribing to your feed and I hope you write again soon!

  20. Usually I don at read article on blogs, however I wish to say that this write-up very forced me to take a look at and do so! Your writing style has been surprised me. Thanks, quite nice post.

  21. Wonderful work! This is the type of information that should be shared across the internet. Shame on Google for not positioning this post upper! Come on over and consult with my site. Thanks =)|

  22. This blog is without a doubt awesome and informative. I have picked a lot of handy advices out of this blog. I ad love to come back again soon. Thanks a bunch!

  23. You can certainly see your enthusiasm within the paintings you write. The sector hopes for even more passionate writers like you who are not afraid to say how they believe. Always follow your heart.

  24. Usually I don at read post on blogs, however I wish to say that this write-up very compelled me to check out and do so! Your writing taste has been amazed me. Thank you, quite nice article.

  25. Wow! This can be one particular of the most useful blogs We have ever arrive across on this subject. Basically Fantastic. I am also an expert in this topic so I can understand your hard work.

  26. Una entrevista con el afectado puede revelar factores psicológicos involucrados en el trastorno de la erección. Reconocer que uno padece impotencia sexual es difícil no solo con la pareja, con los amigos o con el médico, también ante si mismo.

  27. You ave made some decent points there. I checked on the web for additional information about the issue and found most individuals will go along with your views on this website.

  28. Thanks for any other great post. Where else could anybody get that kind of info in such an ideal means of writing? I ave a presentation next week, and I am at the look for such info.

  29. Usually I do not read article on blogs, but I wish to say that this write-up very compelled me to try and do so! Your writing style has been surprised me. Thank you, quite nice post.

  30. I truly enjoy looking through on this web site, it has got superb posts. аЂа‹One should die proudly when it is no longer possible to live proudly.аЂа› by Friedrich Wilhelm Nietzsche.

  31. Wow, superb blog layout! How long have you been blogging for? you make blogging look easy. The overall look of your web site is great, as well as the content!

  32. Spot on with this write-up, I seriously feel this web site needs a great deal more attention. I all probably be back again to see more, thanks for the info!

  33. Very nice article and right to the point. I am not sure if this is really the best place to ask but do you guys have any ideea where to employ some professional writers? Thx

  34. It as rather a great along with handy part of details. I will be satisfied that you simply contributed this convenient info about. Remember to keep us informed this way. Appreciate your spreading.

  35. I’а†ve read several good stuff here. Certainly value bookmarking for revisiting. I surprise how so much effort you place to create the sort of great informative website.

  36. This very blog is without a doubt cool and also informative. I have discovered many handy things out of this amazing blog. I ad love to visit it over and over again. Thanks!

  37. Thanks for another magnificent article. Where else could anyone get that kind of info in such an ideal way of writing? I have a presentation next week, and I am on the look for such information.

  38. Wonderful work! That is the type of info that should be shared across the web. Shame on Google for no longer positioning this put up higher! Come on over and seek advice from my website. Thank you =)

  39. What as Happening i am new to this, I stumbled upon this I ave found It positively helpful and it has helped me out loads. I hope to contribute & assist other users like its aided me. Good job.

  40. Your style is so unique in comparison to other folks I have read stuff from. I appreciate you for posting when you ave got the opportunity, Guess I will just book mark this blog.

  41. This is very interesting, You are a very skilled blogger. I have joined your feed and look forward to seeking more of your fantastic post. Also, I have shared your web site in my social networks!

  42. We stumbled over here by a different web page and thought I should check things out. I like what I see so now i am following you. Look forward to going over your web page yet again.

THOÁT KHỎI BÌNH LUẬN

Please enter your comment!
Please enter your name here