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ô hạ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ướiwhile :
>>> a = ['foo', 'bar', 'baz']
>>> while a:
.. print[a.pop[-1]]
...
baz
bar
foo
0 đạ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 >>> a = ['foo', 'bar', 'baz']
>>> while a:
.. print[a.pop[-1]]
...
baz
bar
foo
1Nhớ lại. 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 trong hướng dẫn trước để xem lại
Biểu thức điều khiển,
>>> a = ['foo', 'bar', 'baz']
>>> while a:
.. print[a.pop[-1]]
...
baz
bar
foo
2, 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ặpKhi gặp phải vòng lặp
>>> n = 0
>>> while n > 0:
.. n -= 1
.. print[n]
...
6, >>> a = ['foo', 'bar', 'baz']
>>> while a:
.. print[a.pop[-1]]
...
baz
bar
foo
2 được đánh giá đầu tiên trong. Nếu đúng, thân vòng lặp được thực thi. Sau đó, >>> a = ['foo', 'bar', 'baz']
>>> while a:
.. print[a.pop[-1]]
...
baz
bar
foo
2 đượ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 >>> a = ['foo', 'bar', 'baz']
>>> while a:
.. print[a.pop[-1]]
...
baz
bar
foo
2 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ặpHãy xem xét vòng lặp này
>>>
>>> n = 0
>>> while n > 0:
.. n -= 1
.. print[n]
...
2Đây là những gì đang xảy ra trong ví dụ này
7 ban đầu là>>> a = ['foo', 'bar', 'baz'] >>> while a: .. print[a.pop[-1]] ... baz bar foo
8. Biểu thức trong tiêu đề câu lệnh>>> a = ['foo', 'bar', 'baz'] >>> while a: .. print[a.pop[-1]] ... baz bar foo
6 ở dòng 2 là>>> n = 0 >>> while n > 0: .. n -= 1 .. print[n] ...
60, điều 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,>>> n = 0 >>> while n > 0: .. n -= 1 .. print[n] ...
7 được giảm từ>>> a = ['foo', 'bar', 'baz'] >>> while a: .. print[a.pop[-1]] ... baz bar foo
62 xuống>>> n = 0 >>> while n > 0: .. n -= 1 .. print[n] ...
63, sau đó được in>>> n = 0 >>> while n > 0: .. n -= 1 .. print[n] ...
Khi 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à
64 được in>>> n = 0 >>> while n > 0: .. n -= 1 .. print[n] ...
Điều này tiếp tục cho đến khi
7 trở thành>>> a = ['foo', 'bar', 'baz'] >>> while a: .. print[a.pop[-1]] ... baz bar foo
66. 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>>> n = 0 >>> while n > 0: .. n -= 1 .. print[n] ...
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,
>>> a = ['foo', 'bar', 'baz']
>>> while a:
.. print[a.pop[-1]]
...
baz
bar
foo
7 là >>> n = 0
>>> while n > 0:
.. n -= 1
.. print[n]
...
66. Biểu thức điều khiển >>> n = 0
>>> while n > 0:
.. n -= 1
.. print[n]
...
60 đã 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ố>>>
>>> a = ['foo', 'bar', 'baz']
>>> while a:
.. print[a.pop[-1]]
...
baz
bar
foo
Khi a , nó là thật nếu nó có các phần tử trong đó và sai nếu nó trống. Trong ví dụ này,
>>> n = 0
>>> while n > 0:
.. n -= 1
.. print[n]
...
02 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 >>> n = 0
>>> while n > 0:
.. n -= 1
.. print[n]
...
03 và danh sách trống, >>> n = 0
>>> while n > 0:
.. n -= 1
.. print[n]
...
02 là sai và vòng lặp kết thúcLoại bỏ các quảng cáoCâu lệnh >>> n = 0
>>> while n > 0:
.. n -= 1
.. print[n]
...
05 và >>> n = 0
>>> while n > 0:
.. n -= 1
.. print[n]
...
06 của Python
>>> n = 0
>>> while n > 0:
.. n -= 1
.. print[n]
...
>>> n = 0
>>> while n > 0:
.. n -= 1
.. print[n]
...
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
05 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ặp>>> n = 0 >>> while n > 0: .. n -= 1 .. print[n] ...
Câu lệnh
06 của Python 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>>> n = 0 >>> while n > 0: .. n -= 1 .. print[n] ...
Sự khác biệt giữa
>>> n = 0
>>> while n > 0:
.. n -= 1
.. print[n]
...
05 và >>> n = 0
>>> while n > 0:
.. n -= 1
.. print[n]
...
06 được thể hiện trong sơ đồ sauĐây là một tệp kịch bản có tên là
while :
02 thể hiện câu lệnh >>> n = 0
>>> while n > 0:
.. n -= 1
.. print[n]
...
05>>> n = 0
>>> while n > 0:
.. n -= 1
.. print[n]
...
6Chạy
while :
02 từ trình thông dịch dòng lệnh sẽ tạo ra kết quả sau>>> n = 0
>>> while n > 0:
.. n -= 1
.. print[n]
...
0Khi
>>> a = ['foo', 'bar', 'baz']
>>> while a:
.. print[a.pop[-1]]
...
baz
bar
foo
7 trở thành while :
06, câu lệnh >>> n = 0
>>> while n > 0:
.. n -= 1
.. print[n]
...
05 đượ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 while :
08 trên dòng 7Ghi 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 >>> n = 0
>>> while n > 0:
.. n -= 1
.. print[n]
...
05 để mô phỏng nóKịch bản tiếp theo,
>>> a = ['foo', 'bar', 'baz']
>>> while a:
.. print[a.pop[-1]]
...
baz
bar
foo
11, giống hệt ngoại trừ câu lệnh >>> n = 0
>>> while n > 0:
.. n -= 1
.. print[n]
...
06 thay cho >>> n = 0
>>> while n > 0:
.. n -= 1
.. print[n]
...
05while :
0Đầu ra của
>>> a = ['foo', 'bar', 'baz']
>>> while a:
.. print[a.pop[-1]]
...
baz
bar
foo
11 trông như thế này>>> a = ['foo', 'bar', 'baz']
>>> while a:
.. print[a.pop[-1]]
...
baz
bar
foo
1Lần này, khi
>>> a = ['foo', 'bar', 'baz']
>>> while a:
.. print[a.pop[-1]]
...
baz
bar
foo
7 là while :
06, câu lệnh >>> n = 0
>>> while n > 0:
.. n -= 1
.. print[n]
...
06 sẽ chấm dứt lần lặp đó. Do đó, while :
06 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 >>> a = ['foo', 'bar', 'baz']
>>> while a:
.. print[a.pop[-1]]
...
baz
bar
foo
7 trở thành >>> n = 0
>>> while n > 0:
.. n -= 1
.. print[n]
...
66, như trước đâyĐiều khoản >>> a = ['foo', 'bar', 'baz']
>>> while a:
.. print[a.pop[-1]]
...
baz
bar
foo
31
>>> a = ['foo', 'bar', 'baz']
>>> while a:
.. print[a.pop[-1]]
...
baz
bar
foo
Python cho phép một mệnh đề
>>> a = ['foo', 'bar', 'baz']
>>> while a:
.. print[a.pop[-1]]
...
baz
bar
foo
31 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>>> a = ['foo', 'bar', 'baz']
>>> while a:
.. print[a.pop[-1]]
...
baz
bar
foo
3>>> a = ['foo', 'bar', 'baz']
>>> while a:
.. print[a.pop[-1]]
...
baz
bar
foo
34 được chỉ định trong mệnh đề >>> a = ['foo', 'bar', 'baz']
>>> while a:
.. print[a.pop[-1]]
...
baz
bar
foo
31 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?”
>>> a = ['foo', 'bar', 'baz']
>>> while a:
.. print[a.pop[-1]]
...
baz
bar
foo
2Có gì khác biệt?
Trong trường hợp sau, nếu không có mệnh đề
>>> a = ['foo', 'bar', 'baz']
>>> while a:
.. print[a.pop[-1]]
...
baz
bar
foo
31, thì >>> a = ['foo', 'bar', 'baz']
>>> while a:
.. print[a.pop[-1]]
...
baz
bar
foo
34 sẽ được thực thi 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
>>> a = ['foo', 'bar', 'baz']
>>> while a:
.. print[a.pop[-1]]
...
baz
bar
foo
34 được đặt trong mệnh đề >>> a = ['foo', 'bar', 'baz']
>>> while a:
.. print[a.pop[-1]]
...
baz
bar
foo
31, chúng sẽ chỉ được thực thi nếu vòng lặp kết thúc “do hết”—tức 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 >>> n = 0
>>> while n > 0:
.. n -= 1
.. print[n]
...
05, thì mệnh đề >>> a = ['foo', 'bar', 'baz']
>>> while a:
.. print[a.pop[-1]]
...
baz
bar
foo
31 sẽ không được thực thiXem xét ví dụ sau
>>>
>>> n = 0
>>> while n > 0:
.. n -= 1
.. print[n]
...
20Trong trường hợp này, vòng lặp lặp lại cho đến khi hết điều kiện.
>>> a = ['foo', 'bar', 'baz']
>>> while a:
.. print[a.pop[-1]]
...
baz
bar
foo
7 trở thành >>> n = 0
>>> while n > 0:
.. n -= 1
.. print[n]
...
66, vì vậy >>> n = 0
>>> while n > 0:
.. n -= 1
.. print[n]
...
60 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 đề >>> a = ['foo', 'bar', 'baz']
>>> while a:
.. print[a.pop[-1]]
...
baz
bar
foo
31 đã được thực thi. Bây giờ hãy quan sát sự khác biệt ở đây>>>
>>> n = 0
>>> while n > 0:
.. n -= 1
.. print[n]
...
21Vòng lặp này kết thúc sớm với
>>> n = 0
>>> while n > 0:
.. n -= 1
.. print[n]
...
05, vì vậy mệnh đề >>> a = ['foo', 'bar', 'baz']
>>> while a:
.. print[a.pop[-1]]
...
baz
bar
foo
31 không được thực thiCó vẻ như ý nghĩa của từ
>>> a = ['foo', 'bar', 'baz']
>>> while a:
.. print[a.pop[-1]]
...
baz
bar
foo
31 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 >>> a = ['foo', 'bar', 'baz']
>>> while a:
.. print[a.pop[-1]]
...
baz
bar
foo
1. 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 đề >>> a = ['foo', 'bar', 'baz']
>>> while a:
.. print[a.pop[-1]]
...
baz
bar
foo
31 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 [
207] như một câu lệnh>>> n = 0 >>> while n > 0: .. n -= 1 .. print[n] ...
1 [>>> a = ['foo', 'bar', 'baz'] >>> while a: .. print[a.pop[-1]] ... baz bar foo
209] được thực hiện lặp đi lặp lại, với mệnh đề>>> n = 0 >>> while n > 0: .. n -= 1 .. print[n] ...
31 cuối cùng được thực hiện khi điều kiện trở thành sai>>> a = ['foo', 'bar', 'baz'] >>> while a: .. print[a.pop[-1]] ... baz bar foo
Hãy nghĩ về
31 như thể nó là>>> a = ['foo', 'bar', 'baz'] >>> while a: .. print[a.pop[-1]] ... baz bar foo
212, trong đó khối tiếp theo sẽ được thực thi nếu không có>>> n = 0 >>> while n > 0: .. n -= 1 .. print[n] ...
05>>> n = 0 >>> while n > 0: .. n -= 1 .. print[n] ...
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 đề
>>> a = ['foo', 'bar', 'baz']
>>> while a:
.. print[a.pop[-1]]
...
baz
bar
foo
31 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 >>> n = 0
>>> while n > 0:
.. n -= 1
.. print[n]
...
05 để thoát khỏi vòng lặp nếu mục được tìm thấy và mệnh đề >>> a = ['foo', 'bar', 'baz']
>>> while a:
.. print[a.pop[-1]]
...
baz
bar
foo
31 có thể chứa mã được thực thi nếu mục không được tìm thấy>>>
>>> n = 0
>>> while n > 0:
.. n -= 1
.. print[n]
...
22Ghi 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ử
>>> n = 0
>>> while n > 0:
.. n -= 1
.. print[n]
...
219>>>
>>> n = 0
>>> while n > 0:
.. n -= 1
.. print[n]
...
23Phương pháp
>>> n = 0
>>> while n > 0:
.. n -= 1
.. print[n]
...
220 cũng sẽ hoạt động. Phương pháp này đưa ra một ngoại lệ >>> n = 0
>>> while n > 0:
.. n -= 1
.. print[n]
...
221 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 >>> n = 0
>>> while n > 0:
.. n -= 1
.. print[n]
...
222 để xử lý một ngoại lệ. Một ví dụ được đưa ra dưới đây>>>
>>> n = 0
>>> while n > 0:
.. n -= 1
.. print[n]
...
24Bạ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 đề
>>> a = ['foo', 'bar', 'baz']
>>> while a:
.. print[a.pop[-1]]
...
baz
bar
foo
31 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
>>>
>>> n = 0
>>> while n > 0:
.. n -= 1
.. print[n]
...
25Mã 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
>>> n = 0
>>> while n > 0:
.. n -= 1
.. print[n]
...
226 đã 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,
>>> n = 0
>>> while n > 0:
.. n -= 1
.. print[n]
...
227 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 đó, >>> n = 0
>>> while n > 0:
.. n -= 1
.. print[n]
...
228 bắt đầu một vòng lặp vô hạn về mặt lý thuyết sẽ chạy mãi mãiCó 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
>>> n = 0
>>> while n > 0:
.. n -= 1
.. print[n]
...
05. 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 ghi nhận 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
>>> n = 0
>>> while n > 0:
.. n -= 1
.. print[n]
...
03 cho đến khi nó trống>>>
>>> n = 0
>>> while n > 0:
.. n -= 1
.. print[n]
...
26Khi
>>> n = 0
>>> while n > 0:
.. n -= 1
.. print[n]
...
02 trở nên rỗng, >>> n = 0
>>> while n > 0:
.. n -= 1
.. print[n]
...
232 trở thành true, và câu lệnh >>> n = 0
>>> while n > 0:
.. n -= 1
.. print[n]
...
05 thoát khỏi vòng lặpBạn cũng có thể chỉ định nhiều câu lệnh
>>> n = 0
>>> while n > 0:
.. n -= 1
.. print[n]
...
05 trong một vòng lặp>>> n = 0
>>> while n > 0:
.. n -= 1
.. print[n]
...
27Trong 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
>>> n = 0
>>> while n > 0:
.. n -= 1
.. print[n]
...
05 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ặpVò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
>>> a = ['foo', 'bar', 'baz']
>>> while a:
.. print[a.pop[-1]]
...
baz
bar
foo
1/>>> n = 0
>>> while n > 0:
.. n -= 1
.. print[n]
...
238/>>> a = ['foo', 'bar', 'baz']
>>> while a:
.. print[a.pop[-1]]
...
baz
bar
foo
31 có thể được lồng vào nhau>>> n = 0
>>> while n > 0:
.. n -= 1
.. print[n]
...
28Tươ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>>>
>>> n = 0
>>> while n > 0:
.. n -= 1
.. print[n]
...
29Câu lệnh
>>> n = 0
>>> while n > 0:
.. n -= 1
.. print[n]
...
05 hoặc >>> n = 0
>>> while n > 0:
.. n -= 1
.. print[n]
...
06 đượ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 >>> a = ['foo', 'bar', 'baz']
>>> while a:
.. print[a.pop[-1]]
...
baz
bar
foo
1/>>> n = 0
>>> while n > 0:
.. n -= 1
.. print[n]
...
238/>>> a = ['foo', 'bar', 'baz']
>>> while a:
.. print[a.pop[-1]]
...
baz
bar
foo
31 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 >>> a = ['foo', 'bar', 'baz']
>>> while a:
.. print[a.pop[-1]]
...
baz
bar
foo
1” 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 một dòng >>> n = 0
>>> while n > 0:
.. n -= 1
.. print[n]
...
6
>>> n = 0
>>> while n > 0:
.. n -= 1
.. print[n]
...
Như với câu lệnh
>>> a = ['foo', 'bar', 'baz']
>>> while a:
.. print[a.pop[-1]]
...
baz
bar
foo
1, 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 [>>> n = 0
>>> while n > 0:
.. n -= 1
.. print[n]
...
254]>>>
>>> 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 >>> a = ['foo', 'bar', 'baz']
>>> while a:
.. print[a.pop[-1]]
...
baz
bar
foo
1 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 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
Sự 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
05 và>>> n = 0 >>> while n > 0: .. n -= 1 .. print[n] ...
06>>> n = 0 >>> while n > 0: .. n -= 1 .. print[n] ...
- Sử dụng mệnh đề
31 với vòng lặp>>> a = ['foo', 'bar', 'baz'] >>> while a: .. print[a.pop[-1]] ... baz bar foo
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
>>> n = 0
>>> while n > 0:
.. n -= 1
.. print[n]
...
263—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 "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 Pythonista 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. 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