Hướng dẫn how do you end a for loop in python? - làm cách nào để kết thúc vòng lặp for trong python?

Biết cách thoát khỏi một vòng lặp đúng cách là một kỹ năng quan trọng. Đọc tiếp để tìm hiểu các công cụ bạn cần để kiểm soát các vòng lặp của bạn.

Trong bài viết này, chúng tôi sẽ chỉ cho bạn một số cách khác nhau để chấm dứt một vòng lặp trong Python. Điều này có vẻ hơi tầm thường lúc đầu, nhưng có một số khái niệm quan trọng để hiểu về các tuyên bố kiểm soát. Chúng tôi cũng sẽ giới thiệu một số cách ít được biết đến để kết thúc các vòng lặp trong Python để cung cấp cho bạn các công cụ để kiểm soát nhiều hơn về cách các chương trình của bạn được thực thi.

Nếu bạn là người mới bắt đầu với Python, chúng tôi khuyên bạn nên bắt đầu với bài viết này để tìm hiểu một số thuật ngữ chúng tôi sử dụng. Hoặc cảm thấy thoải mái khi kiểm tra khóa học này, điều này là hoàn hảo cho người mới bắt đầu vì nó không có kiến ​​thức trước về lập trình hoặc bất kỳ kinh nghiệm CNTT nào.

Lặp lại với các vòng lặp

Điểm nhập ở đây là sử dụng một vòng lặp để thực hiện lặp lại. Vòng lặp For là một trong những khái niệm cơ bản quan trọng nhất trong Python. Bạn sẽ bắt gặp họ trong nhiều bối cảnh và hiểu cách họ làm việc là bước đầu tiên quan trọng.

Đối với những người mới tham gia Python, bài viết này về các vòng lặp là một nơi tốt để bắt đầu. Về cơ bản, một vòng lặp là một cách để lặp lại một bộ sưu tập dữ liệu. Dữ liệu có thể có số, ví dụ, số điểm nổi hoặc dữ liệu số nguyên hoặc thậm chí là dữ liệu văn bản và có thể được lưu trữ trong các cấu trúc khác nhau bao gồm danh sách, bộ dữ liệu, bộ và từ điển. Để biết thêm tài liệu chuyên sâu về các cấu trúc dữ liệu này, hãy xem khóa học này.

Nó không kết thúc cho đến khi nó kết thúc

Tautology ngôn ngữ này đã là câu thần chú của nhiều kẻ yếu trong một cuộc thi. Đây cũng là điểm dừng đầu tiên trong cuộc thảo luận của chúng tôi về cách kết thúc một vòng lặp trong Python. Chúng ta có thể xác định một vòng lặp để lặp lại với bất kỳ cấu trúc dữ liệu nào được đề cập ở trên. Ngoài ra, chúng ta cũng có thể sử dụng phạm vi tích hợp (), trả về một chuỗi bất biến. Đối với một số bài tập thực tế sử dụng các chức năng tích hợp, hãy xem khóa học này.

range() Chấp nhận 3 đối số số nguyên: Bắt đầu (Tùy chọn, mặc định 0), Dừng (bắt buộc) và Bước (Tùy chọn, mặc định 1). Nó trả về một chuỗi với một số yếu tố được xác định trước.

Chúng ta có thể lặp qua các phần tử theo một chuỗi như sau:

>>> for i in range(-2, 11, 3):
>>>     print(i)
-2
1
4
7
10

Có một vài điều thú vị về ví dụ này. Đầu tiên, các đối số có thể là tiêu cực. Bạn thậm chí có thể chỉ định một bước tiêu cực để đếm ngược. Tự mình thử nó xem. Thứ hai, đạt được giá trị dừng chính xác là không cần thiết. Trong ví dụ trên, chúng tôi tiến hành thông qua chuỗi bắt đầu từ -2, thực hiện các bước 3 và sau đó chúng tôi dừng ở 10. Đây là trước giá trị dừng xác định là 11, nhưng một bước bổ sung 3 đưa chúng tôi vượt quá giá trị dừng. Đây là cách rõ ràng nhất để kết thúc một vòng lặp trong Python-sau một số lần lặp được xác định trước.

