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 Show
Trong lập trình, có hai loại lặp, không xác định và xác định
Trong hướng dẫn này, bạn sẽ
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) ... 6Hãy xem cách câu lệnh 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 6 thô sơ được hiển thị bên dưới
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 1Nhớ. 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, 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 6, đầu tiên 2 được đánh giá trong. Nếu đúng, thân vòng lặp được thực thi. Sau đó, 2 được kiểm tra lại và nếu vẫn đúng, phần thân được thực hiện lại. Điều này tiếp tục cho đến khi 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 >>>
Đây là những gì đang xảy ra trong ví dụ này
Lưu ý rằng biểu thức điều khiển của vòng lặp 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>>>
Trong ví dụ trên, khi gặp vòng lặp, 7 là 6. Biểu thức điều khiển 0 đã 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 6 khác liên quan đến một danh sách, thay vì so sánh số>>>
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, 2 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 3 và danh sách trống, thì ______30_______2 là sai và vòng lặp kết thúcLoại bỏ các quảng cáoCâu lệnh C:\Users\john\Documents>python break.py 4 3 Loop ended. 5 và C:\Users\john\Documents>python break.py 4 3 Loop ended. 6 của PythonTrong mỗi ví dụ mà bạn đã thấy cho đến nay, toàn bộ phần thân của vòng lặp 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ặp
Sự khác biệt giữa 5 và 6 được thể hiện trong sơ đồ sauphá vỡ và tiếp tụcĐây là một tệp kịch bản có tên là 2 thể hiện câu lệnh 5
Chạy 2 từ trình thông dịch dòng lệnh tạo ra kết quả sau
Khi 7 trở thành 6, câu lệnh 5 đượ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 8 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 6 với câu lệnh 5 để mô phỏng nóChữ viết tiếp theo, 1, giống hệt ngoại trừ câu lệnh 6 thay cho câu lệnh 5
Đầu ra của 1 trông như thế này
Lần này, khi 7 là 6, câu lệnh 6 gây ra sự chấm dứt của phép lặp đó. Do đó, 6 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 7 trở thành 6, như trước đâyĐiều khoản while <expr>: <statement(s)> else: <additional_statement(s)> 1Python cho phép một mệnh đề 1 tùy chọn ở cuối vòng lặp 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
4 được chỉ định trong mệnh đề 1 sẽ được thực thi khi vòng lặp 6 kết thúcHiện tại, bạn có thể đang nghĩ, “Điều đó hữu ích như thế nào?”
Có gì khác biệt? Trong trường hợp sau, nếu không có mệnh đề 1, thì 4 sẽ được thực hiện sau khi vòng lặp 6 kết thúc, bất kể điều gì xảy raKhi 4 được đặt trong mệnh đề 1, 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 5, thì mệnh đề 1 sẽ không được thực thiXem xét ví dụ sau >>> 0Trong trường hợp này, vòng lặp lặp lại cho đến khi hết điều kiện. 7 trở thành 6, vì vậy 0 trở thành sai. Bởi vì vòng lặp tồn tại trong cuộc sống tự nhiên của nó, nên có thể nói, mệnh đề 1 đã được thực thi. Bây giờ hãy quan sát sự khác biệt ở đây>>> 1Vòng lặp này kết thúc sớm với 5, vì vậy mệnh đề 1 không được thực thiCó vẻ như ý nghĩa của từ 1 không hoàn toàn phù hợp với vòng lặp 6 cũng như với câu lệnh 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 đề 1 của vòng lặp 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
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 đề 1 trên vòng lặp 6 có thể hữu ích? . Bạn có thể sử dụng 5 để thoát khỏi vòng lặp nếu vật phẩm được tìm thấy và mệnh đề 1 có thể chứa mã có nghĩa là sẽ được thực thi nếu vật phẩm không được tìm thấy>>> 2Ghi 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 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ử 19>>> 3Phương pháp 20 cũng sẽ hoạt động. Phương pháp này đưa ra một ngoại lệ 21 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 22 để xử lý một ngoại lệ. Một ví dụ được đưa ra dưới đây>>> 4Bạ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 đề 1 với vòng lặp 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ạnGiả sử bạn viết một vòng lặp 6 mà theo 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 >>> 5Mã 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 26 đã 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, 27 sẽ không bao giờ sai, nếu không tất cả chúng ta sẽ gặp rắc rối lớn. Do đó, 28 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 5. 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 3 cho đến khi nó trống>>> 6Khi 2 trở thành trống, 32 trở thành true và câu lệnh 5 thoát khỏi vòng lặpBạn cũng có thể chỉ định nhiều câu lệnh 5 trong một vòng lặp 7Trong 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 5 từ một số vị trí khác nhau sẽ 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 nhauNói chung, các cấu trúc điều khiển Python có thể được lồng vào nhau. Ví dụ: 1/ 38/ 1 có thể lồng vào nhau 8Tương tự, một vòng lặp 6 có thể được chứa bên trong một vòng lặp 6 khác, như được hiển thị ở đây>>> 9Một câu lệnh 5 hoặc 6 đượ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 0Ngoài ra, các vòng lặp 6 có thể được lồng bên trong các câu lệnh 1/ 38/ 1 và ngược lại 1 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ế bất ngờ như “Không thể chứa vòng lặp 6 trong câu lệnh 1” hoặc “vòng lặp ______0_______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) ... 6Như với câu lệnh 1, vòng lặp 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 ( 54)>>> 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 6 trên một dòng như trên và bạn viết câu lệnh 1 trên một dòng>>> 4Nhưng bạn không thể làm điều này >>> 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 Phần kết luậnTrong 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 6 của Python. Bây giờ bạn có thể
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 ____12_______63 vòng lặp—thực hiện 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 Pythonistas chuyên gia Nâng cao kỹ năng Python của bạn » Chuyên gia Kỹ năng Python trong thế giới 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 Trả về có thoát ra khỏi vòng lặp Python không?Phương pháp 1. Sử dụng câu lệnh return
. Việc sử dụng câu lệnh return có thể trực tiếp kết thúc hàm, do đó thoát khỏi tất cả các vòng lặp .
Câu lệnh return có phá vỡ vòng lặp không?Câu lệnh này ngắt vòng lặp bên trong (for, repeat hoặc while) chứa nó ; . Sau khi ngắt, chương trình tiếp tục chạy từ điểm ngay sau vòng lặp bị ngắt. Câu lệnh return trả về kết quả không thường xuyên từ một hàm hoặc đơn giản là kết thúc một hàm.
Điều gì phá vỡ vòng lặp for trong Python?'Break' trong Python là câu lệnh điều khiển vòng lặp . Nó được sử dụng để kiểm soát trình tự của vòng lặp. Giả sử bạn muốn kết thúc một vòng lặp và chuyển sang mã tiếp theo sau vòng lặp; . Một tình huống điển hình của việc sử dụng Break trong Python là khi một điều kiện bên ngoài kích hoạt việc kết thúc vòng lặp.
Trả về có phá vỡ một hàm không?Có, trả về dừng thực thi và thoát khỏi chức năng . |