Chuyển đến nội dung chính

Hướng dẫn Python cho người mới bắt đầu: Thành thạo for i in range

Trong thế giới lập trình Python, việc nắm vững vòng lặp là điều then chốt. Hướng dẫn này làm rõ vòng lặp Python for i in range, một cấu trúc nền tảng trong Python.
· 5 phút đọc

Khám phá cùng AI

Trong thế giới lập trình Python, việc nắm vững vòng lặp là điều then chốt. Hướng dẫn này làm rõ vòng lặp Python for i in range, một cấu trúc nền tảng trong Python giúp đơn giản hóa các tác vụ lặp lại. Chúng ta sẽ cùng tìm hiểu cú pháp, tính linh hoạt và các ứng dụng thực tế của nó.

Bản chất của vòng lặp for trong Python

Vòng lặp for trong Python là một cấu trúc điều khiển dùng để lặp qua một dãy (như list, tuple, dictionary hoặc string). Điểm hay của vòng lặp for trong Python nằm ở khả năng lặp trực tiếp qua các phần tử của một dãy một cách rõ ràng và súc tích.

Cú pháp của vòng lặp for

for item in sequence:
    # perform actions

Ở đây, item đại diện cho từng phần tử trong dãy, và vòng lặp sẽ thực thi khối mã cho mỗi phần tử.

Tìm hiểu sâu về hàm range() của Python

Hàm range() trong Python đóng vai trò chủ chốt để tạo ra một dãy số, cung cấp khả năng kiểm soát và linh hoạt hơn trong các vòng lặp.

Tính linh hoạt của range()

Dùng một tham số

  • Sinh các số từ 0 đến n-1.
  • Ví dụ: range(5) tạo ra 0, 1, 2, 3, 4.

Dùng hai tham số

  • Chỉ định điểm bắt đầu và kết thúc của dãy.
  • Ví dụ: range(10, 15) cho kết quả 10, 11, 12, 13, 14.

Dùng ba tham số

  • Thêm khả năng chỉ định bước nhảy khi tăng.
  • Ví dụ: range(1, 20, 2) cho 1, 3, 5, ..., 19.

Ứng dụng thực tế và ví dụ

Lặp qua các tập hợp

1. Chuỗi (String): Lặp qua từng ký tự.

for char in "Hello":
    print(char)
H
e
l
l
o

Vòng lặp này lặp qua từng ký tự trong chuỗi "Hello". Vòng lặp for lần lượt gán mỗi ký tự ('H', 'e', 'l', 'l', 'o') cho biến char và in ra. Do đó, đầu ra sẽ là từng ký tự của "Hello" trên một dòng mới.

2. Danh sách (List): Duyệt qua các phần tử trong list.

for num in [1, 2, 3]:
    print(num)
1
2
3

Ở đây, vòng lặp đi qua list [1, 2, 3]. Mỗi lần lặp, num nhận giá trị của phần tử kế tiếp trong list, bắt đầu từ 1, rồi 2, và cuối cùng là 3. Mỗi số được in ra, cho kết quả 1, 2 và 3 xuất hiện trên các dòng riêng.

3. Từ điển (Dictionary): Truy cập key và value.

for key, value in {'a': 1, 'b': 2}.items():
    print(key, value)
a 1
b 2

Vòng lặp này lặp qua một dictionary chứa hai cặp key-value ('a': 1 và 'b': 2). Phương thức .items() trả về một đối tượng view hiển thị danh sách các cặp tuple (key, value) của dictionary. Mỗi lần lặp, key và value được gán lần lượt bằng key và value của phần tử tiếp theo trong dictionary, sau đó được in ra.

Cơ chế điều khiển vòng lặp

1. Lệnh break: Kết thúc vòng lặp sớm.

for i in range(10):
    if i == 5:
        break

Đoạn mã này lặp từ 0 đến 9 (do range(10) tạo ra). Khi giá trị i đạt 5, điều kiện trong câu lệnh if được thỏa mãn, kích hoạt câu lệnh break. Điều này dừng vòng lặp, dù chưa lặp hết các giá trị đến 9.

2. Lệnh continue: Bỏ qua lần lặp hiện tại.

for i in range(10):
    if i % 2 == 0:
        continue
    print(i)
1
3
5
7
9

Vòng lặp này cũng lặp từ 0 đến 9. Tuy nhiên, câu lệnh if kiểm tra xem i có là số chẵn hay không (i % 2 == 0 kiểm tra phần dư khi i chia cho 2 có bằng 0 không). Nếu là số chẵn, câu lệnh continue được thực thi, bỏ qua phần còn lại của thân vòng lặp ở lần lặp đó. Vì vậy, chỉ các số lẻ được in ra

Kỹ thuật nâng cao với vòng lặp for

1. Vòng lặp lồng nhau

