Python 3 - Vòng lặp
Nói chung, các câu lệnh được thực hiện tuần tự - Câu lệnh đầu tiên trong một hàm được thực hiện trước tiên, tiếp theo là câu lệnh 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.
Các 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 lặp cho phép chúng ta thực hiện một câu lệnh hoặc một nhóm câu lệnh nhiều lần. Sơ đồ sau minh họa một câu lệnh lặp:
Ngôn ngữ lập trình Python cung cấp các loại vòng lặp sau để xử lý các yêu cầu lặp.
Sr.No. | Loại vòng lặp & Mô tả |
---|---|
1 | trong khi lặp lại
Lặp lại một câu lệnh hoặc một nhóm câu lệnh trong khi một điều kiện đã cho là ĐÚNG. Nó kiểm tra điều kiện trước khi thực thi phần thân của vòng lặp. |
2 | vòng lặp for
Thực thi 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ỳ vòng lặp while hoặc for khác. |
Tuyên bố kiểm soát vòng lặp
Các câu lệnh điều khiển vòng lặp thay đổi việc thực thi từ trình tự bình thường của nó. Khi việc thực thi rời khỏi một phạm vi, tất cả các đối tượng tự động được tạo trong phạm vi đó sẽ bị phá hủy.
Python hỗ trợ các câu lệnh điều khiển sau.
Sr.No. | Tuyên bố & Mô tả Kiểm soát |
---|---|
1 |
tuyên bố ngắt
Kết thúc câu lệnh vòng lặp và chuyển việc thực thi câu lệnh ngay sau vòng lặp. |
2 |
tiếp tục tuyên bố
Làm cho 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 |
câu lệnh vượt qua
Câu lệnh pass trong Python được sử dụng khi một câu lệnh được yêu cầu về mặt cú pháp nhưng bạn không muốn bất kỳ lệnh hoặc mã nào thực thi. |
Chúng ta hãy xem qua các câu lệnh điều khiển vòng lặp một cách ngắn gọn.
Trình tạo lặp và Trình tạo
Iteratorlà một đối tượng cho phép lập trình viên duyệt qua tất cả các phần tử của một tập hợp, bất kể việc triển khai cụ thể của nó là gì. Trong Python, một đối tượng trình vòng lặp thực hiện hai phương thức,iter() và next().
Các đối tượng String, List hoặc Tuple có thể được sử dụng để tạo một Iterator.
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
!usr/bin/python3
for x in it:
print (x, end=" ")
or using next() function
while True:
try:
print (next(it))
except StopIteration:
sys.exit() #you have to import sys module for this
A generator là một hàm tạo ra hoặc mang lại một chuỗi giá trị bằng cách sử dụng phương pháp lợi nhuận.
Khi một hàm tạo được gọi, nó sẽ trả về một đối tượng tạo mà không cần bắt đầu thực hiện hàm. Khi phương thức next () đượ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 lợi nhuận, câu lệnh này sẽ trả về giá trị được tạo ra. Lợi nhuận 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 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()