For trong python và vòng lặp với số lần cụ thể | Laptrinhcanban.com

For trong python và vòng lặp với số lần cụ thể

Hướng dẫn cách sử dụng vòng lặp for trong python. Bạn sẽ học được khái niệm vòng lặp for trong python là gì, cách dùng lệnh for trong vòng lặp với số lần cụ thể, cách thoát khỏi vòng lặp for, cách bỏ qua lượt lặp for hiện tại, cũng như cách xử lý các lệnh sau khi kết thúc lệnh for bằng for else trong python sau bài học này.

Vòng lặp for trong python

For trong python là vòng lặp giúp lặp lại các xử lý trong chương trình với một số lần cụ thể. Khác với các ngôn ngữ lập trình khác như C hay JavaScript vốn sử dụng bộ đếm để quyết định số vòng lặp thì vòng lặp for trong python không sử dụng bộ đếm mà sẽ lặp số lần bằng đúng với số phần tử có trong đối tượng đã chỉ định.

Vòng lặp for trong python bao gồm từ khóa for, một đối tượng có nhiều phần tử, một biến dùng để gán phần tử và một khối gồm các câu lệnh được mô tả trong khối đó. Đối tượng có nhiều phần tử là các iterable trong python như list, range, dictionary v.v..

Chúng ta sử dụng vòng lặp for trong python như sau:

for biến in đối tượng có nhiều phần tử :
    Câu lệnh trong khối

Ví dụ:

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

Các phần tử trong đối tượng được gán vào biến theo thứ tự và được xử lý trong lệnh mô tả trong khối. Nếu bạn muốn thực thi nhiều câu lệnh, hãy viết chúng trong cùng khối For như sau:

for biến in đối tượng có nhiều phần tử :
    Câu lệnh 1
    Câu lệnh 2
    …

Ví dụ:

for num in (1,2,3):
addnum = num + 2
print(addnum)

Lại nữa, trong python, các khối được định nghĩa nhờ các dấu thụt lề đầu dòng. Tất cả các câu lệnh mô tả trong khối đều cần được viết với độ thụt lề giống nhau. Về mặc định, chúng ta sẽ dùng 4 ký tự trắng liên tiếp được tạo ra khi bạn nhấn dấu cách Space trên bàn phím 4 lần , hoặc là một dấu tab được tạo ra khi bạn nhấn phím Tab một lần, để quy định độ thụt lề của khối. Bạn có thể tìm hiểu chi tiết về cách thụt lề tại bài viết Thụt lề trong python.

Để hiểu rõ hơn, chúng ta sẽ thử viết một vòng lặp for trong python đơn giản để in tên các bạn có trong một nhóm bạn ra màn hình như sau:

member_list = ['Hoa', 'Thảo', 'Mai']

for name in member_list:
print(name)

print("\nEnd")
#> Hoa
#> Thảo
#> Mai

#> End

Vòng lặp ở trên sẽ chạy như thế nào? Hãy xem kỹ ở phần miêu tả các xử lý sau đây:

Lượt lặp đầu tiên:

  1. Lấy phần tử đầu tiên trong list (phần tử Hoa) và gán vào biến name
  2. Thực thi lệnh print(name) và in name ra màn hình

Lượt lặp thứ 2:

  1. Lấy phần tử thứ 2 trong list (phần tử Thảo) và gán vào biến name
  2. Thực thi lệnh print(name) và in name ra màn hình

Lượt lặp thứ 3:

  1. Lấy phần tử cuối cùng trong list (phần tử Mai) và gán vào biến name
  2. Thực thi lệnh print(name) và in name ra màn hình.
  3. Đây là phần tử cuối cùng trong list nên thoát khỏi vòng lặp

Ngoài vòng lặp:

  1. Thực thi lệnh print("\nEnd") ngoài vòng lặp và kết thúc chương trình.

Chúng ta có thể khái quát xử lý của lệnh for bằng sơ đồ khối của vòng lặp for trong python như sau:

Vòng lặp for trong python

Một cách tương tự, chúng ta cũng có thể thêm lệnh đếm số thành viên trong nhóm bạn vào khối For như sau:

member_list = ['Hoa', 'Thảo', 'Mai']
member_count = 0

for name in member_list:
print(name)
member_count += 1
print("Số thành viên :",member_count)

#> Hoa
#> Thảo
#> Mai
#> Số thành viên : 3

Bỏ qua lượt lặp hiện tại của vòng lặp for trong python | Lệnh continue

Chúng ta sử dụng lệnh continue để bỏ qua lượt lặp hiện tại của vòng lặp for trong python và thực hiện các lượt lặp kế tiếp. Lệnh for sẽ bỏ qua lượt lặp for hiện tại khi lệnh continue được thực hiện, tất cả các xử lý sau lệnh continue đều bị bỏ qua và chương trình bắt đầu một lượt lặp mới.
Ví dụ, chúng ta bỏ qua lượt lặp trong chương trình in ra màn hình các thành viên trong nhóm tai thời điểm bạn Thảo được gọi tên như sau:

