Thông thường, chúng tôi sử dụng vòng lặp for
hoặc
Before: None Loop: 3 3 Loop: 41 41 Loop: 12 41 Loop: 9 41 Loop: 74 74 Loop: 15 74 Largest: 740 để duyệt qua danh sách các mục hoặc nội dung của tệp và chúng tôi đang tìm kiếm thứ gì đó chẳng hạn như giá trị lớn nhất hoặc nhỏ nhất của dữ liệu mà chúng tôi quét qua
Các vòng lặp này thường được xây dựng bởi
Khởi tạo một hoặc nhiều biến trước khi vòng lặp bắt đầu
Thực hiện một số tính toán trên từng mục trong thân vòng lặp, có thể thay đổi các biến trong thân vòng lặp
Nhìn vào các biến kết quả khi vòng lặp hoàn thành
Chúng tôi sẽ sử dụng một danh sách các số để minh họa các khái niệm và cách xây dựng các mẫu vòng lặp này
6. 6. 1. Vòng lặp đếm và tính tổng
Ví dụ: để đếm số mục trong danh sách, chúng tôi sẽ viết vòng lặp for
sau
Hoạt động. MãLens 6. 6. 1. 1 [codelens561]
Chúng tôi đặt biến
Before: None Loop: 3 3 Loop: 41 41 Loop: 12 41 Loop: 9 41 Loop: 74 74 Loop: 15 74 Largest: 742 thành 0 trước khi vòng lặp bắt đầu, sau đó chúng tôi viết một vòng lặp
for
để chạy qua danh sách các số. Biến lặp của chúng tôi được đặt tên là Before: None Loop: 3 3 Loop: 41 41 Loop: 12 41 Loop: 9 41 Loop: 74 74 Loop: 15 74 Largest: 744 và mặc dù chúng tôi không sử dụng
Before: None Loop: 3 3 Loop: 41 41 Loop: 12 41 Loop: 9 41 Loop: 74 74 Loop: 15 74 Largest: 744 trong vòng lặp, nhưng nó sẽ kiểm soát vòng lặp và khiến thân vòng lặp được thực thi một lần cho mỗi giá trị trong danh sách
Q-2. Biến nào là biến lặp trong khối mã?
count = 0 for itervar in [3, 41, 12, 9, 74, 15]: count = count + 1 print['Count: ', count]
Trong phần thân của vòng lặp, chúng tôi thêm 1 vào giá trị hiện tại của
Before: None Loop: 3 3 Loop: 41 41 Loop: 12 41 Loop: 9 41 Loop: 74 74 Loop: 15 74 Largest: 742 cho mỗi giá trị trong danh sách. Trong khi vòng lặp đang thực thi, giá trị của
Before: None Loop: 3 3 Loop: 41 41 Loop: 12 41 Loop: 9 41 Loop: 74 74 Loop: 15 74 Largest: 742 là số lượng giá trị mà chúng ta đã thấy “cho đến nay”
Khi vòng lặp hoàn thành, giá trị của
Before: None Loop: 3 3 Loop: 41 41 Loop: 12 41 Loop: 9 41 Loop: 74 74 Loop: 15 74 Largest: 742 là tổng số mục. Tổng số "rơi vào lòng chúng tôi" ở cuối vòng lặp. Chúng tôi xây dựng vòng lặp để chúng tôi có những gì chúng tôi muốn khi vòng lặp kết thúc
Một vòng lặp tương tự khác tính tổng của một bộ số như sau
Hoạt động. MãLens 6. 6. 1. 3 [codelens562]
Trong vòng lặp này, chúng tôi sử dụng biến lặp. Thay vì chỉ thêm một vào
Before: None Loop: 3 3 Loop: 41 41 Loop: 12 41 Loop: 9 41 Loop: 74 74 Loop: 15 74 Largest: 742 như trong vòng lặp trước, chúng tôi thêm số thực [3, 41, 12, v.v. ] vào tổng số đang chạy trong mỗi lần lặp lại vòng lặp. Nếu bạn nghĩ về biến
Before: None Loop: 3 3 Loop: 41 41 Loop: 12 41 Loop: 9 41 Loop: 74 74 Loop: 15 74 Largest: 743, thì nó chứa “tổng giá trị đang chạy cho đến nay”. Vì vậy, trước khi vòng lặp bắt đầu,
Before: None Loop: 3 3 Loop: 41 41 Loop: 12 41 Loop: 9 41 Loop: 74 74 Loop: 15 74 Largest: 743 bằng 0 vì chúng tôi chưa thấy bất kỳ giá trị nào, trong vòng lặp,
Before: None Loop: 3 3 Loop: 41 41 Loop: 12 41 Loop: 9 41 Loop: 74 74 Loop: 15 74 Largest: 743 là tổng chạy và khi kết thúc vòng lặp,
Before: None Loop: 3 3 Loop: 41 41 Loop: 12 41 Loop: 9 41 Loop: 74 74 Loop: 15 74 Largest: 743 là tổng chung của tất cả các giá trị trong danh sách
Khi vòng lặp thực thi,
Before: None Loop: 3 3 Loop: 41 41 Loop: 12 41 Loop: 9 41 Loop: 74 74 Loop: 15 74 Largest: 743 cộng dồn tổng các phần tử;
Q-4. Biến đếm tổng các phần tử trong một vòng lặp được gọi là a[n] ________
Cả vòng lặp đếm và vòng tính tổng đều không đặc biệt hữu ích trong thực tế vì có các hàm tích hợp sẵn
Before: None Loop: 3 3 Loop: 41 41 Loop: 12 41 Loop: 9 41 Loop: 74 74 Loop: 15 74 Largest: 748 và
Before: None Loop: 3 3 Loop: 41 41 Loop: 12 41 Loop: 9 41 Loop: 74 74 Loop: 15 74 Largest: 749 tính toán số lượng mục trong danh sách và tổng số mục trong danh sách tương ứng
6. 6. 2. Vòng lặp tối đa và tối thiểu
Để tìm giá trị lớn nhất trong một danh sách hoặc dãy, chúng ta xây dựng vòng lặp sau
Khi chương trình thực thi, đầu ra như sau
Before: None Loop: 3 3 Loop: 41 41 Loop: 12 41 Loop: 9 41 Loop: 74 74 Loop: 15 74 Largest: 74
Biến for
0 được coi là “giá trị lớn nhất mà chúng tôi đã thấy cho đến nay. ” Trước vòng lặp, chúng tôi đặt for
0 thành hằng số for
2. for
2 là một giá trị hằng số đặc biệt mà chúng ta có thể lưu trữ trong một biến để đánh dấu biến đó là “trống”
- Đó là một giá trị không đổi
- Không đúng. Không có giá trị không đổi. Thử lại
- Nó là một biến
- Chính xác. Không có gì là một giá trị không đổi có thể được gán cho một biến, không phải là một biến
- Nó đánh dấu một biến là rỗng
- Không đúng. Không đánh dấu một biến là trống. Thử lại
- Giá trị của một biến bắt đầu bằng ``None`` có thể thay đổi
- Không đúng. Giá trị của Không chỉ có nghĩa là biến trống. Biến sau đó có thể được cập nhật hoặc gán lại. Thử lại
Q-6. Điều nào sau đây không đúng về for
2?
Trước khi vòng lặp bắt đầu, giá trị lớn nhất mà chúng tôi đã thấy cho đến nay là for
2 vì chúng tôi chưa thấy bất kỳ giá trị nào. Trong khi vòng lặp đang thực thi, nếu for
0 là for
2 thì chúng tôi lấy giá trị đầu tiên mà chúng tôi thấy là lớn nhất cho đến nay. Bạn có thể thấy trong lần lặp đầu tiên khi giá trị của
Before: None Loop: 3 3 Loop: 41 41 Loop: 12 41 Loop: 9 41 Loop: 74 74 Loop: 15 74 Largest: 744 là 3, vì
for
0 là for
2, chúng tôi ngay lập tức đặt for
0 là 3Sau lần lặp đầu tiên, for
0 không còn là for
2 nữa, do đó, phần thứ hai của biểu thức logic phức hợp kiểm tra
Before: None Loop: 3 3 Loop: 41 41 Loop: 12 41 Loop: 9 41 Loop: 74 74 Loop: 15 74 Largest: 7404 chỉ kích hoạt khi chúng ta thấy một giá trị lớn hơn giá trị "lớn nhất cho đến nay". Khi chúng tôi thấy một giá trị mới "thậm chí còn lớn hơn", chúng tôi lấy giá trị mới đó cho
for
0. Bạn có thể thấy trong đầu ra của chương trình rằng for
0 tiến triển từ 3 đến 41 đến 74Ở cuối vòng lặp, chúng tôi đã quét tất cả các giá trị và biến for
0 hiện chứa giá trị lớn nhất trong danh sách
Để tính số nhỏ nhất, mã rất giống với một thay đổi nhỏ
Một lần nữa,
Before: None Loop: 3 3 Loop: 41 41 Loop: 12 41 Loop: 9 41 Loop: 74 74 Loop: 15 74 Largest: 7408 là “nhỏ nhất cho đến nay” trước, trong và sau khi vòng lặp thực thi. Khi vòng lặp hoàn thành,
Before: None Loop: 3 3 Loop: 41 41 Loop: 12 41 Loop: 9 41 Loop: 74 74 Loop: 15 74 Largest: 7408 chứa giá trị nhỏ nhất trong danh sách
Một lần nữa, như khi đếm và tính tổng, các hàm tích hợp sẵn for
0 và for
1 khiến việc viết các vòng lặp chính xác này trở nên không cần thiết
Sau đây là phiên bản đơn giản của hàm for
1 tích hợp sẵn trong Python
Trong phiên bản hàm của mã “nhỏ nhất”, chúng tôi đã loại bỏ tất cả các câu lệnh for
3 để tương đương với hàm for
4 đã được tích hợp sẵn trong Python