Sau đây là mã chính xác để in đếm ngược từ 10 đến 0, nhưng nó bị lẫn lộn. Kéo các khối từ bên trái và đặt chúng theo đúng thứ tự bên phải. Đừng quên thụt lề các khối trong phần thân của vòng lặp. Chỉ cần kéo khối sang bên phải để thụt lề. Nhấp vào nút Check Me để kiểm tra giải pháp của bạn
Câu lệnh vòng lặp while trong ngôn ngữ lập trình Python lặp đi lặp lại việc thực thi câu lệnh đích miễn là một điều kiện nhất định là đúng
cú pháp
Cú pháp của vòng lặp while trong ngôn ngữ lập trình Python là -
while expression: statement[s]
Ở đây, [các] câu lệnh có thể là một câu lệnh đơn lẻ hoặc một khối các câu lệnh. Điều kiện có thể là bất kỳ biểu thức nào và true là bất kỳ giá trị khác 0 nào. Vòng lặp lặp khi điều kiện đúng
Khi điều kiện trở thành sai, điều khiển chương trình chuyển đến dòng ngay sau vòng lặp
Trong Python, tất cả các câu lệnh được thụt vào bởi cùng một số khoảng trắng ký tự sau cấu trúc lập trình được coi là một phần của một khối mã. Python sử dụng thụt đầu dòng làm phương pháp nhóm các câu lệnh
sơ đồ dòng chảy
Ở đây, điểm mấu chốt của vòng lặp while là vòng lặp có thể không bao giờ chạy. Khi điều kiện được kiểm tra và kết quả là sai, thân vòng lặp sẽ bị bỏ qua và câu lệnh đầu tiên sau vòng lặp while sẽ được thực thi
Ví dụ
Bản trình diễn trực tiếp#!/usr/bin/python count = 0 while [count < 9]: print 'The count is:', count count = count + 1 print "Good bye!"
Khi đoạn mã trên được thực thi, nó tạo ra kết quả sau -
The count is: 0 The count is: 1 The count is: 2 The count is: 3 The count is: 4 The count is: 5 The count is: 6 The count is: 7 The count is: 8 Good bye!
Khối ở đây, bao gồm các câu lệnh in và tăng, được thực hiện lặp đi lặp lại cho đến khi số đếm không nhỏ hơn 9. Với mỗi lần lặp lại, giá trị hiện tại của số lượng chỉ mục được hiển thị và sau đó tăng thêm 1
Vòng lặp vô hạn
Một vòng lặp trở thành vòng lặp vô hạn nếu một điều kiện không bao giờ trở thành FALSE. Bạn phải thận trọng khi sử dụng vòng lặp while vì có khả năng điều kiện này không bao giờ chuyển thành giá trị FALSE. Điều này dẫn đến một vòng lặp không bao giờ kết thúc. Một vòng lặp như vậy được gọi là một vòng lặp vô hạn
Một vòng lặp vô hạn có thể hữu ích trong lập trình máy khách/máy chủ nơi máy chủ cần chạy liên tục để các chương trình máy khách có thể giao tiếp với nó khi cần thiết
#!/usr/bin/python var = 1 while var == 1 : # This constructs an infinite loop num = raw_input["Enter a number :"] print "You entered: ", num print "Good bye!"
Khi đoạn mã trên được thực thi, nó tạo ra kết quả sau -
Enter a number :20 You entered: 20 Enter a number :29 You entered: 29 Enter a number :3 You entered: 3 Enter a number between :Traceback [most recent call last]: File "test.py", line 5, in num = raw_input["Enter a number :"] KeyboardInterrupt
Ví dụ trên diễn ra trong một vòng lặp vô hạn và bạn cần sử dụng CTRL+C để thoát khỏi chương trình
Sử dụng Tuyên bố khác với Vòng lặp While
Python hỗ trợ để có một câu lệnh khác được liên kết với một câu lệnh vòng lặp
Nếu câu lệnh khác được sử dụng với vòng lặp while, câu lệnh khác được thực thi khi điều kiện trở thành sai
Ví dụ sau minh họa sự kết hợp của câu lệnh other với câu lệnh while in ra một số miễn là nó nhỏ hơn 5, nếu không thì câu lệnh khác sẽ được thực thi
Bản trình diễn trực tiếp#!/usr/bin/python count = 0 while count < 5: print count, " is less than 5" count = count + 1 else: print count, " is not less than 5"
Khi đoạn mã trên được thực thi, nó tạo ra kết quả sau -
0 is less than 5 1 is less than 5 2 is less than 5 3 is less than 5 4 is less than 5 5 is not less than 5
Suite Độc Lập
Tương tự như cú pháp câu lệnh if, nếu mệnh đề while của bạn chỉ bao gồm một câu lệnh duy nhất, thì nó có thể được đặt trên cùng một dòng với tiêu đề while
Đây là cú pháp và ví dụ về mệnh đề while một dòng -
#!/usr/bin/python flag = 1 while [flag]: print 'Given flag is really true!' print "Good bye!"
Tốt hơn là không thử ví dụ trên vì nó đi vào vòng lặp vô hạn và bạn cần nhấn tổ hợp phím CTRL+C để thoát
Lặp đi lặp lại có nghĩa là thực thi lặp đi lặp lại cùng một khối mã, có khả năng là nhiều lần. Cấu trúc lập trình thực hiện phép lặp được gọi là vòng lặp
Trong lập trình, có hai loại lặp, không xác định và xác định
Với phép lặp vô thời hạn, số lần vòng lặp được thực thi không được chỉ định rõ ràng trước. Thay vào đó, khối được chỉ định được thực thi lặp đi lặp lại miễn là một số điều kiện được đáp ứng
Với phép lặp xác định, số lần khối được chỉ định sẽ được thực thi được chỉ định rõ ràng tại thời điểm vòng lặp bắt đầu
Trong hướng dẫn này, bạn sẽ
- Tìm hiểu về vòng lặp
6, cấu trúc điều khiển Python được sử dụng cho phép lặp vô thời hạn>>> n = 0 >>> while n > 0: .. n -= 1 .. print[n] ...
- Xem cách thoát ra khỏi vòng lặp hoặc vòng lặp sớm
- Khám phá vòng lặp vô tận
Khi hoàn thành, bạn nên nắm rõ cách sử dụng phép lặp vô thời hạn trong Python
Tiền thưởng miễn phí. Nhấp vào đây để nhận Bảng cheat Python miễn phí của chúng tôi, trang này cho bạn biết kiến thức cơ bản về Python 3, như làm việc với các kiểu dữ liệu, từ điển, danh sách và hàm Python
Lấy bài kiểm tra. Kiểm tra kiến thức của bạn với bài kiểm tra tương tác “Vòng lặp "trong khi" của Python". Sau khi hoàn thành, bạn sẽ nhận được điểm số để có thể theo dõi quá trình học tập của mình theo thời gian
Lấy bài kiểm tra "
Vòng lặp >>> n = 0
>>> while n > 0:
.. n -= 1
.. print[n]
...
6
>>> n = 0
>>> while n > 0:
.. n -= 1
.. print[n]
...
Hãy xem cách câu lệnh
>>> n = 0
>>> while n > 0:
.. n -= 1
.. print[n]
...
6 của Python được sử dụng để xây dựng các vòng lặp. Chúng tôi sẽ bắt đầu đơn giản và tô điểm khi chúng tôi điĐịnh dạng của vòng lặp
>>> n = 0
>>> while n > 0:
.. n -= 1
.. print[n]
...
6 thô sơ được hiển thị bên dưới#!/usr/bin/python count = 0 while [count < 9]: print 'The count is:', count count = count + 1 print "Good bye!"2
#!/usr/bin/python count = 0 while [count < 9]: print 'The count is:', count count = count + 1 print "Good bye!"30 đại diện cho khối được thực thi lặp đi lặp lại, thường được gọi là phần thân của vòng lặp. Điều này được biểu thị bằng thụt đầu dòng, giống như trong câu lệnh
#!/usr/bin/python count = 0 while [count < 9]: print 'The count is:', count count = count + 1 print "Good bye!"31
Nhớ. Tất cả các cấu trúc điều khiển trong Python đều sử dụng thụt đầu dòng để xác định các khối. Xem phần thảo luận về câu lệnh nhóm trong hướng dẫn trước để xem lại
Biểu thức điều khiển,
#!/usr/bin/python count = 0 while [count < 9]: print 'The count is:', count count = count + 1 print "Good bye!"32, thường bao gồm một hoặc nhiều biến được khởi tạo trước khi bắt đầu vòng lặp và sau đó được sửa đổi ở đâu đó trong thân vòng lặp
Khi gặp vòng lặp
>>> n = 0
>>> while n > 0:
.. n -= 1
.. print[n]
...
6, đầu tiên, #!/usr/bin/python count = 0 while [count < 9]: print 'The count is:', count count = count + 1 print "Good bye!"32 được đánh giá trong ngữ cảnh Boolean. Nếu đúng, thân vòng lặp được thực thi. Sau đó,
#!/usr/bin/python count = 0 while [count < 9]: print 'The count is:', count count = count + 1 print "Good bye!"32 được kiểm tra lại và nếu vẫn đúng, phần thân được thực thi lại. Điều này tiếp tục cho đến khi
#!/usr/bin/python count = 0 while [count < 9]: print 'The count is:', count count = count + 1 print "Good bye!"32 trở thành sai, tại thời điểm đó, việc thực thi chương trình sẽ chuyển sang câu lệnh đầu tiên bên ngoài thân vòng lặp
Hãy xem xét vòng lặp này
>>>
The count is: 0 The count is: 1 The count is: 2 The count is: 3 The count is: 4 The count is: 5 The count is: 6 The count is: 7 The count is: 8 Good bye!0
Đây là những gì đang xảy ra trong ví dụ này
#!/usr/bin/python count = 0 while [count < 9]: print 'The count is:', count count = count + 1 print "Good bye!"
37 ban đầu là#!/usr/bin/python count = 0 while [count < 9]: print 'The count is:', count count = count + 1 print "Good bye!"
38. Biểu thức trong tiêu đề câu lệnh
6 ở dòng 2 là>>> n = 0 >>> while n > 0: .. n -= 1 .. print[n] ...
The count is: 0 The count is: 1 The count is: 2 The count is: 3 The count is: 4 The count is: 5 The count is: 6 The count is: 7 The count is: 8 Good bye!
40, giá trị này đúng, vì vậy phần thân vòng lặp sẽ thực thi. Bên trong phần thân vòng lặp ở dòng 3,#!/usr/bin/python count = 0 while [count < 9]: print 'The count is:', count count = count + 1 print "Good bye!"
37 được giảm từThe count is: 0 The count is: 1 The count is: 2 The count is: 3 The count is: 4 The count is: 5 The count is: 6 The count is: 7 The count is: 8 Good bye!
42 xuốngThe count is: 0 The count is: 1 The count is: 2 The count is: 3 The count is: 4 The count is: 5 The count is: 6 The count is: 7 The count is: 8 Good bye!
43, sau đó được inKhi phần thân của vòng lặp kết thúc, việc thực thi chương trình quay trở lại đầu vòng lặp ở dòng 2 và biểu thức được đánh giá lại. Nó vẫn đúng, vì vậy phần thân thực thi lại và
The count is: 0 The count is: 1 The count is: 2 The count is: 3 The count is: 4 The count is: 5 The count is: 6 The count is: 7 The count is: 8 Good bye!
44 được inĐiều này tiếp tục cho đến khi
#!/usr/bin/python count = 0 while [count < 9]: print 'The count is:', count count = count + 1 print "Good bye!"
37 trở thànhThe count is: 0 The count is: 1 The count is: 2 The count is: 3 The count is: 4 The count is: 5 The count is: 6 The count is: 7 The count is: 8 Good bye!
46. Tại thời điểm đó, khi biểu thức được kiểm tra, nó sai và vòng lặp kết thúc. Quá trình thực thi sẽ tiếp tục ở câu lệnh đầu tiên sau thân vòng lặp, nhưng không có câu lệnh nào trong trường hợp này
Lưu ý rằng biểu thức điều khiển của vòng lặp
>>> n = 0
>>> while n > 0:
.. n -= 1
.. print[n]
...
6 được kiểm tra trước, trước khi bất kỳ điều gì khác xảy ra. Nếu bắt đầu là false, thân vòng lặp sẽ không bao giờ được thực thi>>>
>>> n = 0
>>> while n > 0:
.. n -= 1
.. print[n]
...
Trong ví dụ trên, khi gặp vòng lặp,
#!/usr/bin/python count = 0 while [count < 9]: print 'The count is:', count count = count + 1 print "Good bye!"37 là
The count is: 0 The count is: 1 The count is: 2 The count is: 3 The count is: 4 The count is: 5 The count is: 6 The count is: 7 The count is: 8 Good bye!46. Biểu thức điều khiển
The count is: 0 The count is: 1 The count is: 2 The count is: 3 The count is: 4 The count is: 5 The count is: 6 The count is: 7 The count is: 8 Good bye!40 đã là false nên thân vòng lặp không bao giờ thực thi
Đây là một vòng lặp
>>> n = 0
>>> while n > 0:
.. n -= 1
.. print[n]
...
6 khác liên quan đến một danh sách, thay vì so sánh số>>>
#!/usr/bin/python count = 0 while [count < 9]: print 'The count is:', count count = count + 1 print "Good bye!"3
Khi một danh sách được đánh giá trong ngữ cảnh Boolean, nó là đúng nếu nó có các phần tử trong đó và sai nếu nó trống. Trong ví dụ này,
#!/usr/bin/python var = 1 while var == 1 : # This constructs an infinite loop num = raw_input["Enter a number :"] print "You entered: ", num print "Good bye!"82 là đúng miễn là nó có các phần tử trong đó. Sau khi tất cả các mục đã bị xóa bằng phương pháp
#!/usr/bin/python var = 1 while var == 1 : # This constructs an infinite loop num = raw_input["Enter a number :"] print "You entered: ", num print "Good bye!"83 và danh sách trống,
#!/usr/bin/python var = 1 while var == 1 : # This constructs an infinite loop num = raw_input["Enter a number :"] print "You entered: ", num print "Good bye!"82 là sai và vòng lặp kết thúcLoại bỏ các quảng cáo
Câu lệnh #!/usr/bin/python
var = 1
while var == 1 : # This constructs an infinite loop
num = raw_input["Enter a number :"]
print "You entered: ", num
print "Good bye!"
85 và #!/usr/bin/python
var = 1
while var == 1 : # This constructs an infinite loop
num = raw_input["Enter a number :"]
print "You entered: ", num
print "Good bye!"
86 của Python
Trong mỗi ví dụ bạn đã thấy cho đến nay, toàn bộ phần thân của vòng lặp
>>> n = 0
>>> while n > 0:
.. n -= 1
.. print[n]
...
6 được thực thi trên mỗi lần lặp. Python cung cấp hai từ khóa kết thúc sớm vòng lặpCâu lệnh Python
#!/usr/bin/python var = 1 while var == 1 : # This constructs an infinite loop num = raw_input["Enter a number :"] print "You entered: ", num print "Good bye!"
85 ngay lập tức chấm dứt hoàn toàn một vòng lặp. Việc thực thi chương trình tiếp tục với câu lệnh đầu tiên sau thân vòng lặpCâu lệnh Python
#!/usr/bin/python var = 1 while var == 1 : # This constructs an infinite loop num = raw_input["Enter a number :"] print "You entered: ", num print "Good bye!"
86 ngay lập tức chấm dứt vòng lặp hiện tại. Việc thực thi nhảy lên đầu vòng lặp và biểu thức điều khiển được đánh giá lại để xác định liệu vòng lặp sẽ thực hiện lại hay chấm dứt
Sự khác biệt giữa
#!/usr/bin/python var = 1 while var == 1 : # This constructs an infinite loop num = raw_input["Enter a number :"] print "You entered: ", num print "Good bye!"85 và
#!/usr/bin/python var = 1 while var == 1 : # This constructs an infinite loop num = raw_input["Enter a number :"] print "You entered: ", num print "Good bye!"86 được thể hiện trong sơ đồ sau
Đây là một tệp kịch bản có tên là
Enter a number :20 You entered: 20 Enter a number :29 You entered: 29 Enter a number :3 You entered: 3 Enter a number between :Traceback [most recent call last]: File "test.py", line 5, in num = raw_input["Enter a number :"] KeyboardInterrupt82 thể hiện câu lệnh
#!/usr/bin/python var = 1 while var == 1 : # This constructs an infinite loop num = raw_input["Enter a number :"] print "You entered: ", num print "Good bye!"85
The count is: 0 The count is: 1 The count is: 2 The count is: 3 The count is: 4 The count is: 5 The count is: 6 The count is: 7 The count is: 8 Good bye!4
Chạy
Enter a number :20 You entered: 20 Enter a number :29 You entered: 29 Enter a number :3 You entered: 3 Enter a number between :Traceback [most recent call last]: File "test.py", line 5, in num = raw_input["Enter a number :"] KeyboardInterrupt82 từ trình thông dịch dòng lệnh sẽ tạo ra kết quả sau
#!/usr/bin/python var = 1 while var == 1 : # This constructs an infinite loop num = raw_input["Enter a number :"] print "You entered: ", num print "Good bye!"8
Khi
#!/usr/bin/python count = 0 while [count < 9]: print 'The count is:', count count = count + 1 print "Good bye!"37 trở thành
Enter a number :20 You entered: 20 Enter a number :29 You entered: 29 Enter a number :3 You entered: 3 Enter a number between :Traceback [most recent call last]: File "test.py", line 5, in num = raw_input["Enter a number :"] KeyboardInterrupt86, câu lệnh
#!/usr/bin/python var = 1 while var == 1 : # This constructs an infinite loop num = raw_input["Enter a number :"] print "You entered: ", num print "Good bye!"85 được thực thi. Vòng lặp kết thúc hoàn toàn và quá trình thực thi chương trình chuyển sang câu lệnh
Enter a number :20 You entered: 20 Enter a number :29 You entered: 29 Enter a number :3 You entered: 3 Enter a number between :Traceback [most recent call last]: File "test.py", line 5, in num = raw_input["Enter a number :"] KeyboardInterrupt88 trên dòng 7
Ghi chú. Nếu nền tảng lập trình của bạn là C, C++, Java hoặc JavaScript, thì bạn có thể tự hỏi vòng lặp do-while của Python ở đâu. Chà, tin xấu là Python không có cấu trúc do-while. Nhưng tin tốt là bạn có thể sử dụng vòng lặp
>>> n = 0
>>> while n > 0:
.. n -= 1
.. print[n]
...
6 với câu lệnh #!/usr/bin/python var = 1 while var == 1 : # This constructs an infinite loop num = raw_input["Enter a number :"] print "You entered: ", num print "Good bye!"85 để mô phỏng nó
Kịch bản tiếp theo,
#!/usr/bin/python count = 0 while count < 5: print count, " is less than 5" count = count + 1 else: print count, " is not less than 5"91, giống hệt ngoại trừ câu lệnh
#!/usr/bin/python var = 1 while var == 1 : # This constructs an infinite loop num = raw_input["Enter a number :"] print "You entered: ", num print "Good bye!"86 thay cho
#!/usr/bin/python var = 1 while var == 1 : # This constructs an infinite loop num = raw_input["Enter a number :"] print "You entered: ", num print "Good bye!"85
Enter a number :20 You entered: 20 Enter a number :29 You entered: 29 Enter a number :3 You entered: 3 Enter a number between :Traceback [most recent call last]: File "test.py", line 5, in num = raw_input["Enter a number :"] KeyboardInterrupt8
Đầu ra của
#!/usr/bin/python count = 0 while count < 5: print count, " is less than 5" count = count + 1 else: print count, " is not less than 5"91 trông như thế này
#!/usr/bin/python count = 0 while count < 5: print count, " is less than 5" count = count + 1 else: print count, " is not less than 5"9
Lần này, khi
#!/usr/bin/python count = 0 while [count < 9]: print 'The count is:', count count = count + 1 print "Good bye!"37 là
Enter a number :20 You entered: 20 Enter a number :29 You entered: 29 Enter a number :3 You entered: 3 Enter a number between :Traceback [most recent call last]: File "test.py", line 5, in num = raw_input["Enter a number :"] KeyboardInterrupt86, câu lệnh
#!/usr/bin/python var = 1 while var == 1 : # This constructs an infinite loop num = raw_input["Enter a number :"] print "You entered: ", num print "Good bye!"86 sẽ chấm dứt lần lặp đó. Do đó,
Enter a number :20 You entered: 20 Enter a number :29 You entered: 29 Enter a number :3 You entered: 3 Enter a number between :Traceback [most recent call last]: File "test.py", line 5, in num = raw_input["Enter a number :"] KeyboardInterrupt86 không được in. Thực thi trở lại đầu vòng lặp, điều kiện được đánh giá lại và nó vẫn đúng. Vòng lặp tiếp tục, kết thúc khi
#!/usr/bin/python count = 0 while [count < 9]: print 'The count is:', count count = count + 1 print "Good bye!"37 trở thành
The count is: 0 The count is: 1 The count is: 2 The count is: 3 The count is: 4 The count is: 5 The count is: 6 The count is: 7 The count is: 8 Good bye!46, như trước đây
Điều khoản #!/usr/bin/python
flag = 1
while [flag]: print 'Given flag is really true!'
print "Good bye!"
11
Python cho phép một mệnh đề
#!/usr/bin/python flag = 1 while [flag]: print 'Given flag is really true!' print "Good bye!"11 tùy chọn ở cuối vòng lặp
>>> n = 0
>>> while n > 0:
.. n -= 1
.. print[n]
...
6. Đây là một tính năng độc đáo của Python, không có trong hầu hết các ngôn ngữ lập trình khác. Cú pháp được hiển thị bên dưới#!/usr/bin/python flag = 1 while [flag]: print 'Given flag is really true!' print "Good bye!"1
#!/usr/bin/python flag = 1 while [flag]: print 'Given flag is really true!' print "Good bye!"14 được chỉ định trong mệnh đề
#!/usr/bin/python flag = 1 while [flag]: print 'Given flag is really true!' print "Good bye!"11 sẽ được thực thi khi vòng lặp
>>> n = 0
>>> while n > 0:
.. n -= 1
.. print[n]
...
6 kết thúcHiện tại, bạn có thể đang nghĩ, “Điều đó hữu ích như thế nào?”
>>> n = 0
>>> while n > 0:
.. n -= 1
.. print[n]
...
0Có gì khác biệt?
Trong trường hợp sau, nếu không có mệnh đề
#!/usr/bin/python flag = 1 while [flag]: print 'Given flag is really true!' print "Good bye!"11, thì
#!/usr/bin/python flag = 1 while [flag]: print 'Given flag is really true!' print "Good bye!"14 sẽ được thực hiện sau khi vòng lặp
>>> n = 0
>>> while n > 0:
.. n -= 1
.. print[n]
...
6 kết thúc, bất kể điều gì xảy raKhi
#!/usr/bin/python flag = 1 while [flag]: print 'Given flag is really true!' print "Good bye!"14 được đặt trong mệnh đề
#!/usr/bin/python flag = 1 while [flag]: print 'Given flag is really true!' print "Good bye!"11, chúng sẽ chỉ được thực thi nếu vòng lặp kết thúc “do hết”—nghĩa là, nếu vòng lặp lặp lại cho đến khi điều kiện kiểm soát trở thành sai. Nếu vòng lặp bị thoát bởi câu lệnh
#!/usr/bin/python var = 1 while var == 1 : # This constructs an infinite loop num = raw_input["Enter a number :"] print "You entered: ", num print "Good bye!"85, thì mệnh đề
#!/usr/bin/python flag = 1 while [flag]: print 'Given flag is really true!' print "Good bye!"11 sẽ không được thực thi
Xem xét ví dụ sau
>>>
The count is: 0 The count is: 1 The count is: 2 The count is: 3 The count is: 4 The count is: 5 The count is: 6 The count is: 7 The count is: 8 Good bye!00
Trong trường hợp này, vòng lặp lặp lại cho đến khi hết điều kiện.
#!/usr/bin/python count = 0 while [count < 9]: print 'The count is:', count count = count + 1 print "Good bye!"37 trở thành
The count is: 0 The count is: 1 The count is: 2 The count is: 3 The count is: 4 The count is: 5 The count is: 6 The count is: 7 The count is: 8 Good bye!46, vì vậy
The count is: 0 The count is: 1 The count is: 2 The count is: 3 The count is: 4 The count is: 5 The count is: 6 The count is: 7 The count is: 8 Good bye!40 trở thành sai. Bởi vì vòng lặp đã sống hết cuộc đời tự nhiên của nó, nên có thể nói, mệnh đề
#!/usr/bin/python flag = 1 while [flag]: print 'Given flag is really true!' print "Good bye!"11 đã được thực thi. Bây giờ hãy quan sát sự khác biệt ở đây
>>>
The count is: 0 The count is: 1 The count is: 2 The count is: 3 The count is: 4 The count is: 5 The count is: 6 The count is: 7 The count is: 8 Good bye!01
Vòng lặp này kết thúc sớm với
#!/usr/bin/python var = 1 while var == 1 : # This constructs an infinite loop num = raw_input["Enter a number :"] print "You entered: ", num print "Good bye!"85, vì vậy mệnh đề
#!/usr/bin/python flag = 1 while [flag]: print 'Given flag is really true!' print "Good bye!"11 không được thực thi
Có vẻ như ý nghĩa của từ
#!/usr/bin/python flag = 1 while [flag]: print 'Given flag is really true!' print "Good bye!"11 không hoàn toàn phù hợp với vòng lặp
>>> n = 0
>>> while n > 0:
.. n -= 1
.. print[n]
...
6 cũng như với câu lệnh #!/usr/bin/python count = 0 while [count < 9]: print 'The count is:', count count = count + 1 print "Good bye!"31. Guido van Rossum, người tạo ra Python, đã thực sự nói rằng, nếu anh ấy phải làm lại từ đầu, anh ấy sẽ bỏ mệnh đề
#!/usr/bin/python flag = 1 while [flag]: print 'Given flag is really true!' print "Good bye!"11 của vòng lặp
>>> n = 0
>>> while n > 0:
.. n -= 1
.. print[n]
...
6 ra khỏi ngôn ngữMột trong những cách giải thích sau đây có thể giúp làm cho nó trực quan hơn
Hãy nghĩ về tiêu đề của vòng lặp [
The count is: 0 The count is: 1 The count is: 2 The count is: 3 The count is: 4 The count is: 5 The count is: 6 The count is: 7 The count is: 8 Good bye!
007] như một câu lệnh#!/usr/bin/python count = 0 while [count < 9]: print 'The count is:', count count = count + 1 print "Good bye!"
31 [The count is: 0 The count is: 1 The count is: 2 The count is: 3 The count is: 4 The count is: 5 The count is: 6 The count is: 7 The count is: 8 Good bye!
009] được thực hiện lặp đi lặp lại, với mệnh đề#!/usr/bin/python flag = 1 while [flag]: print 'Given flag is really true!' print "Good bye!"
11 cuối cùng được thực hiện khi điều kiện trở thành saiHãy nghĩ về
#!/usr/bin/python flag = 1 while [flag]: print 'Given flag is really true!' print "Good bye!"
11 như thể nó làThe count is: 0 The count is: 1 The count is: 2 The count is: 3 The count is: 4 The count is: 5 The count is: 6 The count is: 7 The count is: 8 Good bye!
012, trong đó khối tiếp theo sẽ được thực thi nếu không có#!/usr/bin/python var = 1 while var == 1 : # This constructs an infinite loop num = raw_input["Enter a number :"] print "You entered: ", num print "Good bye!"
85
Nếu bạn không thấy một trong những cách giải thích này hữu ích, thì vui lòng bỏ qua chúng
Khi nào mệnh đề
#!/usr/bin/python flag = 1 while [flag]: print 'Given flag is really true!' print "Good bye!"11 trên vòng lặp
>>> n = 0
>>> while n > 0:
.. n -= 1
.. print[n]
...
6 có thể hữu ích? . Bạn có thể sử dụng #!/usr/bin/python var = 1 while var == 1 : # This constructs an infinite loop num = raw_input["Enter a number :"] print "You entered: ", num print "Good bye!"85 để thoát khỏi vòng lặp nếu mục được tìm thấy và mệnh đề
#!/usr/bin/python flag = 1 while [flag]: print 'Given flag is really true!' print "Good bye!"11 có thể chứa mã được thực thi nếu mục không được tìm thấy
>>>
The count is: 0 The count is: 1 The count is: 2 The count is: 3 The count is: 4 The count is: 5 The count is: 6 The count is: 7 The count is: 8 Good bye!02
Ghi chú. Mã được hiển thị ở trên rất hữu ích để minh họa khái niệm này, nhưng thực tế bạn sẽ rất khó tìm kiếm danh sách theo cách đó
Trước hết, danh sách thường được xử lý với phép lặp xác định, không phải vòng lặp
>>> n = 0
>>> while n > 0:
.. n -= 1
.. print[n]
...
6. Phép lặp xác định được trình bày trong hướng dẫn tiếp theo của loạt bài nàyThứ hai, Python cung cấp các cách tích hợp để tìm kiếm một mục trong danh sách. Bạn có thể sử dụng toán tử
The count is: 0 The count is: 1 The count is: 2 The count is: 3 The count is: 4 The count is: 5 The count is: 6 The count is: 7 The count is: 8 Good bye!019
>>>
The count is: 0 The count is: 1 The count is: 2 The count is: 3 The count is: 4 The count is: 5 The count is: 6 The count is: 7 The count is: 8 Good bye!03
Phương pháp
The count is: 0 The count is: 1 The count is: 2 The count is: 3 The count is: 4 The count is: 5 The count is: 6 The count is: 7 The count is: 8 Good bye!020 cũng sẽ hoạt động. Phương pháp này đưa ra một ngoại lệ
The count is: 0 The count is: 1 The count is: 2 The count is: 3 The count is: 4 The count is: 5 The count is: 6 The count is: 7 The count is: 8 Good bye!021 nếu mục không được tìm thấy trong danh sách, vì vậy bạn cần hiểu cách xử lý ngoại lệ để sử dụng nó. Trong Python, bạn sử dụng câu lệnh
The count is: 0 The count is: 1 The count is: 2 The count is: 3 The count is: 4 The count is: 5 The count is: 6 The count is: 7 The count is: 8 Good bye!022 để xử lý một ngoại lệ. Một ví dụ được đưa ra dưới đây
>>>
The count is: 0 The count is: 1 The count is: 2 The count is: 3 The count is: 4 The count is: 5 The count is: 6 The count is: 7 The count is: 8 Good bye!04
Bạn sẽ tìm hiểu về xử lý ngoại lệ ở phần sau của loạt bài này
Mệnh đề
#!/usr/bin/python flag = 1 while [flag]: print 'Given flag is really true!' print "Good bye!"11 với vòng lặp
>>> n = 0
>>> while n > 0:
.. n -= 1
.. print[n]
...
6 hơi lạ, không thường thấy. Nhưng đừng né tránh nó nếu bạn tìm thấy một tình huống mà bạn cảm thấy nó mang lại sự rõ ràng cho mã của bạnLoại bỏ các quảng cáoVòng lặp vô hạn
Giả sử bạn viết một vòng lặp
>>> n = 0
>>> while n > 0:
.. n -= 1
.. print[n]
...
6 về mặt lý thuyết sẽ không bao giờ kết thúc. Nghe có vẻ kỳ lạ, phải không?Hãy xem xét ví dụ này
>>>
The count is: 0 The count is: 1 The count is: 2 The count is: 3 The count is: 4 The count is: 5 The count is: 6 The count is: 7 The count is: 8 Good bye!05
Mã này đã bị kết thúc bởi Ctrl + C , . Nếu không, nó sẽ tiếp tục vô tận. Nhiều dòng đầu ra
The count is: 0 The count is: 1 The count is: 2 The count is: 3 The count is: 4 The count is: 5 The count is: 6 The count is: 7 The count is: 8 Good bye!026 đã bị xóa và thay thế bằng dấu chấm lửng dọc trong đầu ra được hiển thị.
Rõ ràng,
The count is: 0 The count is: 1 The count is: 2 The count is: 3 The count is: 4 The count is: 5 The count is: 6 The count is: 7 The count is: 8 Good bye!027 sẽ không bao giờ sai, nếu không tất cả chúng ta đang gặp rắc rối lớn. Do đó,
The count is: 0 The count is: 1 The count is: 2 The count is: 3 The count is: 4 The count is: 5 The count is: 6 The count is: 7 The count is: 8 Good bye!028 bắt đầu một vòng lặp vô hạn về mặt lý thuyết sẽ chạy mãi mãi
Có thể đó không phải là điều bạn muốn làm, nhưng mô hình này thực sự khá phổ biến. Ví dụ: bạn có thể viết mã cho một dịch vụ khởi động và chạy mãi mãi chấp nhận các yêu cầu dịch vụ. “Mãi mãi” trong ngữ cảnh này có nghĩa là cho đến khi bạn tắt nó hoặc cho đến khi vũ trụ chết vì nhiệt, tùy theo điều kiện nào đến trước
Thông thường hơn, hãy nhớ rằng các vòng lặp có thể được tách ra bằng câu lệnh
#!/usr/bin/python var = 1 while var == 1 : # This constructs an infinite loop num = raw_input["Enter a number :"] print "You entered: ", num print "Good bye!"85. Việc kết thúc một vòng lặp có thể đơn giản hơn dựa trên các điều kiện được nhận biết trong thân vòng lặp, thay vì dựa trên một điều kiện được đánh giá ở trên cùng
Đây là một biến thể khác của vòng lặp được hiển thị ở trên, loại bỏ liên tiếp các mục khỏi danh sách bằng cách sử dụng
#!/usr/bin/python var = 1 while var == 1 : # This constructs an infinite loop num = raw_input["Enter a number :"] print "You entered: ", num print "Good bye!"83 cho đến khi nó trống
>>>
The count is: 0 The count is: 1 The count is: 2 The count is: 3 The count is: 4 The count is: 5 The count is: 6 The count is: 7 The count is: 8 Good bye!06
Khi
#!/usr/bin/python var = 1 while var == 1 : # This constructs an infinite loop num = raw_input["Enter a number :"] print "You entered: ", num print "Good bye!"82 trở thành trống,
The count is: 0 The count is: 1 The count is: 2 The count is: 3 The count is: 4 The count is: 5 The count is: 6 The count is: 7 The count is: 8 Good bye!032 trở thành true và câu lệnh
#!/usr/bin/python var = 1 while var == 1 : # This constructs an infinite loop num = raw_input["Enter a number :"] print "You entered: ", num print "Good bye!"85 thoát khỏi vòng lặp
Bạn cũng có thể chỉ định nhiều câu lệnh
#!/usr/bin/python var = 1 while var == 1 : # This constructs an infinite loop num = raw_input["Enter a number :"] print "You entered: ", num print "Good bye!"85 trong một vòng lặp
The count is: 0 The count is: 1 The count is: 2 The count is: 3 The count is: 4 The count is: 5 The count is: 6 The count is: 7 The count is: 8 Good bye!07
Trong những trường hợp như thế này, khi có nhiều lý do để kết thúc vòng lặp, thì việc
#!/usr/bin/python var = 1 while var == 1 : # This constructs an infinite loop num = raw_input["Enter a number :"] print "You entered: ", num print "Good bye!"85 ra khỏi một số vị trí khác nhau thường dễ dàng hơn thay vì cố gắng chỉ định tất cả các điều kiện kết thúc trong tiêu đề vòng lặp
Vòng lặp vô hạn có thể rất hữu ích. Chỉ cần nhớ rằng bạn phải đảm bảo rằng vòng lặp sẽ bị phá vỡ vào một thời điểm nào đó, để nó không thực sự trở thành vô hạn
Vòng lặp >>> n = 0
>>> while n > 0:
.. n -= 1
.. print[n]
...
6 lồng nhau
>>> n = 0
>>> while n > 0:
.. n -= 1
.. print[n]
...
Nói chung, các cấu trúc điều khiển Python có thể được lồng vào nhau. Ví dụ, câu lệnh điều kiện
#!/usr/bin/python count = 0 while [count < 9]: print 'The count is:', count count = count + 1 print "Good bye!"31/
The count is: 0 The count is: 1 The count is: 2 The count is: 3 The count is: 4 The count is: 5 The count is: 6 The count is: 7 The count is: 8 Good bye!038/_______711 có thể được lồng vào nhau
The count is: 0 The count is: 1 The count is: 2 The count is: 3 The count is: 4 The count is: 5 The count is: 6 The count is: 7 The count is: 8 Good bye!08
Tương tự, một vòng lặp
>>> n = 0
>>> while n > 0:
.. n -= 1
.. print[n]
...
6 có thể được chứa trong một vòng lặp >>> n = 0
>>> while n > 0:
.. n -= 1
.. print[n]
...
6 khác, như được hiển thị ở đây>>>
The count is: 0 The count is: 1 The count is: 2 The count is: 3 The count is: 4 The count is: 5 The count is: 6 The count is: 7 The count is: 8 Good bye!09
Câu lệnh
#!/usr/bin/python var = 1 while var == 1 : # This constructs an infinite loop num = raw_input["Enter a number :"] print "You entered: ", num print "Good bye!"85 hoặc
#!/usr/bin/python var = 1 while var == 1 : # This constructs an infinite loop num = raw_input["Enter a number :"] print "You entered: ", num print "Good bye!"86 được tìm thấy trong các vòng lặp lồng nhau áp dụng cho vòng lặp kèm theo gần nhất
>>> n = 0
>>> while n > 0:
.. n -= 1
.. print[n]
...
0Ngoài ra, các vòng lặp
>>> n = 0
>>> while n > 0:
.. n -= 1
.. print[n]
...
6 có thể được lồng bên trong các câu lệnh #!/usr/bin/python count = 0 while [count < 9]: print 'The count is:', count count = count + 1 print "Good bye!"31/
The count is: 0 The count is: 1 The count is: 2 The count is: 3 The count is: 4 The count is: 5 The count is: 6 The count is: 7 The count is: 8 Good bye!038/
#!/usr/bin/python flag = 1 while [flag]: print 'Given flag is really true!' print "Good bye!"11 và ngược lại
>>> n = 0
>>> while n > 0:
.. n -= 1
.. print[n]
...
1>>> n = 0
>>> while n > 0:
.. n -= 1
.. print[n]
...
2Trên thực tế, tất cả các cấu trúc điều khiển Python có thể được trộn lẫn với nhau ở bất kỳ mức độ nào bạn cần. Đó là như nó phải được. Hãy tưởng tượng sẽ bực bội như thế nào nếu có những hạn chế không mong muốn như “Không thể chứa vòng lặp
>>> n = 0
>>> while n > 0:
.. n -= 1
.. print[n]
...
6 trong câu lệnh #!/usr/bin/python count = 0 while [count < 9]: print 'The count is:', count count = count + 1 print "Good bye!"31” hoặc “vòng lặp
>>> n = 0
>>> while n > 0:
.. n -= 1
.. print[n]
...
6 chỉ có thể được lồng vào nhau tối đa bốn vòng sâu. ” Bạn sẽ rất khó nhớ hết chúngCác giới hạn logic hoặc số dường như tùy ý được coi là dấu hiệu của thiết kế ngôn ngữ chương trình kém. May mắn thay, bạn sẽ không tìm thấy nhiều trong Python
Loại bỏ các quảng cáoVòng lặp >>> n = 0
>>> while n > 0:
.. n -= 1
.. print[n]
...
6 một dòng
>>> n = 0
>>> while n > 0:
.. n -= 1
.. print[n]
...
Như với câu lệnh
#!/usr/bin/python count = 0 while [count < 9]: print 'The count is:', count count = count + 1 print "Good bye!"31, vòng lặp
>>> n = 0
>>> while n > 0:
.. n -= 1
.. print[n]
...
6 có thể được chỉ định trên một dòng. Nếu có nhiều câu lệnh trong khối tạo nên thân vòng lặp, chúng có thể được phân tách bằng dấu chấm phẩy [The count is: 0 The count is: 1 The count is: 2 The count is: 3 The count is: 4 The count is: 5 The count is: 6 The count is: 7 The count is: 8 Good bye!054]
>>>
>>> n = 0
>>> while n > 0:
.. n -= 1
.. print[n]
...
3Điều này chỉ hoạt động với các câu lệnh đơn giản. Bạn không thể kết hợp hai câu lệnh ghép thành một dòng. Do đó, bạn có thể chỉ định tất cả vòng lặp
>>> n = 0
>>> while n > 0:
.. n -= 1
.. print[n]
...
6 trên một dòng như trên và bạn viết câu lệnh #!/usr/bin/python count = 0 while [count < 9]: print 'The count is:', count count = count + 1 print "Good bye!"31 trên một dòng
>>>
>>> n = 0
>>> while n > 0:
.. n -= 1
.. print[n]
...
4Nhưng bạn không thể làm điều này
>>>
>>> n = 0
>>> while n > 0:
.. n -= 1
.. print[n]
...
5Hãy nhớ rằng PEP 8 không khuyến khích nhiều câu lệnh trên một dòng. Vì vậy, dù sao đi nữa, có lẽ bạn không nên làm bất kỳ điều gì trong số này thường xuyên
Phần kết luận
Trong hướng dẫn này, bạn đã học về phép lặp vô thời hạn bằng cách sử dụng vòng lặp Python
>>> n = 0
>>> while n > 0:
.. n -= 1
.. print[n]
...
6. Bây giờ bạn có thể- Xây dựng các vòng lặp
6 cơ bản và phức tạp>>> n = 0 >>> while n > 0: .. n -= 1 .. print[n] ...
- Thực hiện vòng lặp ngắt với
#!/usr/bin/python var = 1 while var == 1 : # This constructs an infinite loop num = raw_input["Enter a number :"] print "You entered: ", num print "Good bye!"
85 và#!/usr/bin/python var = 1 while var == 1 : # This constructs an infinite loop num = raw_input["Enter a number :"] print "You entered: ", num print "Good bye!"
86 - Sử dụng mệnh đề
#!/usr/bin/python flag = 1 while [flag]: print 'Given flag is really true!' print "Good bye!"
11 với vòng lặp
6>>> n = 0 >>> while n > 0: .. n -= 1 .. print[n] ...
- Xử lý các vòng lặp vô hạn
Bây giờ bạn đã nắm rõ cách thực thi lặp đi lặp lại một đoạn mã
Lấy bài kiểm tra. Kiểm tra kiến thức của bạn với bài kiểm tra tương tác “Vòng lặp "trong khi" của Python". Sau khi hoàn thành, bạn sẽ nhận được điểm số để có thể theo dõi quá trình học tập của mình theo thời gian
Lấy bài kiểm tra "
Hướng dẫn tiếp theo trong loạt bài này đề cập đến phép lặp xác định với vòng lặp
The count is: 0 The count is: 1 The count is: 2 The count is: 3 The count is: 4 The count is: 5 The count is: 6 The count is: 7 The count is: 8 Good bye!063—thực thi lặp lại trong đó số lần lặp lại được chỉ định rõ ràng
« Câu lệnh có điều kiện trong Python
Vòng lặp "trong khi" của Python
Vòng lặp "cho" Python »
Đánh dấu là đã hoàn thành
Xem ngay Hướng dẫn này có một khóa học video liên quan do nhóm Real Python tạo. Xem nó cùng với hướng dẫn bằng văn bản để hiểu sâu hơn. Làm chủ vòng lặp While
🐍 Thủ thuật Python 💌
Nhận một Thủ thuật Python ngắn và hấp dẫn được gửi đến hộp thư đến của bạn vài ngày một lần. Không có thư rác bao giờ. Hủy đăng ký bất cứ lúc nào. Được quản lý bởi nhóm Real Python
Gửi cho tôi thủ thuật Python »
Giới thiệu về John Sturtz
John là một Pythonista cuồng nhiệt và là thành viên của nhóm hướng dẫn Real Python
» Thông tin thêm về JohnMỗi hướng dẫn tại Real Python được tạo bởi một nhóm các nhà phát triển để nó đáp ứng các tiêu chuẩn chất lượng cao của chúng tôi. Các thành viên trong nhóm đã làm việc trong hướng dẫn này là
Aldren
Joanna
Kyle
Bậc thầy Kỹ năng Python trong thế giới thực Với quyền truy cập không giới hạn vào Python thực
Tham gia với chúng tôi và có quyền truy cập vào hàng nghìn hướng dẫn, khóa học video thực hành và cộng đồng các Pythonistas chuyên gia
Nâng cao kỹ năng Python của bạn »
Bậc thầy Kỹ năng Python trong thế giới thực
Với quyền truy cập không giới hạn vào Python thực
Tham gia với chúng tôi và có quyền truy cập vào hàng ngàn hướng dẫn, khóa học video thực hành và cộng đồng Pythonistas chuyên gia
Nâng cao kỹ năng Python của bạn »
Bạn nghĩ sao?
Đánh giá bài viết này
Tweet Chia sẻ Chia sẻ EmailBài học số 1 hoặc điều yêu thích mà bạn đã học được là gì?
Mẹo bình luận. Những nhận xét hữu ích nhất là những nhận xét được viết với mục đích học hỏi hoặc giúp đỡ các sinh viên khác. Nhận các mẹo để đặt câu hỏi hay và nhận câu trả lời cho các câu hỏi phổ biến trong cổng thông tin hỗ trợ của chúng tôi