Categories: Tài liệu IT

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

Published by

Trong bài viết này, chúng ta sẽ tìm hiểu về Vòng lặp For trong Python. Đây là một phần công phu của vòng lặp, và sẽ giúp chúng ta giải quyết các vấn đề một cách đơn giản và ngắn gọn hơn.

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

Trước khi đi vào vòng lặp for, hãy cùng nhau tìm hiểu về một số hạn chế của vòng lặp while. Vòng lặp while chỉ thích hợp để duyệt qua các List, chuỗi, Tuple hoặc iterator (một object không hỗ trợ indexing) khi chúng ta biết trước số phần tử của đối tượng đó.

Ví dụ:

length = 3
iter_ = (x for x in range(length))
c = 0
while c < length:
    print(next(iter_))
    c += 1

Kết quả:

0
1
2

Nếu chúng ta không biết số phần tử của iterator, chúng ta có thể sử dụng try-block để làm điều đó.

Ví dụ:

iter_ = (x for x in range(3)) # giả sử ta không biết có 3 phần tử
while 1: # 1 là một expression True
    try:
        print(next(iter_))
    except StopIteration:
        break

Tuy nhiên, với vẻ đẹp “one-liner” của Python, việc làm rườm rà như vậy không được chấp nhận.

Vì lý do đó, Python cung cấp một vòng lặp khác để giải quyết vấn đề này một cách đơn giản và ngắn gọn hơn – đó chính là vòng lặp for.

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

Cấu trúc của vòng lặp for như sau:

for variable_1, variable_2, .. variable_n in sequence:
    # for-block

Trong đó, sequence là một iterable object (có thể là iterator hoặc một dạng object cho phép sử dụng indexing, hoặc cả hai).

Ví dụ thực tế: Tiếp tục câu chuyện về Tèo và bạn gái ăn kem. Tèo đi mua 3 cây kem cho mình và hai cô gái. Nếu chỉ mua 2 cây, Tèo phải nhìn cô gái ăn. Nếu mua 4 cây, có thể xảy ra xung đột giữa ba người để tranh giành kem.

Giả sử chúng ta có một sequence gồm 2 phần tử, mỗi phần tử gồm 3 giá trị, và một đoạn code như sau:

for e1, e2, e3 in char:
    print("Elements:", e1, e2, e3)

Kết quả:

Elements: a b c
Elements: 1 2 3

Quá trình hoạt động của vòng lặp for như sau:

  1. Vòng lặp bắt đầu bằng cách lấy giá trị đầu tiên của sequence.
  2. Giá trị đầu tiên này có 3 giá trị, và chúng ta gán lần lượt cho 3 biến e1, e2, e3.
  3. Thực hiện nội dung của for-block (trong ví dụ là in ra 3 biến).
  4. Lấy giá trị tiếp theo trong sequence, và lặp lại các bước 2 và 3.
  5. Khi sequence đã hết giá trị, kết thúc vòng lặp. Kết quả được in ra là 2 dòng cuối cùng trong ví dụ trên.

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

Hãy áp dụng kiến thức đã học vào các ví dụ thực tế.

Ví dụ 1: Sử dụng vòng lặp for để duyệt qua một iterator.

iter_ = (x for x in range(3))
for value in iter_:
    print("->", value)

Kết quả:

-> 0
-> 1
-> 2

Ví dụ 2: Dùng vòng lặp for để duyệt qua một Dict.

howkteam = {'name': 'Kteam', 'kter': 69}
for key, value in howkteam.items():
    print(key, '=>', value)

Kết quả:

name => Kteam
kter => 69

Đối với vòng lặp for duyệt qua Dict với chỉ một biến chạy, thì biến đó sẽ duyệt qua các key của Dict.

Ví dụ:

d = {1: 'one', 2: 'two', 3: 'three'}
for i in d:
    print(i)

Kết quả:

1
2
3

Câu lệnh break và continue

Câu lệnh break và continue trong vòng lặp for hoạt động tương tự như trong vòng lặp while.

Ví dụ về câu lệnh break trong vòng lặp for:

s = 'How Kteam'
for ch in s:
    if ch == ' ':
        break
    else:
        print(ch)

Kết quả:

H o w

Ví dụ về câu lệnh continue trong vòng lặp for:

s = 'H o w K t e a m'
for ch in s:
    if ch == ' ':
        continue
    else:
        print(ch)

Kết quả:

H o w K t e a m

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

Cấu trúc của vòng lặp for-else như sau:

for variable_1, variable_2, .. variable_n in sequence:
    # for-block
else:
    # else-block

Tương tự như vòng lặp while-else, vòng lặp for-else hoạt động như sau:

  1. Vòng lặp for được thực hiện như bình thường.
  2. Khi vòng lặp kết thúc, khối else-block sẽ được thực hiện.
  3. Nếu trong quá trình thực hiện for-block xuất hiện câu lệnh break, vòng lặp sẽ kết thúc và bỏ qua else-block.

Ví dụ vòng lặp for-else thông thường:

for k in (1, 2, 3):
    print(k)
else:
    print('Done!')

Kết quả:

1
2
3
Done!

Ví dụ vòng lặp for-else với break:

for k in (1, 2, 3):
    print(k)
    if k % 2 == 0:
        break
else:
    print('Done!')

Kết quả:

1
2

Đến đây, chúng ta đã cùng tìm hiểu về Vòng lặp For trong Python. Trong bài viết tiếp theo, chúng ta sẽ tiếp tục thảo luận về Vòng lặp For trong Python.

Cảm ơn bạn đã đọc bài viết. Hãy để lại bình luận hoặc góp ý của bạn để chúng tôi có thể cải thiện nội dung tốt hơn. Đừng quên thực hành và không ngại khó!

Nếu bạn có bất kỳ khó khăn hay thắc mắc nào, hãy đặt câu hỏi trong phần bình luận bên dưới hoặc trong mục HỎI & ĐÁP trên Howkteam.com để nhận được sự hỗ trợ từ cộng đồng.

This post was last modified on Tháng Năm 7, 2024 6:57 chiều

Đinh Thái Hoàng

Đinh Thái Hoàng - tác giả của Laptrinhc.edu.vn, chuyên sâu trong lĩnh vực lập trình. Trang web chia sẻ kiến thức, hướng dẫn và tin tức về lập trình, giúp bạn khám phá thế giới mã nguồn và nâng cao kỹ năng coder.

Published by

Bài đăng mới nhất

Tổng hợp app bán hàng online uy tín nhất tại Việt Nam

Tổng hợp app bán hàng online uy tín nhất tại Việt Nam

Khám phá và tận dụng tiềm năng kinh doanh trên nhiều nền tảng là điều…

4 ngày ago

HỌC THIẾT KẾ MOBILE APP Ở ĐÂU UY TÍN?

Mobile App đang trở thành một phần thiết yếu trong cuộc sống hiện đại. Với…

4 ngày ago

Cách phá mật khẩu Windows bằng DLC Boot

Bạn đã bao giờ quên mật khẩu máy tính và không biết phải làm sao?…

4 ngày ago

Cách kiểm tra và cài đặt Driver cho Windows 10 chuẩn nhất

Driver chính là phần mềm giúp hệ điều hành nhận diện phần cứng trên máy…

4 ngày ago

Top 10 công cụ viết phần mềm tốt nhất

Hiện nay, lập trình viên không cần phải thực hiện toàn bộ công việc lập…

4 ngày ago

Những Công Ty Lập Trình Ứng Dụng Cho IOS Hàng Đầu Việt Nam

Lập trình ứng dụng cho iOS không chỉ đơn thuần là một quyết định khó…

4 ngày ago