Cách chúng ta điều khiển việc thực thi các lệnh trong chương trình được gọi là điều khiển luồng. Vì việc kiểm soát luồng thực thi mã có thể có tác động lập trình đáng kể, nên các thuật toán tính toán là sự kết hợp của các lệnh và thứ tự thực thi chúng. Nếu không biết cách kiểm soát cách mã của bạn thực thi, bạn sẽ không hoàn thành được nhiều việc với tư cách là một lập trình viên
Tình trạng kiểm soát dòng chảy đã trải qua một chặng đường dài kể từ ngày goto
. Có rất nhiều mẫu thực thi phổ biến có sẵn trong phần lớn các ngôn ngữ lập trình hiện đại, mặc dù cú pháp của chúng khác nhau giữa các ngôn ngữ. Python có bộ điều khiển luồng riêng, nhìn chung khá dễ đọc và đó là điều mà trang phục mới nhất của chúng tôi tập trung vào
Sẵn sàng học kiểm soát luồng và có tài liệu tham khảo hữu ích trong quá trình chinh phục thế giới mã hóa
Bạn có thể tải cheatsheet tại đây
Bảng kiểm soát luồng Python
Hướng dẫn bảng tham khảo nhanh mới của chúng tôi sẽ cung cấp cho bạn hiểu biết về cách triển khai kiểm soát luồng trong Python. Tài nguyên này sẽ cung cấp một cái nhìn tổng quan và tài liệu tham khảo nhanh cho
- Toán tử so sánh
- Toán tử Boolean
- Tuyên bố
if
- Toán tử có điều kiện bậc ba
- Vòng lặp
while
- Vòng lặp
for
Kiểm soát luồng là một trong những khía cạnh chính của lập trình và do đó, mọi lập trình viên tham vọng cần phải thành thạo nó. Nghịch lý thay, cú pháp chính xác của một số lệnh và cấu trúc thường được sử dụng này thường cần được kiểm tra bởi các lập trình viên, ngay cả khi họ tiến xa hơn trong sự nghiệp của mình. Tờ hướng dẫn này vừa cung cấp thông tin bạn cần để học nhanh các chiến lược này, vừa cung cấp tài liệu tham khảo để sử dụng trong tương lai
Trong các hàm python theo mặc định được thực thi theo thứ tự chúng xuất hiện. Tuy nhiên, nếu bạn gọi chúng theo một thứ tự khác, chúng sẽ thực hiện như vậy. Vì vậy, trong ví dụ của bạn
def a[]:
print['a']
def b[]:
print['b']
b[]
a[]
thì b[]
sẽ thực thi trước a[]
Python thực hiện các công cụ trang trí theo thứ tự nào? . 4] và bây giờ [2. 7]
Đưa ra mã
@foo @bar @baz def myfunc[]: pass
Người trang trí gọi món là baz -> bar -> foo
, hay là foo -> bar -> baz
?
Trình thông dịch Python đọc một chương trình giống như bạn đang đọc trang này. từng dòng một, từ trái sang phải và từ trên xuống dưới. Trình thông dịch thực hiện các thao tác và chức năng theo thứ tự mà nó gặp phải. Đây được gọi là luồng điều khiển hoặc luồng thực thi. Không giống như trình thông dịch Python, khi chúng ta đọc một cái gì đó và gặp một từ mà chúng ta không hiểu, chúng ta không hoảng sợ và tắt máy [thường là vậy]. Chúng tôi tiếp tục đọc và đoán định nghĩa của từ dựa trên ngữ cảnh hoặc tạm dừng và tham khảo từ điển. Trình thông dịch Python không linh hoạt lắm. Bạn không thể gọi một chức năng trước khi xác định nó. Trình thông dịch cần biết chức năng đó là gì và làm gì trước khi gặp chức năng đó
Viết hàm Python. Chảy
Ví dụ chương trình sau too_soon. py
too_soon[]
def too_soon[]:
print["Don't put the cart before the aardvark"]
…sẽ trả về lỗi này
Traceback [most recent call last]:
File "too_soon.py", line 1, in
too_soon[]
NameError: name 'too_soon' is not defined
Khi chúng ta gọi một hàm, hàm này sẽ đọc các đối số của chúng ta, từng đối số một, từ trái sang phải. Sau đó, nó xử lý các giá trị đối số và khi hoàn thành, nó sẽ trả về một giá trị. Hãy thử cách sau, trong một chương trình có tên là lưu lượng. py
def flow[left, right]:
print[right]
print[left]
flow[“[^_-]”, “[-_^]”]
Trong ví dụ trên, mặc dù chúng ta đã truyền biến 'left' trước, hàm của chúng ta in 'right' trước vì đó là thứ tự mà chúng ta gọi nó
Viết hàm Python. Phạm vi
Hãy tưởng tượng chương trình Python của bạn là thế giới [Xin chào thế giới] và chức năng của bạn là nhóm bạn của bạn. Một trong những quy ước của lập trình là khai báo các biến ở đầu chương trình của bạn. Các biến này là toàn cầu. Bất kỳ biến nào được khai báo trong một hàm là cục bộ. Các biến toàn cục có thể truy cập bên trong hoặc bên ngoài một hàm, nhưng các biến cục bộ chỉ có thể truy cập bên trong hàm nơi chúng được khai báo. Biến toàn cục giống như tin tức hoặc kiến thức chung. mọi người đều biết tên của tổng thống Hoa Kỳ. Các biến cục bộ giống như bí mật và trò đùa bên trong. chỉ có bạn và bạn bè của bạn hiểu họ; . Đây được gọi là phạm vi. Một biến có thể truy cập bởi bất kỳ chức năng nào trong chương trình có phạm vi toàn cầu. Một biến chỉ có thể truy cập bên trong một hàm có phạm vi cục bộ. Hãy viết một chương trình, thư mời. py
global_variable = "Today is August 4th."
def party[]:
local_variable = “Today is my birthday!”
print[global_variable]
print[local_variable]
party[]
print[global_variable]
print[local_variable]
Điều này sẽ trả về lỗi sau
Traceback [most recent call last]:
File "invitation.py", line 10, in
print[local_variable]
NameError: name 'local_variable' is not defined
Thay đổi dòng 10 thành thứ gì đó thú vị và chạy lại chương trình
global_variable = “Today is August 4th.”
def party[]:
local_variable = “Today is my birthday!”
print[global_variable]
print[local_variable]
party[]
print[global_variable]
print["It's my party and I'll DRY if I want to..."]
Khi tôi gọi hàm party[], bạn bè của tôi biết rằng đó là cả ngày 4 tháng 8 và sinh nhật của tôi. Gọi biến toàn cục bên ngoài hàm party trả về ngày 4 tháng 8, bởi vì mọi người đều có quyền truy cập vào ngày đó. Nhưng việc gọi biến cục bộ bên ngoài hàm party[] sẽ trả về lỗi vì không ai bên ngoài hàm party[] biết đó là sinh nhật của tôi