While loops qua các chỉ mục
Viết một while loop cái lặp qua các chỉ mục string không khác so với viết loại while
loop khác. Chúng ta chỉ cần đưa vào độ dài string. Sau đây là làm cách nào chúng ta có
thể lặp qua mỗi kí tự của một string từ trái qua phải.
>>> s = ‘zephyr’
>>> i = 0
1>>> while i < len(s):… print(‘We have ‘ + s[i])
… i = i + 1
…We have z
We have e
We have p
We have h
We have y
We have r
Biến i cho phép chúng ta truy cập mỗi kí tự của string. Nó bắt đầu tại 0 và tăng lên một
mỗi lần lặp qua loop.
Tôi sử dụng < trong biểu thức Boolean của loop 1 để tiếp tục miễn là chúng ta chưa đi đến
độ dài của string. Nếu tôi sử dụng <= thay vì <, chúng ta sẽ nhận một IndexError:
>>> i = 0
>>> while i <= len(s):… print(‘We have ‘ + s[i])
… i = i + 1
…We have z
We have e
We have p
We have h
We have y
We have r
Traceback (most recent call last):
File “<stdin>”, line 2, in <module>
IndexError: string index out of range
Độ dài của string là 6. Chúng ta nhận lỗi này vì loop cố gắng truy cập s[6], cái không là một
chỉ mục có hiệu lực trong string.
Muốn lặp qua string nhảy ba kí tự một lúc thay vì một? Không vấn đề gì, chỉ tăng i theo 3 thay
vì 1:
>>> i = 0
>>> while i < len(s):… print(‘We have ‘ + s[i])
… i = i + 3
…We have z
We have h