member_list = ['Hoa', 'Thảo', 'Mai']
member_count = 0

for name in member_list:
if name == 'Thảo':
continue
print(name)
member_count += 1

print("Số thành viên :",member_count)

#> Hoa
#> Mai
#> Số thành viên : 2

Ở ví dụ này, sau khi bạn Thảo được gọi tên thì thỏa mãn biểu thức điều kiện trong lệnh if, do đó lệnh continue được thực hiện khiến lệnh for dừng các lệnh còn lại của lượt lặp hiện tại và bắt đầu một lượt lặp mới. Kêt quả chỉ có bạn Hoa và bạn Mai được gọi tên và chỉ 2 thành viên được in ra màn hình mà thôi.

Thoát khỏi vòng lặp for trong python | Lệnh break

Chúng ta sử dụng lệnh break để thoát khỏi vòng lặp for trong python theo điều kiện mà bạn muốn. Lệnh for sẽ dừng lại khi lệnh break được thực hiện, tất cả các xử lý sau lệnh break cũng như các lượt lặp còn lại trong lệnh for đều bị dừng giữa chừng.

Ví dụ, chúng ta dừng chương trình in ra màn hình các thành viên trong nhóm tai thời điểm bạn Thảo được gọi tên như sau:

member_list = ['Hoa', 'Thảo', 'Mai']
member_count = 0

for name in member_list:
if name == 'Thảo':
break
print(name)
member_count += 1

print("Số thành viên :",member_count)

#> Hoa
#> Số thành viên : 1

Ở ví dụ này, sau khi bạn Thảo được gọi tên thì thỏa mãn biểu thức điều kiện trong lệnh if, do đó lệnh break được thực hiện khiến lệnh for bị dừng lại. Kêt quả chỉ có mình bạn Hoa được gọi tên và chỉ 1 thành viên được in ra màn hình mà thôi.

For else trong python

For else trong python là một cấu trúc vòng lặp for trong python được sử dụng để xử lý các câu lệnh sau khi kết thúc lệnh for thông thường.

Ở phần trên chúng ta đã biết Vòng lặp for trong python sẽ lặp lại đúng số lần bằng với số phần tử có trong đối tượng và kết thúc sau khi xử lý phần tử cuối cùng.

Tuy nhiên nếu sau khi thực hiện xong các xử lý với lệnh for mà bạn muốn ghi thêm các xử lý khác sau đó, hãy sử dụng lệnh for else trong python với cú pháp sau đây:

for biến in đối tượng có nhiều phần tử :
    Câu lệnh 1
    Câu lệnh 2
else:
    Câu lệnh 3
    Câu lệnh 4

Về căn bản thì cách sử dụng for else trong python giống với lệnh for trong python. Chỉ đơn giản là sau khi kết thúc câu lệnh for, chương trình sẽ tiến hành xử lý các lệnh tiếp theo mà thôi.

for biến in đối tượng có nhiều phần tử :
    Câu lệnh 1
    Câu lệnh 2


Câu lệnh 3
Câu lệnh 4

Ví dụ, chúng ta viết lại ví dụ in thành viên trong nhóm bạn ra màn hình ở trên bằng for else trong python như sau:

member_list = ['Hoa', 'Thảo', 'Mai']
member_count = 0

for name in member_list:
print(name)
member_count += 1
else:
print("Số thành viên :",member_count)

#> Hoa
#> Thảo
#> Mai
#> Số thành viên : 3

Tuy nhiên bạn cần chú ý, nếu trong vòng lặp for chứa lệnh break thì kết quả sẽ hoàn toàn khác. Lệnh break là lệnh dùng để thoát khỏi vòng lặp, do đó nếu for bị dừng lại thì các lệnh trong khối else cũng sẽ bị dừng theo.
Ví dụ:

member_list = ['Hoa', 'Thảo', 'Mai']
member_count = 0

for name in member_list:
if name == 'Thảo':
break
print(name)
member_count += 1
else:
print("Số thành viên :",member_count)

#> Hoa

Do lệnh for bị dừng tại name == 'Thảo', dẫn theo các lệnh trong khối else cũng bị dừng lại tại đây. Kết quả, lệnh in tổng số thành viên ra màn hình trong khối else không được thực hiện và chỉ có bạn Hoa được gọi tên ra màn hình mà thôi.

Tổng kết

Trên đây Kiyoshi đã hướng dẫn bạn về cách sử dụng vòng lặp for trong python rồi. Để nắm rõ nội dung bài học hơn, bạn hãy thực hành viết lại các ví dụ của ngày hôm nay nhé.

Và hãy cùng tìm hiểu những kiến thức sâu hơn về python trong các bài học tiếp theo.

HOME>> >>

Profile
きよしです!笑

Tác giả : Kiyoshi (Chis Thanh)

Kiyoshi là một cựu du học sinh tại Nhật Bản. Sau khi tốt nghiệp đại học Toyama năm 2017, Kiyoshi hiện đang làm BrSE tại Tokyo, Nhật Bản.