Vòng lặp For trong Python Phần 1

0

Hạn chế của vòng lặp while

Bạn có thể sử dụng vòng lặp while để có thể duyệt một List, chuỗi hoặc là một Tuple. Và thậm chí là một iterator (một object không hỗ trợ indexing) khi biết được số phần tử mà iterator đó chứa.
Ví dụ: 
Vậy nên Python có một một vòng lặp khác giúp làm chuyện này đơn giản và ngắn gọn hơn chính là vòng lặp for.

Chú thích One-liner: Nhiều thuật toán dài hàng chục dòng có thể được viết ngắn gọn trong Python chỉ bằng một dòng. Điều này khá phổ biến với nhiều ngôn ngữ scripting đặc biệt trong số đó là Python.

Cấu trúc vòng lặp for và cách hoạt động

Chúng ta sẽ cùng tìm hiểu phần cấu trúc trước:
for variable_1, variable_2, .. variable_n in sequence:
# for-block
Sequence ở đây là một iterable object (có thể là iterator hoặc là một dạng object cho phép sử dụng indexing hoặc thậm chí không phải hai kiểu trên).
Lưu ý: Nếu sequence là một iterator object thì việc dùng vòng lặp duyệt qua cũng sẽ tương tự như bạn sử dụng hàm next.
Ở cấu trúc vòng lặp này, bạn có thể for bao nhiêu biến theo sau cũng được. Nhưng phải đảm bảm một điều rằng, nếu bạn for với n biến thì mỗi phần tử trong sequence cũng phải bao gồm n (không lớn hơn hoặc nhỏ hơn) giá trị để unpacking (gỡ) đưa cho n biến của bạn.

Cách hoạt động của vòng lặp for này.
Bước 1: Vòng for sẽ bắt đầu bằng cách lấy giá trị đầu tiên của sequence.
Bước 2: Giá trị đầu tiên này có 3 giá trị. Bạn đưa vào 3 biến. Kiểm tra hợp lệ.
Bước 3: unpacking 3 giá trị này và lần lượt gán giá trị này cho ba biến h, k, t.
Dưới đây là một ví dụ unpacking:
 Bước 4: Thực hiện nội dung for-block.
Bước 5: Lấy giá trị tiếp theo của sequence sau đó làm tương tự như Bước 2, 3, 4.
Bước 6: Lúc này, sequence đã hết giá trị. Kết thúc vòng lặp.

Sử dụng vòng lặp để xử lí các iterator và Dict

Lí thuyết là thế! Giờ chúng ta sẽ làm một vài ví dụ bằng cách bắt đầu với vấn đề lúc đầu:
Tiếp đến chúng ta sẽ dùng vòng lặp này để duyệt một Dict. Nếu như một số ngôn ngữ khác phải có một vòng lặp mới for-reach thì với Python lại không cần.

Dict-items không phải là một iterator object. Cũng không phải là một object cho phép bạn indexing. Nhưng nó vẫn là một iterable, nên ta có thể dùng một constructor nào đó để biến đổi nó về một thứ dễ xem xét hơn. Chẳng hạn thế này.

Từ đó, ta có thể dễ dàng suy ra cách để có thể có được một vòng lặp duyệt một Dict. Và đây là ví dụ:

Câu lệnh break, continue

Những câu lệnh này có chức năng hoàn toàn tương tự như trong vòng lặp while.
Ví dụ về câu lệnh break trong vòng lặp for:
0
1
2
3
4
5
6
7
8
9
10
Ví dụ về câu lệnh continue trong vòng lặp for

Cấu trúc vòng lặp for-else và cách hoạt động

Cấu trúc: 

for variable_1, variable_2, .. variable_n in sequence:
# for-block
else:
# else-block
Nếu bạn nắm rõ cách vòng lặp while-else hoạt động thì bạn cũng có thể tự đoán được cách mà for-else làm việc.
Cũng sẽ tương tự như while-else, vòng lặp hoạt động bình thường. Khi vòng lặp kết thúc, khối else-block sẽ được thực hiện. Và đương nhiên nếu trong quá trình thực hiện for-block mà xuất hiện câu lệnh break thì vòng lặp sẽ kết thúc mà bỏ qua else-block.
  • For-else bình thường:
  • For-else có break:


Kết luậnQua bài viết này, đã nắm được Vòng lặp For trong Python Phần 1


Nguồn:www.howkteam.vn

Tags

Post a Comment

0Comments
Post a Comment (0)