Khái niệm, định nghĩa Vòng lặp for trong Python là gì?

Vòng lặp for là vòng lặp đượ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:

<span class="kwd">for</span><span class="pln"> bien_vong_lap </span><span class="kwd">in</span><span class="pln"> day_sequense</span><span class="pun">:</span><span class="pln">
   cac_lenh</span>

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:

 

<span class="kwd">for</span><span class="pln"> letter </span><span class="kwd">in</span> <b><span class="str">'Python'</span><span class="pun">:</span></b>     <span class="com"># Vi du dau tien</span>
   <span class="kwd">print</span> <span class="str">'Chu cai hien tai :'</span><span class="pun">,</span><span class="pln"> letter

qua </span><span class="pun">=</span> <span class="pun">[</span><span class="str">'chuoi'</span><span class="pun">,</span> <span class="str">'tao'</span><span class="pun">,</span>  <span class="str">'xoai'</span><span class="pun">]</span>
<span class="kwd">for</span><span class="pln"> qua </span><span class="kwd">in</span> <b><span class="pln">qua</span></b><span class="pun">:</span>        <span class="com"># Vi du thu hai</span>
   <span class="kwd">print</span> <span class="str">'Ban co thich an :'</span><span class="pun">,</span><span class="pln"> qua

</span><span class="kwd">print</span> <span class="str">"Good bye!"</span>

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:

<span class="pln"> 

qua </span><span class="pun">=</span> <span class="pun">[</span><span class="str">'chuoi'</span><span class="pun">,</span> <span class="str">'tao'</span><span class="pun">,</span>  <span class="str">'xoai'</span><span class="pun">]</span>
<span class="kwd">for</span><span class="pln"> index </span><span class="kwd">in</span><span class="pln"> range</span><span class="pun">(</span><span class="pln">len</span><span class="pun">(</span><span class="pln">qua</span><span class="pun">)):</span>
   <span class="kwd">print</span> <span class="str">'Ban co thich an :'</span><span class="pun">,</span><span class="pln"> qua</span><span class="pun">[</span><span class="pln">index</span><span class="pun">]</span>

<span class="kwd">print</span> <span class="str">"Good bye!"</span>

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.

 

<span class="kwd">for</span><span class="pln"> num </span><span class="kwd">in</span><span class="pln"> range</span><span class="pun">(</span><span class="lit">10</span><span class="pun">,</span><span class="lit">20</span><span class="pun">):</span>  <span class="com">#de lap tu 10 toi 20</span>
   <span class="kwd">for</span><span class="pln"> i </span><span class="kwd">in</span><span class="pln"> range</span><span class="pun">(</span><span class="lit">2</span><span class="pun">,</span><span class="pln">num</span><span class="pun">):</span> <span class="com">#de lap tren cac thua so cua mot so</span>
      <span class="kwd">if</span><span class="pln"> num</span><span class="pun">%</span><span class="pln">i </span><span class="pun">==</span> <span class="lit">0</span><span class="pun">:</span>      <span class="com">#de xac dinh thua so dau tien</span><span class="pln">
         j</span><span class="pun">=</span><span class="pln">num</span><span class="pun">/</span><span class="pln">i          </span><span class="com">#de uoc luong thua so thu hai</span>
         <span class="kwd">print</span> <span class="str">'%d la bang %d * %d'</span> <span class="pun">%</span> <span class="pun">(</span><span class="pln">num</span><span class="pun">,</span><span class="pln">i</span><span class="pun">,</span><span class="pln">j</span><span class="pun">)</span>
         <span class="kwd">break</span> <span class="com">#de di chuyen toi so tiep theo, la vong FOR dau tien</span>
   <span class="kwd">else</span><span class="pun">:</span>                  <span class="com"># else la mot phan cua vong lap</span>
      <span class="kwd">print</span><span class="pln"> num</span><span class="pun">,</span> <span class="str">'la so nguyen to'</span>

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

Theo vietjack