Đây là ví dụ về vòng lặp lồng nhau, nơi một vòng lặp nằm trong một vòng lặp khác. Vòng lặp ngoài (for i in range(3)) lặp qua các số 0, 1 và 2. Với mỗi lần lặp của vòng ngoài, vòng lặp trong (for j in range(3)) cũng lặp qua các số 0, 1 và 2. Câu lệnh print(i, j) được thực thi cho mỗi tổ hợp của i và j.

for i in range(3):
    for j in range(3):
        print(i, j)
0 0
0 1
0 2
1 0
1 1
1 2
2 0
2 1
2 2

Đầu ra sẽ là một loạt cặp đại diện cho tất cả các tổ hợp của i và j trong khoảng từ 0 đến 2.

2. Lặp với Enumerate

Hàm enumerate thêm một bộ đếm vào một iterable và trả về nó dưới dạng một đối tượng enumerate. Đối tượng này có thể dùng trực tiếp trong vòng lặp for. Trong ví dụ này, vòng lặp for được dùng với enumerate trên một list ['a', 'b', 'c'].

for index, value in enumerate(['a', 'b', 'c']):
    print(index, value)
0 a
1 b
2 c

Hàm enumerate thêm chỉ số vào mỗi phần tử trong list, mặc định bắt đầu từ 0. Vòng lặp sau đó lặp qua đối tượng enumerate này, tách mỗi phần tử thành index và value. index là chỉ số của từng phần tử, còn value là phần tử tương ứng trong list. Vì vậy, đầu ra sẽ là một loạt dòng gồm chỉ số và giá trị.

Những ví dụ này minh họa cách dùng vòng lặp lồng nhau để thực hiện các lượt lặp phức tạp và cách enumerate giúp theo dõi chỉ số của các phần tử trong vòng lặp một cách dễ dàng.

Vòng lặp for được dùng như thế nào trong Khoa học dữ liệu

Vòng lặp for là một khái niệm quan trọng trong lập trình Python và phân tích dữ liệu. Nó có nhiều ứng dụng, như lặp qua các list và mảng, giúp đơn giản hóa các tác vụ thao tác dữ liệu. Tôi thường xuyên dùng vòng lặp for, đặc biệt là các vòng lặp lồng nhau, để quản lý hiệu quả các cấu trúc dữ liệu đa chiều, một bước thiết yếu khi xây dựng thuật toán học máy. Ngoài ra, các nhà khoa học dữ liệu thường kết hợp vòng lặp for với logic điều kiện cho các xử lý dữ liệu phức tạp, như tổng hợp dữ liệu, chẳng hạn tính trung bình của một danh sách số.

Tuy nhiên, vòng lặp for có thể không phải là lựa chọn tốt nhất khi làm việc với các tập dữ liệu lớn và thuật toán học sâu. Đó là lý do chúng ta có các thư viện như NumPy, pandas và PyTorch, vốn được tối ưu cho các phép toán vector hóa, giúp hiệu quả hơn cho thao tác dữ liệu quy mô lớn.

Kết luận: Tận dụng hiệu quả của vòng lặp

Tóm lại, vòng lặp for của Python là một công cụ không thể thiếu đối với lập trình viên. Sự đơn giản của nó, kết hợp với sức mạnh của hàm range(), khiến nó trở nên lý tưởng cho nhiều tác vụ lặp trong khoa học dữ liệu và lập trình nói chung. Khi bạn luyện tập và áp dụng các khái niệm này, bạn sẽ thấy mã Python của mình trở nên hiệu quả và biểu đạt hơn.

Bạn có thể đọc thêm về While Loop trong hướng dẫn đầy đủ của chúng tôi và khám phá chủ đề này cùng các khái niệm khác trong khóa học Python Trung cấp.

Abid Ali Awan

Tác giả

Abid Ali Awan

Là một nhà khoa học dữ liệu được chứng nhận, tôi đam mê tận dụng công nghệ tiên tiến để tạo ra các ứng dụng học máy đổi mới. Với nền tảng vững chắc về nhận dạng giọng nói, phân tích và báo cáo dữ liệu, MLOps, AI hội thoại và NLP, tôi đã rèn giũa kỹ năng phát triển các hệ thống thông minh có thể tạo ra tác động thực sự. Bên cạnh chuyên môn kỹ thuật, tôi cũng là một người truyền đạt tốt, có khả năng chắt lọc các khái niệm phức tạp thành ngôn ngữ rõ ràng, súc tích. Nhờ đó, tôi trở thành một blogger được nhiều người quan tâm trong lĩnh vực khoa học dữ liệu, chia sẻ góc nhìn và kinh nghiệm với cộng đồng các chuyên gia dữ liệu ngày càng lớn. Hiện tại, tôi tập trung vào sáng tạo và biên tập nội dung, làm việc với các mô hình ngôn ngữ lớn để phát triển nội dung mạnh mẽ và hấp dẫn, giúp doanh nghiệp và cá nhân tận dụng tối đa dữ liệu của mình.

Chủ đề

Liên quan