Vòng lặp là gì và khi nào bạn sử dụng chúng?
Các vòng lặp là một cấu trúc thiết yếu trong tất cả các ngôn ngữ lập trình. Trong một cấu trúc vòng lặp, chương trình trước tiên kiểm tra một điều kiện. Nếu điều kiện này là đúng, một số đoạn mã được chạy. Mã này sẽ tiếp tục chạy trừ khi điều kiện trở nên không hợp lệ.
Ví dụ, hãy nhìn vào khối sau của mã giả:
IF stomach_empty eat_food[] ENDIF //check if stomach is empty again. IF stomach_empty eat_food[] ENDIF //check if stomach is still empty, //....
Ở đây, chúng tôi đang kiểm tra xem biến
WHILE stomach_empty //this code will keep on running if stomach_empty is true eat_food[] ENDWHILE9 là
for i in :0. Nếu điều kiện này được đáp ứng, chương trình sẽ thực hiện phương thức
for i in :1. Hơn nữa, lưu ý rằng chúng tôi đang gõ cùng một mã nhiều lần, điều đó có nghĩa là điều này phá vỡ quy tắc lập trình khô khan.
Để giảm thiểu vấn đề này, chúng ta có thể sử dụng cấu trúc vòng lặp như vậy:
WHILE stomach_empty //this code will keep on running if stomach_empty is true eat_food[] ENDWHILE
Trong mã này, chúng tôi đang sử dụng câu lệnh
for i in :2. Ở đây, vòng lặp đầu tiên phân tích xem
WHILE stomach_empty //this code will keep on running if stomach_empty is true eat_food[] ENDWHILE9 boolean là
for i in :0. Nếu điều kiện này được thỏa mãn, chương trình tiếp tục chạy chức năng
for i in :1 cho đến khi điều kiện trở nên sai. Chúng tôi sẽ tìm hiểu về
for i in :2 vòng lặp sau trong bài viết này.
Để tóm tắt, các nhà phát triển sử dụng các vòng lặp để chạy một đoạn mã nhiều lần cho đến khi một điều kiện nhất định được đáp ứng. Kết quả là, điều này tiết kiệm thời gian và thúc đẩy khả năng đọc mã.
Các loại vòng lặp
Trong Python, có hai loại cấu trúc vòng lặp:
for i in :
7: Lặp lại số lần được xác định trước. Điều này còn được gọi là một phép lặp xác địnhfor i in :
2: Tiếp tục lặp lại cho đến khi điều kiện làfor i in :
9. Điều này được gọi là một lần lặp không xác định
Trong bài viết này, bạn sẽ tìm hiểu các khái niệm sau:
for i in :
7 vòng lặp- Cú pháp
- Vòng lặp với số
- Vòng lặp với danh sách
- Danh sách hiểu
- Cú pháp
- Vòng lặp với số
- Vòng lặp với danh sách
- Danh sách hiểu
- Cú pháp
- Vòng lặp với số
- Vòng lặp với danh sách
- Danh sách hiểu
- Sử dụng với danh sách
- Sử dụng với số
for i in :
2 vòng lặp- Các câu lệnh điều khiển vòng lặp
for i in :
7 vòng lặp
Cú pháp
Cú pháp
for i in :
Vòng lặp với số
Vòng lặp với số
Vòng lặp với danh sách
for i in range[10]: # collection of numbers from 0 to 9 print[i]
Danh sách hiểu
Sử dụng với danh sách
Sử dụng với số
for i in range[10]: # numbers from 0-9 if i % 2 == 0: # is divsible by 2? [even number] print[i] # then print.
for i in :2 vòng lặp
Vòng lặp với danh sách
Danh sách hiểu
names = ["Bill Gates", "Steve Jobs", "Mark Zuckerberg"] # create our list for name in names: # load our list of names and iterate through them print[name]
Sử dụng với danh sách
Sử dụng với số
names = ["Bill Gates", "Billie Eilish", "Mark Zuckerberg"] # create our list for name in names: # load our list of names and iterate through them if "B" in name: # does the name include 'B'? print[name]
for i in :
2 vòng lặp
Các câu lệnh điều khiển vòng lặp
For example, look at the following code:
names = ["Bill Gates", "Billie Eilish", "Mark Zuckerberg", "Hussain"] namesWithB = [] for name in names: if "B" in name: namesWithB.append[name] # add this element to this array. print[namesWithB]
Tuyên bố
for i in range[10]: # collection of numbers from 0 to 9 print[i]2
Tuyên bố
for i in range[10]: # collection of numbers from 0 to 9 print[i]3
Cú pháp
newlist = [ for in [if condition]]
Vòng lặp với số
Vòng lặp với số
Vòng lặp với danh sách
names = ["Bill Gates", "Billie Eilish", "Mark Zuckerberg", "Hussain"] namesWithB = [name for name in names if "B" in name] print[namesWithB]
Danh sách hiểu
Vòng lặp với danh sách
Danh sách hiểu
WHILE stomach_empty //this code will keep on running if stomach_empty is true eat_food[] ENDWHILE0
Sử dụng với danh sách
Sử dụng với số
Danh sách hiểu
Sử dụng với danh sách
Cú pháp
WHILE stomach_empty //this code will keep on running if stomach_empty is true eat_food[] ENDWHILE1
Trong vòng lặp
for i in :2,
names = ["Bill Gates", "Billie Eilish", "Mark Zuckerberg"] # create our list for name in names: # load our list of names and iterate through them if "B" in name: # does the name include 'B'? print[name]2 được kiểm tra trước tiên. Nếu đó là
for i in :0, mã trong
for i in range[10]: # numbers from 0-9 if i % 2 == 0: # is divsible by 2? [even number] print[i] # then print.1 được thực thi. Quá trình này sẽ lặp lại cho đến khi
names = ["Bill Gates", "Billie Eilish", "Mark Zuckerberg"] # create our list for name in names: # load our list of names and iterate through them if "B" in name: # does the name include 'B'? print[name]2 trở thành
for i in :9.
Vòng lặp với số
Phần mã này in ra các số nguyên giữa
names = ["Bill Gates", "Billie Eilish", "Mark Zuckerberg", "Hussain"] namesWithB = [] for name in names: if "B" in name: namesWithB.append[name] # add this element to this array. print[namesWithB]7 và
names = ["Bill Gates", "Billie Eilish", "Mark Zuckerberg", "Hussain"] namesWithB = [] for name in names: if "B" in name: namesWithB.append[name] # add this element to this array. print[namesWithB]8.
Nhiều bài viết tuyệt vời hơn từ Logrocket:
- Đừng bỏ lỡ một khoảnh khắc với bản phát lại, một bản tin được quản lý từ Logrocket
- Tìm hiểu cách Galileo của Logrocket cắt giảm tiếng ồn để chủ động giải quyết các vấn đề trong ứng dụng của bạn
- Sử dụng React's UsEffect để tối ưu hóa hiệu suất của ứng dụng của bạn
- Chuyển đổi giữa nhiều phiên bản của nút
- Khám phá cách làm động ứng dụng ứng dụng React của bạn với Animxyz
- Khám phá Tauri, một khuôn khổ mới để xây dựng các nhị phân
- So sánh NestJS so với Express.js
WHILE stomach_empty //this code will keep on running if stomach_empty is true eat_food[] ENDWHILE2
Ở đây, những gì mà xảy ra trong ví dụ này:
- Giá trị ban đầu của
names = ["Bill Gates", "Billie Eilish", "Mark Zuckerberg", "Hussain"] namesWithB = [] for name in names: if "B" in name: namesWithB.append[name] # add this element to this array. print[namesWithB]
9 lànames = ["Bill Gates", "Billie Eilish", "Mark Zuckerberg", "Hussain"] namesWithB = [] for name in names: if "B" in name: namesWithB.append[name] # add this element to this array. print[namesWithB]
7. Chương trình trước tiên kiểm tra xemnames = ["Bill Gates", "Billie Eilish", "Mark Zuckerberg", "Hussain"] namesWithB = [] for name in names: if "B" in name: namesWithB.append[name] # add this element to this array. print[namesWithB]
9 có nhiều hơnnewlist = [ for in [if condition]]
2 hay không. Vì đây làfor i in :
0, cơ thể vòng chạy - Trong vòng lặp, trước tiên chúng tôi đang in ra giá trị của
names = ["Bill Gates", "Billie Eilish", "Mark Zuckerberg", "Hussain"] namesWithB = [] for name in names: if "B" in name: namesWithB.append[name] # add this element to this array. print[namesWithB]
9. Sau đó, chúng tôi đang tăng nó bởinewlist = [ for in [if condition]]
5. - Khi phần thân của vòng lặp kết thúc, việc thực hiện chương trình sẽ đánh giá lại điều kiện. Bởi vì nó vẫn đúng, cơ thể lại thực hiện.
- Điều này tiếp tục cho đến khi
names = ["Bill Gates", "Billie Eilish", "Mark Zuckerberg", "Hussain"] namesWithB = [] for name in names: if "B" in name: namesWithB.append[name] # add this element to this array. print[namesWithB]
9 vượt quánewlist = [ for in [if condition]]
2. Tại thời điểm này, khi biểu thức được kiểm tra, nó làfor i in :
9 và vòng lặp dừng lại.
Vòng lặp với danh sách
Chúng ta có thể sử dụng khối
for i in :2 để lặp lại thông qua các danh sách như vậy:
WHILE stomach_empty //this code will keep on running if stomach_empty is true eat_food[] ENDWHILE3
Ở đây, một sự cố của chương trình này:
- Hàm
names = ["Bill Gates", "Billie Eilish", "Mark Zuckerberg", "Hussain"] namesWithB = [name for name in names if "B" in name] print[namesWithB]
0 trả về số lượng các phần tử có trong mảngnames = ["Bill Gates", "Billie Eilish", "Mark Zuckerberg", "Hussain"] namesWithB = [name for name in names if "B" in name] print[namesWithB]
1 - Tuyên bố
for i in :
2 của chúng tôi trước tiên kiểm tra xemnames = ["Bill Gates", "Billie Eilish", "Mark Zuckerberg", "Hussain"] namesWithB = [] for name in names: if "B" in name: namesWithB.append[name] # add this element to this array. print[namesWithB]
9 có nhỏ hơn biếnnames = ["Bill Gates", "Billie Eilish", "Mark Zuckerberg", "Hussain"] namesWithB = [name for name in names if "B" in name] print[namesWithB]
4 hay không. Vì điều này là đúng, chương trình sẽ in ra các mục trong danh sáchnames = ["Bill Gates", "Billie Eilish", "Mark Zuckerberg", "Hussain"] namesWithB = [name for name in names if "B" in name] print[namesWithB]
1. Cuối cùng, chúng tôi đang tăng biếnnames = ["Bill Gates", "Billie Eilish", "Mark Zuckerberg", "Hussain"] namesWithB = [] for name in names: if "B" in name: namesWithB.append[name] # add this element to this array. print[namesWithB]
9 - Khi
names = ["Bill Gates", "Billie Eilish", "Mark Zuckerberg", "Hussain"] namesWithB = [] for name in names: if "B" in name: namesWithB.append[name] # add this element to this array. print[namesWithB]
9 vượt quánames = ["Bill Gates", "Billie Eilish", "Mark Zuckerberg", "Hussain"] namesWithB = [name for name in names if "B" in name] print[namesWithB]
4, vòng lặp tạm dừng
Các câu lệnh điều khiển vòng lặp
Có ba câu lệnh điều khiển vòng lặp:
for i in range[10]: # collection of numbers from 0 to 9 print[i]
2: Kết thúc vòng lặp nếu đáp ứng một điều kiện cụ thểfor i in range[10]: # collection of numbers from 0 to 9 print[i]
3: Bỏ qua một lần lặp của vòng lặp nếu một điều kiện được chỉ định được đáp ứng và tiếp tục với lần lặp tiếp theo. Sự khác biệt giữafor i in range[10]: # collection of numbers from 0 to 9 print[i]
3 vàfor i in range[10]: # collection of numbers from 0 to 9 print[i]
2 là từ khóafor i in range[10]: # collection of numbers from 0 to 9 print[i]
2 sẽ nhảy ra khỏi vòng lặp, nhưngfor i in range[10]: # collection of numbers from 0 to 9 print[i]
3 sẽ nhảy qua một chu kỳ của vòng lặp của vòng lặp của vòng lặp của vòng lặp của vòng lặp của vòng lặpfor i in range[10]: # collection of numbers from 0 to 9 print[i]
4: Khi bạn không muốn bất kỳ lệnh hoặc mã nào thực thi.
Chúng ta có thể sử dụng tất cả những thứ này trong cả hai vòng
for i in :2 và
for i in :7.
1. for i in range[10]: # collection of numbers from 0 to 9
print[i]
2
Câu lệnh
for i in range[10]: # collection of numbers from 0 to 9 print[i]2 rất hữu ích khi bạn muốn thoát khỏi vòng lặp nếu một số điều kiện là
for i in :0. Đây là từ khóa
for i in range[10]: # collection of numbers from 0 to 9 print[i]2 hoạt động:
Here is the
for i in range[10]: # collection of numbers from 0 to 9 print[i]2 keyword in action:
WHILE stomach_empty //this code will keep on running if stomach_empty is true eat_food[] ENDWHILE4
Một vài suy luận từ mã này:
- Chương trình đầu tiên lặp lại thông qua mảng
names = ["Bill Gates", "Steve Jobs", "Mark Zuckerberg"] # create our list for name in names: # load our list of names and iterate through them print[name]
0 - Trong mỗi chu kỳ, Python kiểm tra xem giá trị hiện tại của
WHILE stomach_empty //this code will keep on running if stomach_empty is true eat_food[] ENDWHILE
13 làWHILE stomach_empty //this code will keep on running if stomach_empty is true eat_food[] ENDWHILE
14 - Nếu điều kiện trên được thỏa mãn, chương trình sẽ nói với người dùng rằng nó đã tạm dừng vòng lặp
- Tuy nhiên, nếu điều kiện là
for i in :
9, chương trình sẽ in giá trị củaWHILE stomach_empty //this code will keep on running if stomach_empty is true eat_food[] ENDWHILE
13
2. for i in range[10]: # collection of numbers from 0 to 9
print[i]
3
Tuyên bố
for i in range[10]: # collection of numbers from 0 to 9 print[i]3 bảo Python bỏ qua lần lặp hiện tại và tiếp tục tiếp theo. Đây là một ví dụ:
Here is an example:
WHILE stomach_empty //this code will keep on running if stomach_empty is true eat_food[] ENDWHILE5
Dưới đây là một sự cố của kịch bản này:
- Đi qua mảng
names = ["Bill Gates", "Steve Jobs", "Mark Zuckerberg"] # create our list for name in names: # load our list of names and iterate through them print[name]
0 - Nếu ứng dụng gặp phải một phần tử có giá trị
WHILE stomach_empty //this code will keep on running if stomach_empty is true eat_food[] ENDWHILE
14, hãy sử dụng câu lệnhfor i in range[10]: # collection of numbers from 0 to 9 print[i]
3 để nhảy qua lần lặp này - Nếu không, in ra giá trị của bộ đếm vòng lặp của chúng tôi,
WHILE stomach_empty //this code will keep on running if stomach_empty is true eat_food[] ENDWHILE
13
3. for i in range[10]: # collection of numbers from 0 to 9
print[i]
4
Sử dụng câu lệnh
for i in range[10]: # collection of numbers from 0 to 9 print[i]4 nếu bạn không muốn bất kỳ lệnh nào chạy. Nói cách khác,
for i in range[10]: # collection of numbers from 0 to 9 print[i]4 cho phép bạn thực hiện một hoạt động của NULL. Điều này có thể rất quan trọng ở những nơi mà mã của bạn sẽ đi nhưng chưa được viết.
Dưới đây là một ví dụ đơn giản về từ khóa
for i in range[10]: # collection of numbers from 0 to 9 print[i]4:
WHILE stomach_empty //this code will keep on running if stomach_empty is true eat_food[] ENDWHILE6
Đây sẽ là đầu ra:
4. Điều khoản for i in range[10]: # collection of numbers from 0 to 9
print[i]
5
Python cũng cho phép chúng tôi nối các câu
for i in range[10]: # collection of numbers from 0 to 9 print[i]5 cho các vòng lặp của chúng tôi. Mã trong khối
for i in range[10]: # collection of numbers from 0 to 9 print[i]5 thực thi khi vòng lặp chấm dứt. Đây là cú pháp:
Here is the syntax:
WHILE stomach_empty //this code will keep on running if stomach_empty is true eat_food[] ENDWHILE7
Ở đây, người ta có thể nghĩ rằng, Tại sao không đặt mã vào
WHILE stomach_empty //this code will keep on running if stomach_empty is true eat_food[] ENDWHILE30
WHILE stomach_empty //this code will keep on running if stomach_empty is true eat_food[] ENDWHILE31 ngay sau vòng lặp? Thắng nó hoàn thành điều tương tự?
Có một sự khác biệt nhỏ. Không có
for i in range[10]: # collection of numbers from 0 to 9 print[i]5,
WHILE stomach_empty //this code will keep on running if stomach_empty is true eat_food[] ENDWHILE33 sẽ chạy sau khi vòng lặp chấm dứt, bất kể điều gì.
Tuy nhiên, với câu lệnh
for i in range[10]: # collection of numbers from 0 to 9 print[i]5,
WHILE stomach_empty //this code will keep on running if stomach_empty is true eat_food[] ENDWHILE33 sẽ không chạy nếu vòng lặp chấm dứt thông qua từ khóa
for i in range[10]: # collection of numbers from 0 to 9 print[i]2.
Đây là một ví dụ để hiểu đúng mục đích của nó:
WHILE stomach_empty //this code will keep on running if stomach_empty is true eat_food[] ENDWHILE8
Đây sẽ là đầu ra:
4. Điều khoản for i in range[10]: # collection of numbers from 0 to 9
print[i]
5
Python cũng cho phép chúng tôi nối các câu
for i in range[10]: # collection of numbers from 0 to 9 print[i]5 cho các vòng lặp của chúng tôi. Mã trong khối
for i in range[10]: # collection of numbers from 0 to 9 print[i]5 thực thi khi vòng lặp chấm dứt. Đây là cú pháp:
Cảm ơn bạn rất nhiều vì đã đọc!
Logrocket: Khả năng hiển thị đầy đủ vào các ứng dụng web và di động của bạn
Logrocket là một giải pháp giám sát ứng dụng Frontend cho phép bạn phát lại các vấn đề như thể chúng xảy ra trong trình duyệt của riêng bạn. Thay vì đoán tại sao các lỗi xảy ra hoặc yêu cầu người dùng chụp ảnh màn hình và kết xuất nhật ký, Logrocket cho phép bạn phát lại phiên để nhanh chóng hiểu điều gì đã xảy ra. Nó hoạt động hoàn hảo với bất kỳ ứng dụng nào, bất kể khung và có các plugin để đăng nhập bối cảnh bổ sung từ Redux, Vuex và @ngrx/Store.
Ngoài việc ghi nhật ký các hành động redux và trạng thái, logrocket ghi lại nhật ký console, lỗi JavaScript, ngăn xếp, yêu cầu/phản hồi mạng với các tiêu đề + thân, siêu dữ liệu trình duyệt và nhật ký tùy chỉnh. Nó cũng cụ thể là DOM để ghi lại HTML và CSS trên trang, tái tạo các video hoàn hảo của pixel về ngay cả các ứng dụng đơn và di động phức tạp nhất.
Hãy thử nó miễn phí.