Nếu bạn muốn lặp lại một số dữ liệu, có một giải pháp thay thế cho vòng lặp sử dụng các hàm tích hợp iter()next(). Đầu tiên xác định một trình lặp lại từ một ITEBLEBLE, và phần sau trả về phần tử tiếp theo của trình lặp. Vòng lặp, hoặc lần lặp, được hoàn thành khi chúng ta trả về phần tử cuối cùng từ trình lặp. Gọi next() sau đó làm tăng ngoại lệ

>>> for i in range(5):
>>>     if i == 3:
>>>         break
>>>     print(i)
>>> print('Finished')
0
1
2
Finished
1. Bạn chỉ có thể lặp lại một lần với các chức năng này vì ITEBLE không được lưu trữ trong bộ nhớ, nhưng phương pháp này hiệu quả hơn nhiều khi xử lý một lượng lớn dữ liệu. Nếu bạn muốn xem một số ví dụ cụ thể về cách áp dụng hai chức năng này để lặp hiệu quả, hãy xem bài viết này.

Các câu lệnh điều khiển vòng lặp

break

Tuyên bố Break là câu nói đầu tiên trong ba câu lệnh điều khiển vòng lặp trong Python. Nó được sử dụng cùng với các câu lệnh có điều kiện (if-elif-else) để chấm dứt vòng lặp sớm nếu một số điều kiện được đáp ứng. Cụ thể, câu lệnh Break cung cấp một cách để thoát hoàn toàn vòng lặp trước khi lần lặp kết thúc. Ví dụ sau đây cho thấy hành vi này:

>>> for i in range(5):
>>>     if i == 3:
>>>         break
>>>     print(i)
>>> print('Finished')
0
1
2
Finished

Chúng tôi sử dụng range() bằng cách chỉ chỉ định đối số dừng bắt buộc. Trong trường hợp này, các đối số bắt đầu và bước lần lượt lấy các giá trị mặc định của chúng lần lượt là 0 và 1. Chỉ cần lặp qua

>>> for i in range(5):
>>>     if i == 3:
>>>         break
>>>     print(i)
>>> print('Finished')
0
1
2
Finished
3 sẽ in các giá trị 0 - 4. Thay vào đó, chúng tôi kiểm tra xem phần tử có bằng 3 không và nếu vậy, câu lệnh break dừng hoàn toàn vòng lặp. Dòng cuối cùng,
>>> for i in range(5):
>>>     if i == 3:
>>>         break
>>>     print(i)
>>> print('Finished')
0
1
2
Finished
4 nằm ngoài vòng lặp, và do đó vẫn được thực thi sau khi vòng lặp bị hỏng.

tiếp tục

Tương phản điều này với câu lệnh tiếp tục, như được hiển thị dưới đây:

>>> for i in range(5):
>>>     if i==3:
>>>         continue
>>>     print(i)
>>> print('Finished')
0
1
2
4
Finished

Khi điều kiện trong dòng thứ hai đánh giá là TRUE, câu lệnh

>>> for i in range(5):
>>>     if i == 3:
>>>         break
>>>     print(i)
>>> print('Finished')
0
1
2
Finished
5 bỏ qua câu lệnh
>>> for i in range(5):
>>>     if i == 3:
>>>         break
>>>     print(i)
>>> print('Finished')
0
1
2
Finished
6 bên trong vòng lặp. Sau đó, nó tiếp tục vòng lặp ở phần tử tiếp theo. Vòng lặp kết thúc khi đạt đến phần tử cuối cùng. Điều này rất tiện lợi nếu bạn muốn vòng lặp của bạn hoàn thành nhưng muốn bỏ qua chỉ một số yếu tố. Và như đã thấy ở trên, bất kỳ mã bên dưới và bên ngoài vòng lặp vẫn được thực thi.

đi qua

Câu lệnh điều khiển vòng thứ ba là

>>> for i in range(5):
>>>     if i == 3:
>>>         break
>>>     print(i)
>>> print('Finished')
0
1
2
Finished
7. Nói đúng ra, đây không phải là một cách để thoát khỏi một vòng lặp trong Python. Tuy nhiên, điều đáng nói là vì nó xuất hiện thường xuyên trong các bối cảnh tương tự như các câu lệnh kiểm soát khác. Hãy thử ví dụ trên với câu lệnh PASS thay vì
>>> for i in range(5):
>>>     if i == 3:
>>>         break
>>>     print(i)
>>> print('Finished')
0
1
2
Finished
5 và bạn sẽ nhận thấy tất cả các yếu tố được xác định bởi range() được in lên màn hình. Câu lệnh PASS đóng vai trò là người giữ chỗ cho mã bạn có thể muốn thêm sau này vào vị trí của nó.

