Vòng lặp for trong Python
Vòng lặp for có khả năng lặp lại qua các phần tử của bất kỳ chuỗi nào, ví dụ như danh sách hoặc chuỗi.
Cú pháp của vòng lặp for trong Python là:
for iterating_var in sequence:
statements(s)
Nếu một chuỗi chứa một danh sách biểu thức, nó sẽ được đánh giá trước. Sau đó, phần tử đầu tiên trong chuỗi được gán cho biến lặp iterating_var. Tiếp theo, khối câu lệnh được thực thi. Mỗi phần tử trong danh sách được gán cho iterating_var, và khối câu lệnh được thực thi cho đến khi toàn bộ chuỗi đã được lặp qua.
Sơ đồ luồng
Sơ đồ luồng của vòng lặp for trong Python như sau:
Ví dụ
for letter in 'Python': # First Example
print 'Current Letter :', letter
fruits = ['banana', 'apple', 'mango']
for fruit in fruits: # Second Example
print 'Current fruit :', fruit
print "Good bye!"
Kết quả khi chạy đoạn chương trình trên:
Current Letter : P
Current Letter : y
Current Letter : t
Current Letter : h
Current Letter : o
Current Letter : n
Current fruit : banana
Current fruit : apple
Current fruit : mango
Good bye!
Lặp lại bằng chỉ số chuỗi
Một cách thay thế để lặp qua từng phần tử là bằng chỉ số. Sau đây là một ví dụ đơn giản.
fruits = ['banana', 'apple', 'mango']
for index in range(len(fruits)):
print 'Current fruit :', fruits[index]
print "Good bye!"
Kết quả khi chạy đoạn chương trình trên:
Current fruit : banana
Current fruit : apple
Current fruit : mango
Good bye!
Ở đây, chúng tôi sử dụng hàm tích hợp sẵn len() để cung cấp tổng số phần tử trong tuple cũng như hàm tích hợp sẵn range() để cung cấp cho chúng tôi chuỗi thực tế để lặp qua.
Sử dụng câu lệnh else với vòng lặp for
Python hỗ trợ sử dụng câu lệnh else với câu lệnh vòng lặp.
Nếu câu lệnh else được sử dụng với vòng lặp for, câu lệnh else được thực thi khi vòng lặp đã kết thúc lặp qua danh sách.
Ví dụ sau minh họa việc kết hợp câu lệnh else với một câu lệnh for tìm kiếm số nguyên tố từ 10 đến 19.
for num in range(10, 20): # Lặp qua các số từ 10 đến 19
for i in range(2, num):# Lặp qua các ước của số đó, từ 2 đến num-1
if num%i == 0:# Nếu số đó chia hết cho i
j=num/i # Tìm thừa số
print '%d = %d * %d' % (num,i,j) # In ra kết quả
break # Thoát khỏi vòng lặp này để xét số tiếp theo
else: # Nếu số không chia hết cho bất kỳ i nào, nó là số nguyên tố
print num, 'là số nguyên tố'
break # Thoát khỏi vòng lặp này để xét số tiếp theo
Kết quả khi chạy đoạn chương trình trên:
10 = 2 * 5
11 là số nguyên tố
12 = 2 * 6
13 là số nguyên tố
14 = 2 * 7
15 = 3 * 5
16 = 2 * 8
17 là số nguyên tố
18 = 2 * 9
19 là số nguyên tố
Bình luận