Page 27 - Python Simple
P. 27
4. Bàn thêm về luồng điều khiển http://www.vithon.org/tutorial/2.5/node6.html
Bài chỉ dẫn Python
4. Bàn thêm về luồng điều khiển
Ngoài câu lệnh while vừa giới thiệu, Python có các câu lệnh điều khiển luồng từ các ngôn ngữ khác, với
chút sửa đổi.
4.1 if câu lệnh
Có lẽ loại câu lệnh biết đến nhiều nhất là câu lệnh if . Ví dụ:
>>> x = int(raw_input("Please enter an integer: "))
>>> if x < 0:
... x = 0
... print 'Negative changed to zero'
... elif x == 0:
... print 'Zero'
... elif x == 1:
... print 'Single'
... else:
... print 'More'
...
Có thể không có hoặc có nhiều phần elif , và phần else là không bắt buộc. Từ khóa `elif' là viết tắt
của `else if', và dùng để tránh thụt vào quá nhiều. Dãy if ... elif ... elif ... dùng thay cho câu lệnh
switch hay case tìm thấy trong các ngôn ngữ khác.
4.2 for câu lệnh
for trong Python khác một chút với C hoặc Pascal. Thay vì lặp qua một dãy số (như trong Pascal), hoặc
cho phép người dùng tự định nghĩa bước lặp và điều kiện dừng (như C), câu lệnh for của Python lặp
qua các phần tử của một dãy bất kỳ (một danh sách, hoặc một chuỗi), theo thứ tự mà chúng xuất hiện
trong dãy. Ví dụ:
>>> # Measure some strings:
... a = ['cat', 'window', 'defenestrate']
>>> for x in a:
... print x, len(x)
...
cat 3
window 6
defenestrate 12
Rất nguy hiểm nếu bạn sửa đổi dãy trong khi bạn đang lặp qua nó. Nếu bạn cần sửa đổi một danh sách
khi đang lặp (ví dụ như để nhân đôi các phần tử nào đó) bạn sẽ cần phải lặp qua một bản sao của nó.
Cách viết cắt miếng làm cho việc này đơn giản:
>>> for x in a[:]: # make a slice copy of the entire list
... if len(x) > 6: a.insert(0, x)
...
>>> a
['defenestrate', 'cat', 'window', 'defenestrate']
4.3 range() hàm
Nếu bạn cần lặp qua một dãy số, hàm có sẵn range() trở nên tiện dụng. Nó tạo ra danh sách chứa các
dãy số học:
>>> range(10)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
1 of 7 08/31/2011 07:39 AM