Tiến hành thoát hiểm khẩn cấp ở Python

Các tính năng chúng ta đã thấy cho đến nay chứng minh cách thoát một vòng lặp trong Python. Nếu bạn muốn thoát hoàn toàn một chương trình trước khi bạn đạt đến kết thúc, mô -đun SYS cung cấp chức năng đó với chức năng

>>> for i in range(5):
>>>     if i==3:
>>>         continue
>>>     print(i)
>>> print('Finished')
0
1
2
4
Finished
0. Gọi chức năng này làm tăng ngoại lệ
>>> for i in range(5):
>>>     if i==3:
>>>         continue
>>>     print(i)
>>> print('Finished')
0
1
2
4
Finished
1 và chấm dứt toàn bộ chương trình.

>>> for i in range(5):
>>>     if i==3:
>>>         continue
>>>     print(i)
>>> print('Finished')
0
1
2
4
Finished
2 chấp nhận một đối số tùy chọn. Nó có thể là một số nguyên hoặc một chuỗi, có thể được sử dụng để in một thông báo lỗi vào màn hình.

Hãy xem một ví dụ:

>>> import sys
>>> for i in range(5):
>>>     if i == 3:
>>>         sys.exit('Error message')
>>>     print(i)
>>> print('Finished')
0
1
2
SystemExit: Error message

Trong bối cảnh này,

>>> for i in range(5):
>>>     if i==3:
>>>         continue
>>>     print(i)
>>> print('Finished')
0
1
2
4
Finished
2 hoạt động tương tự như phá vỡ trong ví dụ trước đó, nhưng cũng làm tăng một ngoại lệ. Kết quả là, câu lệnh in cuối cùng bên ngoài vòng lặp For không được thực thi trong ví dụ này. Toàn bộ chương trình chỉ đơn giản là chấm dứt.

Vòng lặp qua danh sách

Một hoạt động phổ biến để thực hiện trong một vòng lặp là sửa đổi cấu trúc dữ liệu như danh sách. Nếu bạn muốn xóa một phần tử khỏi danh sách trong một vòng lặp, bạn có thể thấy mình tiếp cận với từ khóa DEL, đặc biệt nếu bạn có nền tảng trong các ngôn ngữ lập trình khác như C ++ hoặc Java.

Đây có thể là một công cụ tiện dụng vì nó có thể loại bỏ các yếu tố khỏi các cấu trúc dữ liệu cũng như xóa các biến cục bộ hoặc toàn cầu. Nhưng nó có thể có một chút khó khăn nếu bạn thay đổi một danh sách trong khi lặp lại nó.

Xem xét ví dụ sau, trong đó chúng tôi muốn xóa tất cả các số lẻ khỏi danh sách các số:

>>> numbers = [1, 1, 2, 3, 4, 5, 6]
>>> for i in range(len(numbers)):
...     if numbers[i] % 2 != 0:
...         del numbers[i]

Thực hiện mã này sẽ tạo ra

>>> for i in range(5):
>>>     if i==3:
>>>         continue
>>>     print(i)
>>> print('Finished')
0
1
2
4
Finished
4. Chúng tôi đã xác định vòng lặp của chúng tôi để thực thi cho 7 lần lặp (độ dài của danh sách). Vì chúng tôi đã xác định điều này với range(), nó là bất biến. Trong vòng lặp, chúng tôi bắt đầu loại bỏ các phần tử khỏi danh sách, thay đổi độ dài của nó. Bây giờ nó có ít yếu tố hơn trình tự mà chúng tôi muốn lặp lại. Hơn nữa, nếu bạn dành một chút thời gian để xem xét ví dụ, bạn sẽ thấy 1 thứ hai sẽ không bị xóa vì nó trượt xuống vị trí 0 trong khi vòng lặp đi đến vị trí với INDEX 1.

Để khắc phục tất cả những điều này, chúng ta có thể sử dụng một thủ thuật thông minh để lặp lại các yếu tố theo thứ tự ngược lại, sử dụng chức năng tích hợp

