Vòng lặp for trong Python



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 'Python':     # Vi du dau tien
   print 'Chu cai hien tai :', letterqua = ['chuoi', 'tao',  'xoai']
for qua in qua:        # Vi du thu hai
   print 'Ban co thich an :', quaprint "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

vong_lap_trong_python.jsp