Vòng lặp for được sử dụng để lặp một biến qua một dãy (List hoặc String) theo thứ tự mà chúng xuất hiện.
Sau đây là cú pháp của vòng lặp for:
for bien_vong_lap in day_sequense: cac_lenh
Nếu một dãy day_sequense gồm một danh sách các biểu thức, nó được ước lượng đầu tiên. Sau đó, item đầu tiên trong dãy được gán cho biến vòng lặp bien_vong_lap. Tiếp theo, các khối lệnh cac_lenh được thực thi và khối lệnh này được thực thi tới khi dãy này đã được lặp xong.
Dưới đây là ví dụ minh họa vòng lặp for trong Python:
for letter in <b>'Python':</b> # Vi du dau tien print 'Chu cai hien tai :', letter qua = ['chuoi', 'tao', 'xoai'] for qua in <b>qua</b>: # Vi du thu hai print 'Ban co thich an :', qua print "Good bye!"
Khi code trên được thực thi sẽ cho kết quả:
Chu cai hien tai : P Chu cai hien tai : y Chu cai hien tai : t Chu cai hien tai : h Chu cai hien tai : o Chu cai hien tai : n Ban co thich an : chuoi Ban co thich an : tao Ban co thich an : xoai Good bye!
Lặp qua index của dãy
Một cách khác để lặp qua mỗi item là bởi chỉ mục index bên trong dãy đó. Bạn theo dõi ví dụ đơn giản sau:
qua = ['chuoi', 'tao', 'xoai'] for index in range(len(qua)): print 'Ban co thich an :', qua[index] print "Good bye!"
Khi code trên được thực thi sẽ cho kết quả:
Ban co thich an : chuoi Ban co thich an : tao Ban co thich an : xoai Good bye!
Ở đây, chúng ta sử dụng hàm len(), có sẵn trong Python, để cung cấp tổng số phần tử trong tuple cũng như hàm range() để cung cấp cho chúng ta dãy thực sự để lặp qua đó.
Sử dụng lệnh else với vòng lặp for trong Python
Python cho phép bạn có một lệnh else để liên hợp với một lệnh vòng lặp. Với vòng lặp for, lệnh else được thực thi khi vòng lặp đã lặp qua hết các phần tử trong list.
Ví dụ sau minh họa sự kết hợp của một lệnh else với một lệnh for để tìm kiếm các số nguyên tố từ 10 tới 20.
for num in range(10,20): #de lap tu 10 toi 20 for i in range(2,num): #de lap tren cac thua so cua mot so if num%i == 0: #de xac dinh thua so dau tien j=num/i #de uoc luong thua so thu hai print '%d la bang %d * %d' % (num,i,j) break #de di chuyen toi so tiep theo, la vong FOR dau tien else: # else la mot phan cua vong lap print num, 'la so nguyen to'
Khi code trên được thực thi sẽ cho kết quả:
10 la bang 2 * 5 11 la so nguyen to 12 la bang 2 * 6 13 la so nguyen to 14 la bang 2 * 7 15 la bang 3 * 5 16 la bang 2 * 8 17 la so nguyen to 18 la bang 2 * 9 19 la so nguyen to