Cách đếm số lần lặp trong vòng lặp for python

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: 74
0 để 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: 74
2 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: 74
4 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: 74
4 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]
    

  • lặp đi lặp lại
  • Chính xác. itervar là biến lặp
  • đếm
  • Không đúng. đếm chỉ là một biến đếm số lần lặp. Thử lại
  • [3, 41, 12, 9, 74, 15]
  • Không đúng. đây là một danh sách. Chương trình đang đếm số lượng giá trị mà nó chứa, nhưng nó không phải là biến lặp. Thử lại
  • danh sách
  • Không đúng. Vòng lặp này lặp qua một danh sách, nhưng đó không phải là biến lặp. Thử lại

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: 74
2 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: 74
2 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: 74
2 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: 74
2 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: 74
3, 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: 74
3 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: 74
3 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: 74
3 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: 74
3 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: 74
8 và
Before: None
Loop: 3 3
Loop: 41 41
Loop: 12 41
Loop: 9 41
Loop: 74 74
Loop: 15 74
Largest: 74
9 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 for0 đượ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 for0 thành hằng số for2. for2 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”

    Q-6. Điều nào sau đây không đúng về for2?

  • Đó 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

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à for2 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 for0 là for2 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: 74
4 là 3, vì for0 là for2, chúng tôi ngay lập tức đặt for0 là 3

Sau lần lặp đầu tiên, for0 không còn là for2 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: 74
04 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 for0. Bạn có thể thấy trong đầu ra của chương trình rằng for0 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 for0 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: 74
08 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: 74
08 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 for0 và for1 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 for1 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 for3 để tương đương với hàm for4 đã được tích hợp sẵn trong Python

Chủ Đề