Cấu trúc điều khiển vòng lặp for trong Python

Đây là bài 11/54 bài của series môn học Ngôn ngữ lập trình Python

1. Vòng lặp for trong Python

Vòng lặp for trong Python giúp duyệt qua các phần tử trong list, set, string,… Cú pháp:

for val in sequence:
    #loop body

Trong đó, val là giá trị của từng phần tử trong sequence (list, set, string,…) được duyệt qua trong mỗi lần lặp. Vòng lặp sẽ tiếp tục cho đến khi chúng ta duyệt đến phần tử cuối cùng trong sequence. Phần thân của vòng lặp for được bắt đầu bằng thụt đầu dòng (indentation).

Ví dụ chương trình Python duyệt qua list, string

# List of numbers
numbers = [6, 5, 3, 8, 4]
print("List Iteration")
for i in numbers:
    print(i)
# String
s = "Gochocit"
print("String Iteration")
for i in s:
    print(i)
Kết quả
List Iteration
6
5
3
8
4
String Iteration
G
o
c
h
o
c
i
t

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

Trong Python, hàm range() được xây dựng sẵn, giúp xác định một dãy số nguyên. Hàm range() thường được sử dụng để xác định số lần lặp cho vòng lặp for. Cú pháp của hàm range():

range(start, stop[, step])

Các tham số của hàm range() đều bắt buộc là số nguyên (integer). Trong đó:

  • start: giá trị bắt đầu của dãy số nguyên. Nếu không chỉ định tham số start thì mặc định start = 0.
  • stop: giá trị xác định kết thúc của dãy số nguyên. Lưu ý: số nguyên cuối cùng của dãy số là stop – 1.
  • step: là một số nguyên xác định khoảng cách giữa các số nguyên trong dãy số. Nếu không chỉ định tham số step thì mặc định step = 1.

Lưu ý: Nếu hàm range() chỉ có 1 đối số thì đối số được truyền vào là stop. Ví dụ:

print("#Result 1:")
# start=0, stop=7, step=1
for i in range(7):
  print(i, end=' ')

print("\n#Result 2:")
# start=1, stop=7, step=1
for j in range(1, 7):
  print(j, end=' ')

print("\n#Result 3:")
# start=1, stop=7, step=2
for k in range(1, 7, 2):
  print(k, end=' ')

print("\n#Result 4:")
# start=1, stop=-10, step=-1
for k in range(1, -10, -1):
  print(k, end=' ')
print("\n#Result 5:")
# start=5, stop=0, step=1
for k in range(5, 0):
  print(k, end=' ')
Kết quả
#Result 1:
0 1 2 3 4 5 6 
#Result 2:
1 2 3 4 5 6
#Result 3:
1 3 5
#Result 4:
1 0 -1 -2 -3 -4 -5 -6 -7 -8 -9
#Result 5:

Chúng ta cũng có thể sử dụng hàm range() để tạo ra một list rồi duyệt các phần tử trong list bằng vòng lặp for. Ví dụ:

print(range(10))

print(list(range(10)))

print(list(range(2, 8)))

print(list(range(2, 20, 3)))

numbers = list(range(5, 9))
print("numers list:")
for i in numbers:
    print(i, end=' ')
Kết quả
range(0, 10)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
[2, 3, 4, 5, 6, 7]
[2, 5, 8, 11, 14, 17]
numers list:
5 6 7 8

Chúng ta còn có thể sử dụng hàm range() để đại diện cho chỉ mục (index) của một list để duyệt các phần tử trong list. Ví dụ:

job = ['teacher', 'singer', 'football player']

# iterate over the list using index
for i in range(len(job)):
    print("I want to be a", job[i])
Kết quả
I want to be a teacher
I want to be a singer
I want to be a football player

3. Vòng lặp for với else

Trong Python, vòng lặp for có thể được sử dụng với else. Khối lệnh của else chỉ thực thi sau khi vòng lặp for thực thi xong. Lưu ý: Trong trường hợp vòng lặp for có câu lệnh break và câu lệnh break làm thoát vòng lặp for thì khối lệnh trong else cũng sẽ không được thực thi.

Ví dụ sử dụng vòng lặp for với else

numbers = [0, 1, 5]

for i in numbers:
    print(i)
else:
    print("That is all in numbers list.")
Kết quả
0
1
5
That is all in numbers list.

Ví dụ sử dụng vòng lặp for có break với else

print("#Result 1")
for i in range(1, 4):
    if(i!=9):
        print(i)
    else:
        break
else:  # Executed because break in for is not executed
    print("No Break")

print("#Result 2")
for i in range(1, 4):
    if(i!=3):
        print(i)
    else:
        break
else:  # Not executed as there is a break is executed
    print("No Break")
Kết quả
#Result 1
1
2
3
No Break
#Result 2
1
2

Trong ví dụ trên, nếu break trong for được thực hiện (làm thoát khỏi vòng lặp for) thì else sẽ không được thực hiện. Còn nếu trong forbreakbreak trong for không thực thi thì else vẫn được thực thi.

5/5 - (1 bình chọn)
Bài trước và bài sau trong môn học<< Cấu trúc điều khiển rẽ nhánh if…else trong PythonCấu trúc điều khiển vòng lặp while trong Python >>
Chia sẻ trên mạng xã hội:

Trả lời

Lưu ý:

1) Vui lòng bình luận bằng tiếng Việt có dấu.

2) Khuyến khích sử dụng tên thật và địa chỉ email chính xác.

3) Mọi bình luận trái quy định sẽ bị xóa bỏ.