Ngôn ngữ Python
Vòng lặp for với hàm range()

Vòng lặp for với hàm range()

1. Vòng lặp là gì?

Giả sử bạn có một hàm để tính điểm trung bình của một học sinh từ 3 môn Toán, Tiếng Anh, Văn:

def calculate_average_score(math, english, literature):
    return (math + english + literature) / 3

Khi cần tính điểm thì chương trình sẽ gọi hàm:

calculate_average_score(9, 8, 10)

Việc tính điểm này trong thực tế thường được thực hiện cho 1 lớp học hay một khối học gồm nhiều học sinh. Nên nếu cứ gọi từng hàm như trên thì các dòng code sẽ lặp lại và rất dài. Giả sử cần tính điểm của 100 học sinh thì sẽ cần 100 dòng code.

Trong lập trình, để tránh lặp lại các dòng code như vậy, chúng ta phải dùng vòng lặp. Vòng lặp giúp chúng ta lặp lại một công việc nhiều lần mà không cần viết đi viết lại các dòng code giống nhau hoặc tương tự nhau.

Trong Python, các bạn có thể dùng cấu trúc for hoặc cấu trúc while để tạo ra vòng lặp. Trong bài này, chúng ta sẽ cùng tìm hiểu về cấu trúc vòng lặp for kết hợp với hàm range() .

2. Hàm range()

Python cung cấp hàm range() để tạo ra một dãy số theo các thông số chúng ta truyền vào:

range(start, stop, step)
  • start: con số bắt đầu của dãy số, nếu không truyền vào con số start này thì mặc định start = 0.
  • stop: con số để xác định điểm dừng của dãy số, con số này là bắt buộc phải truyền vào. Dãy số sẽ không chứa con số stop này.
  • step: bước nhảy của các con số trong dãy, con số này dùng để xác định 2 số kề nhau trong dãy số sẽ cách nhau bao nhiêu đơn vị.

Ví dụ 1: Hàm range() với 1 đối số stop:

range(10)

Trong ví dụ này, chỉ 1 đối số được truyền vào, stop = 10. Nên start = 0, step = 1. Nghĩa là dãy số bắt đầu từ 0, các con số cách nhau 1 đơn vị và kết thúc ở số 9 (dãy số không chứa stop, stop chỉ là điểm dừng). Do đó kết quả sẽ là dãy số: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9

Ví dụ 2: Hàm range() với 2 đối số start, stop:

range(5, 10)

Do step không được truyển vào nên step = 1 (mặc định). Dãy số sẽ bắt đầu từ start = 5, bước nhảy step = 1, kết thúc khi chạm stop = 10. Nên sẽ cho ra kết quả 5, 6, 7, 8, 9 (không chứa stop = 10).

Ví dụ 3: Hàm range() với 3 đối số start, stop, step:

range(0, 10, 2)

Hàm này sẽ bắt đầu bằng start = 0, stop = 10, step = 2 (các con số cách nhau 2 đơn vị). Nên kết quả sẽ là dãy số: 0, 2, 4, 6, 8

3. Vòng lặp for với hàm range()

Để tạo ra vòng lặp for với hàm range() ta dùng cấu trúc/cú pháp sau:

for number in range(start, stop, step):
    # Các dòng code trong vòng lặp

Trong đó:

  • for là từ khóa bắt buộc để bắt đầu vòng lặp
  • number là một biến, bạn có thể dùng tên khác (ví dụ: i, index...). Trong mỗi vòng lặp, number sẽ giữ MỘT giá trị là một con số trong dãy số được tạo bởi hàm range()
  • in là từ khóa bắt buộc
  • range(start, stop, step): là hàm để tạo ra dãy số để vòng lặp duyệt qua từng con số trong dãy số này

Ví dụ:

for number in range(10):
    print(number)
print("Done")
  • Hàm range(10) sẽ tạo ra một dãy số từ 0 đến 9: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
  • Khi vòng lặp chạy: các con số ở dãy số trên sẽ lần lượt được gán vào biến number , và number sẽ được in ra trong mỗi vòng lặp: number = 0 -> print(0), number = 1, print(1) ... number = 9 -> print(9).
  • Khi đã duyệt qua tất cả các con số trong dãy số, vòng lặp kết thúc và chương trình ra khỏi vòng lặp, chạy tiếp các dòng code ngoài vòng lặp. Trong ví dụ này, sau vòng lặp thì chương trình sẽ in ra "Done".

Lập trình Python - Bumbii Academy