>>> for i in range(5):
>>>     if i==3:
>>>         continue
>>>     print(i)
>>> print('Finished')
0
1
2
4
Finished
6:

>>> numbers = [1, 1, 2, 3, 4, 5, 6]
>>> for i in reversed(range(len(numbers))):
... 	if numbers[i] % 2 != 0:
...     	del numbers[i]

Hàm

>>> for i in range(5):
>>>     if i==3:
>>>         continue
>>>     print(i)
>>> print('Finished')
0
1
2
4
Finished
6 trả về một trình lặp, mà chúng tôi đã đề cập trước đó trong bài viết. Ngoài ra, bạn có thể sử dụng range() để đếm ngược trong quá trình lặp như chúng tôi đã lưu ý trước đó. Các phương pháp này loại bỏ các phần tử từ cuối danh sách, đảm bảo chỉ mục danh sách hiện tại không bao giờ lớn hơn độ dài của danh sách.

Hoặc thậm chí tốt hơn, chúng ta có thể sử dụng phương pháp pythonic nhất, một danh sách hiểu, có thể được thực hiện như sau:

>>> numbers = [1, 1, 2, 3, 4, 5, 6]
>>> numbers = [num for num in numbers if num % 2 == 0]

Đối với những người chưa từng thấy loại ma thuật này trước đây, nó tương đương với việc xác định danh sách, sử dụng vòng lặp, thử nghiệm một điều kiện và nối vào danh sách. Thông thường, điều này sẽ mất 4 dòng. Nhưng với một danh sách hiểu, chúng tôi đạt được điều này chỉ trong một!

Nhận được nhiều vòng lặp kiểm soát và kết thúc bằng Python

Cuộc thảo luận này đã tập trung vào cách thoát một vòng lặp trong Python - cụ thể là cách thoát một vòng lặp cho Python. Chúng tôi muốn khuyến khích bạn thực hiện bước tiếp theo và áp dụng những gì bạn đã học ở đây.

Giống như chúng tôi đã nói trước đây, bắt đầu bằng cách thực hiện các bước nhỏ và thực hiện theo cách của bạn để các ví dụ phức tạp hơn. Cố gắng thử nghiệm các vòng

>>> for i in range(5):
>>>     if i==3:
>>>         continue
>>>     print(i)
>>> print('Finished')
0
1
2
4
Finished
9. Bạn có thể phát hiện ra có một cách cơ bản hơn để thoát vòng lặp
>>> for i in range(5):
>>>     if i==3:
>>>         continue
>>>     print(i)
>>> print('Finished')
0
1
2
4
Finished
9 không áp dụng cho các vòng lặp - khi điều kiện được xác định bởi câu lệnh
>>> for i in range(5):
>>>     if i==3:
>>>         continue
>>>     print(i)
>>> print('Finished')
0
1
2
4
Finished
9 đánh giá là
>>> import sys
>>> for i in range(5):
>>>     if i == 3:
>>>         sys.exit('Error message')
>>>     print(i)
>>> print('Finished')
0
1
2
SystemExit: Error message
2.

Là một phần mở rộng khác, hãy kiểm tra những gì xảy ra khi bạn sử dụng lồng nhau cho các vòng lặp với các câu lệnh điều khiển. Bạn sẽ thấy bạn có thể sửa đổi một vòng lặp, trong khi vòng kia tiếp tục thực hiện bình thường. Với một chút thực hành, bạn sẽ làm chủ việc kiểm soát cách kết thúc một vòng lặp trong Python.

Làm thế nào để bạn kết thúc một vòng lặp?

Câu lệnh Break thoát ra cho hoặc trong khi vòng lặp hoàn toàn.Để bỏ qua phần còn lại của các hướng dẫn trong vòng lặp và bắt đầu lần lặp tiếp theo, hãy sử dụng một câu lệnh tiếp tục.Phá vỡ không được xác định bên ngoài A hoặc trong khi vòng lặp.Để thoát một hàm, sử dụng trả về. exits a for or while loop completely. To skip the rest of the instructions in the loop and begin the next iteration, use a continue statement. break is not defined outside a for or while loop. To exit a function, use return .

Làm thế nào để bạn kết thúc vòng lặp vòng lặp?

Câu lệnh Break chấm dứt việc thực hiện một vòng lặp hoặc trong khi vòng lặp. terminates the execution of a for loop or while loop.