Nói chung, các câu lệnh được thực thi tuần tự - câu lệnh đầu tiên trong một hàm được thực thi đầu tiên, theo sau là thứ hai, v.v. Có thể có một tình huống khi bạn cần thực thi một khối mã nhiều lần.
Ngôn ngữ lập trình cung cấp các cấu trúc điều khiển khác nhau cho phép các đường dẫn thực thi phức tạp hơn.
Một câu lệnh LOOP cho phép chúng tôi thực thi một câu lệnh hoặc nhóm các câu lệnh nhiều lần. Biểu đồ sau đây minh họa một câu lệnh vòng lặp -
Ngôn ngữ lập trình Python cung cấp các loại vòng sau để xử lý các yêu cầu vòng lặp.
1 | trong khi lặp lại Lặp lại một tuyên bố hoặc nhóm các câu lệnh trong khi một điều kiện nhất định là đúng. Nó kiểm tra điều kiện trước khi thực hiện thân vòng. |
2 | cho vòng lặp Thực hiện một chuỗi các câu lệnh nhiều lần và viết tắt mã quản lý biến vòng lặp. |
3 | vòng lồng nhau Bạn có thể sử dụng một hoặc nhiều vòng lặp bên trong bất kỳ trong khi khác hoặc cho vòng lặp. |
Các câu lệnh điều khiển vòng lặp
Các câu lệnh điều khiển vòng thay đổi thực thi từ trình tự bình thường của nó. Khi việc thực thi rời khỏi phạm vi, tất cả các đối tượng tự động được tạo trong phạm vi đó bị phá hủy.
Python hỗ trợ các câu lệnh kiểm soát sau.
1 | Tuyên bố phá vỡ Chấm dứt câu lệnh LOOP và chuyển thực thi sang câu lệnh ngay sau vòng lặp. |
2 | Tiếp tục tuyên bố Khiến vòng lặp bỏ qua phần còn lại của cơ thể và ngay lập tức kiểm tra lại tình trạng của nó trước khi nhắc lại. |
3 | Tuyên bố vượt qua Câu lệnh PASS trong Python được sử dụng khi bắt buộc một câu lệnh được yêu cầu nhưng bạn không muốn bất kỳ lệnh hoặc mã nào được thực thi. |
Hãy để chúng tôi đi qua các câu lệnh kiểm soát vòng lặp một cách ngắn gọn.
Tererator và máy phát điện
Iterator là một đối tượng cho phép một lập trình viên đi qua tất cả các yếu tố của một bộ sưu tập, bất kể việc thực hiện cụ thể của nó. Trong Python, một đối tượng Iterator thực hiện hai phương thức, iter [] và next []. is an object which allows a programmer to traverse through all the elements of a collection, regardless of its specific implementation. In Python, an iterator object implements two methods, iter[] and next[].
Chuỗi, danh sách hoặc đối tượng Tuple có thể được sử dụng để tạo trình lặp.
#!/usr/bin/python3 import sys list = [1,2,3,4] it = iter[list] # this builds an iterator object print [next[it]] #prints next available element in iterator #Iterator object can be traversed using regular for statement for x in it: print [x, end=" "] #or using next[] function while True: try: print [next[it]] except StopIteration: sys.exit[]
Trình tạo là một hàm tạo hoặc mang lại một chuỗi các giá trị bằng phương pháp năng suất.generator is a function that produces or yields a sequence of values using yield method.
Khi một hàm trình tạo được gọi, nó sẽ trả về một đối tượng Trình tạo mà không cần bắt đầu thực thi hàm. Khi phương thức tiếp theo [] được gọi lần đầu tiên, hàm bắt đầu thực thi cho đến khi nó đạt đến câu lệnh năng suất, trả về giá trị mang lại. Lợi suất theo dõi, tức là ghi nhớ lần thực hiện cuối cùng và cuộc gọi tiếp theo [] thứ hai tiếp tục từ giá trị trước đó.
Thí dụ
Ví dụ sau đây xác định một trình tạo, tạo ra một trình lặp cho tất cả các số fibonacci.
#!usr/bin/python3 import sys def fibonacci[n]: #generator function a, b, counter = 0, 1, 0 while True: if [counter > n]: return yield a a, b = b, a + b counter += 1 f = fibonacci[5] #f is iterator object while True: try: print [next[f], end=" "] except StopIteration: sys.exit[]
Cho các vòng lặp
Có hai cách để tạo các vòng lặp trong Python: với vòng lặp và vòng lặp trong khi.
Khi nào tôi sử dụng cho các vòng lặp
Đối với các vòng lặp được sử dụng khi bạn có một khối mã mà bạn muốn lặp lại một số lần cố định. Vòng lặp for luôn được sử dụng kết hợp với một đối tượng có thể lặp lại, như một danh sách hoặc một phạm vi. Python cho câu lệnh lặp lại các thành viên của một chuỗi theo thứ tự, thực hiện khối mỗi lần. Tương phản câu lệnh cho vòng lặp '' '' ', được sử dụng khi một điều kiện cần được kiểm tra từng lần lặp hoặc để lặp lại một khối mã mãi mãi. Ví dụ:fixed number of times. The for-loop is always used in combination with an iterable object, like a list or a range. The Python for statement iterates over the members of a sequence in order, executing the block each time. Contrast the for statement with the ''while'' loop, used when a condition needs to be checked each iteration or to repeat a block of code forever. For example:
Đối với vòng lặp từ 0 đến 2, do đó chạy 3 lần.
for x in range[0, 3]: print["We're on time %d" % [x]]
Trong khi vòng lặp từ 1 đến vô cực, do đó chạy mãi mãi.
x = 1 while True: print["To infinity and beyond! We're getting close, on %d now!" % [x]] x += 1
Khi chạy ví dụ trên, bạn có thể dừng chương trình bằng cách nhấn Ctrl+C cùng một lúc. Như bạn có thể thấy, các cấu trúc vòng lặp này phục vụ các mục đích khác nhau. Vòng lặp chạy chạy trong một số lần cố định, trong khi vòng lặp chạy cho đến khi điều kiện vòng lặp thay đổi. Trong ví dụ này, điều kiện là sự thật Boolean sẽ không bao giờ thay đổi, vì vậy nó sẽ chạy mãi mãi.
Họ làm việc như thế nào?
Nếu bạn đã thực hiện bất kỳ chương trình nào trước đây, bạn chắc chắn đã bắt gặp một vòng lặp hoặc tương đương với nó. Nhiều ngôn ngữ có điều kiện trong cú pháp của vòng lặp cho vòng lặp của chúng, chẳng hạn như biểu thức quan hệ để xác định xem vòng lặp có được thực hiện hay không và biểu thức tăng để xác định giá trị vòng lặp tiếp theo. Trong Python, điều này được kiểm soát thay thế bằng cách tạo ra chuỗi thích hợp. Về cơ bản, bất kỳ đối tượng nào có phương pháp có thể lặp lại có thể được sử dụng trong một vòng lặp. Ngay cả các chuỗi, mặc dù không có một phương pháp có thể lặp lại - nhưng chúng tôi sẽ không nhận được điều đó ở đây. Có một phương pháp có thể lặp lại về cơ bản có nghĩa là dữ liệu có thể được trình bày ở dạng danh sách, trong đó có nhiều giá trị theo cách có trật tự. Bạn có thể xác định các phép lặp của riêng bạn bằng cách tạo một đối tượng với các phương thức tiếp theo [] và iter []. Điều này có nghĩa là bạn hiếm khi được xử lý các số thô khi nói đến các vòng lặp trong Python - tuyệt vời cho bất cứ ai!
Vòng lồng nhau
Khi bạn có một khối mã bạn muốn chạy x số lần, thì một khối mã trong mã đó mà bạn muốn chạy số lần, bạn sử dụng cái được gọi là "vòng lặp lồng nhau". Trong Python, chúng được sử dụng nhiều bất cứ khi nào ai đó có danh sách các danh sách - một đối tượng có thể lặp lại trong một đối tượng có thể lặp lại.x number of times, then a block of code within that code which you want to run y number of times, you use what is known as a "nested loop". In Python, these are heavily used whenever someone has a list of lists - an iterable object within an iterable object.
for x in range[1, 11]: for y in range[1, 11]: print['%d * %d = %d' % [x, y, x*y]]
- Lối thoát sớm
Giống như vòng lặp trong khi vòng lặp cho vòng lặp để thoát trước khi đối tượng đã cho kết thúc. Điều này được thực hiện bằng cách sử dụng câu lệnh break, sẽ ngay lập tức bỏ ra khỏi vòng lặp và tiếp tục thực hiện ở câu lệnh đầu tiên sau khối. Bạn cũng có thể có một mệnh đề tùy chọn khác, sẽ chạy nếu Loop thoát sạch - nghĩa là không bị phá vỡ.
for x in range[3]: if x == 1: break
Ví dụ
Cho..else
for x in range[3]: print[x] else: print['Final x = %d' % [x]]
Chuỗi như một điều đáng tin cậy
string = "Hello World" for x in string: print[x]
Danh sách là một điều đáng tin cậy
collection = ['hey', 5, 'd'] for x in collection: print[x]
Loop qua danh sách danh sách
list_of_lists = [ [1, 2, 3], [4, 5, 6], [7, 8, 9]] for list in list_of_lists: for x in list: print[x]
Tạo ra sự khác biệt của riêng bạn
#!usr/bin/python3 import sys def fibonacci[n]: #generator function a, b, counter = 0, 1, 0 while True: if [counter > n]: return yield a a, b = b, a + b counter += 1 f = fibonacci[5] #f is iterator object while True: try: print [next[f], end=" "] except StopIteration: sys.exit[]0
Trình tạo phạm vi của riêng bạn bằng cách sử dụng năng suất
#!usr/bin/python3 import sys def fibonacci[n]: #generator function a, b, counter = 0, 1, 0 while True: if [counter > n]: return yield a a, b = b, a + b counter += 1 f = fibonacci[5] #f is iterator object while True: try: print [next[f], end=" "] except StopIteration: sys.exit[]1
Một ghi chú trên `Range`
Hàm '' phạm vi '' được nhìn thấy thường xuyên trong các câu lệnh mà bạn có thể nghĩ rằng phạm vi là một phần của cú pháp. Nó không phải là: nó là một hàm tích hợp python trả về một chuỗi theo một mẫu cụ thể [thường là các số nguyên tuần tự], do đó đáp ứng yêu cầu cung cấp một chuỗi cho câu lệnh để lặp lại. Vì đối với có thể hoạt động trực tiếp trên các chuỗi, thường không cần phải đếm. Đây là một cấu trúc người mới bắt đầu phổ biến [nếu chúng đến từ một ngôn ngữ khác với cú pháp vòng lặp khác nhau]:
#!usr/bin/python3 import sys def fibonacci[n]: #generator function a, b, counter = 0, 1, 0 while True: if [counter > n]: return yield a a, b = b, a + b counter += 1 f = fibonacci[5] #f is iterator object while True: try: print [next[f], end=" "] except StopIteration: sys.exit[]2
Nó có thể được thay thế bằng điều này:
#!usr/bin/python3 import sys def fibonacci[n]: #generator function a, b, counter = 0, 1, 0 while True: if [counter > n]: return yield a a, b = b, a + b counter += 1 f = fibonacci[5] #f is iterator object while True: try: print [next[f], end=" "] except StopIteration: sys.exit[]3
Hãy xem xét cho & nbsp; var & nbsp; in & nbsp; phạm vi [len [cái gì đó]]: là một lá cờ cho mã hóa python không tối ưu.
Nhiêu tai nguyên hơn
Nếu bạn muốn tìm hiểu thêm, hãy thử các liên kết này:
Python.org Docs
Python cho vòng lặp và trong khi hướng dẫn vòng lặp với các ví dụ mã tương tác