Có, đó là một xấp xỉ tốt về cách thực hiện cấu trúc vòng lặp
for val in sequence:
loop body
2. Nó chắc chắn phù hợp với tài liệu câu lệnh
for val in sequence:
loop body
2 Loop:Danh sách biểu thức được đánh giá một lần; Nó sẽ mang lại một đối tượng có thể lặp lại. Một trình lặp được tạo ra cho kết quả của
4. Bộ bộ sau đó được thực hiện một lần cho mỗi mục được cung cấp bởi trình lặp, theo thứ tự được trả về bởi trình lặp. Mỗi mục lần lượt được gán cho danh sách đích bằng cách sử dụng các quy tắc tiêu chuẩn cho các bài tập [xem các câu lệnh gán], và sau đó bộ được thực thi. Khi các mục đã cạn kiệt [ngay lập tức khi chuỗi trống hoặc một trình lặp lại sẽ tăng ngoại lệfor val in sequence: loop body
5], bộ trong mệnh đềfor val in sequence: loop body
6, nếu có, được thực thi và vòng lặp chấm dứt.for val in sequence: loop body
Bạn chỉ bỏ lỡ được gán cho danh sách mục tiêu bằng cách sử dụng các quy tắc tiêu chuẩn cho phần bài tập; Bạn sẽ phải sử dụng
for val in sequence:
loop body
7 và
for val in sequence:
loop body
8 thay vì in trực tiếp kết quả của cuộc gọi
for val in sequence:
loop body
9.Mã nguồn Python được biên dịch thành mã byte, mà vòng thông báo sau đó thực thi. Bạn có thể xem mã byte cho vòng lặp
for val in sequence:
loop body
2 bằng cách sử dụng mô -đun # Program to find the sum of all numbers stored in a list
# List of numbers
numbers = [6, 5, 3, 8, 4, 2, 5, 4, 11]
# variable to store the sum
sum = 0
# iterate over the list
for val in numbers:
sum = sum+val
print["The sum is", sum]
1:>>> import dis
>>> dis.dis['for i in mylist: pass']
1 0 SETUP_LOOP 12 [to 14]
2 LOAD_NAME 0 [mylist]
4 GET_ITER
>> 6 FOR_ITER 4 [to 12]
8 STORE_NAME 1 [i]
10 JUMP_ABSOLUTE 6
>> 12 POP_BLOCK
>> 14 LOAD_CONST 0 [None]
16 RETURN_VALUE
Các opcode khác nhau được đặt tên được ghi trong cùng một mô -đun
# Program to find the sum of all numbers stored in a list
# List of numbers
numbers = [6, 5, 3, 8, 4, 2, 5, 4, 11]
# variable to store the sum
sum = 0
# iterate over the list
for val in numbers:
sum = sum+val
print["The sum is", sum]
1 và việc triển khai của chúng có thể được tìm thấy trong vòng đánh giá CPython [tìm các mục tiêu chuyển đổi ____23]; Các opcodes ở trên bị phá vỡ để:
4 đánh dấu sự khởi đầu của bộ, một khối các câu lệnh, do đó, thông dịch viên biết nơi sẽ nhảy vào trường hợp# Program to find the sum of all numbers stored in a list # List of numbers numbers = [6, 5, 3, 8, 4, 2, 5, 4, 11] # variable to store the sum sum = 0 # iterate over the list for val in numbers: sum = sum+val print["The sum is", sum]
5, và những gì dọn dẹp cần phải được thực hiện trong trường hợp ngoại lệ hoặc tuyên bố# Program to find the sum of all numbers stored in a list # List of numbers numbers = [6, 5, 3, 8, 4, 2, 5, 4, 11] # variable to store the sum sum = 0 # iterate over the list for val in numbers: sum = sum+val print["The sum is", sum]
6; Opcode dọn dẹp được đặt 12 byte mã byte sau mã hóa này [vì vậy# Program to find the sum of all numbers stored in a list # List of numbers numbers = [6, 5, 3, 8, 4, 2, 5, 4, 11] # variable to store the sum sum = 0 # iterate over the list for val in numbers: sum = sum+val print["The sum is", sum]
7 ở đây].# Program to find the sum of all numbers stored in a list # List of numbers numbers = [6, 5, 3, 8, 4, 2, 5, 4, 11] # variable to store the sum sum = 0 # iterate over the list for val in numbers: sum = sum+val print["The sum is", sum]
8 tải giá trị biến# Program to find the sum of all numbers stored in a list # List of numbers numbers = [6, 5, 3, 8, 4, 2, 5, 4, 11] # variable to store the sum sum = 0 # iterate over the list for val in numbers: sum = sum+val print["The sum is", sum]
9, đặt nó lên đỉnh của ngăn xếp [TOS trong các mô tả opcode].# Program to find the sum of all numbers stored in a list # List of numbers numbers = [6, 5, 3, 8, 4, 2, 5, 4, 11] # variable to store the sum sum = 0 # iterate over the list for val in numbers: sum = sum+val print["The sum is", sum]
The sum is 48
0 gọiThe sum is 48
1 trên đối tượng trên ĐKDV, sau đó thay thế các ĐKDV bằng kết quả.The sum is 48
2 gọi
9 trên trình lặp TOS. Nếu điều đó cho kết quả, thì đó là điều được đẩy vào ĐKDV. Nếu có ngoại lệfor val in sequence: loop body
5, thì bộ lặp được xóa khỏi TOS và 4 byte mã byte được bỏ qua opcodefor val in sequence: loop body
7.# Program to find the sum of all numbers stored in a list # List of numbers numbers = [6, 5, 3, 8, 4, 2, 5, 4, 11] # variable to store the sum sum = 0 # iterate over the list for val in numbers: sum = sum+val print["The sum is", sum]
The sum is 48
6 lấy TOS và đặt nó vào biến được đặt tên, ở đây làThe sum is 48
7.The sum is 48
8 đánh dấu phần cuối của thân vòng; Nó bảo người phiên dịch quay lại mã Bytecet 6, theo lệnhThe sum is 48
9 ở trên. Nếu chúng ta đã làm một điều thú vị trong vòng lặp, thì điều đó sẽ xảy ra sau
0, trướcprint[range[10]] print[list[range[10]]] print[list[range[2, 8]]] print[list[range[2, 20, 3]]]
1.print[range[10]] print[list[range[10]]] print[list[range[2, 8]]] print[list[range[2, 20, 3]]]
7 Xóa sổ sách kế toán khối được thiết lập bởi# Program to find the sum of all numbers stored in a list # List of numbers numbers = [6, 5, 3, 8, 4, 2, 5, 4, 11] # variable to store the sum sum = 0 # iterate over the list for val in numbers: sum = sum+val print["The sum is", sum]
3 và loại bỏ trình lặp ra khỏi ngăn xếp.print[range[10]] print[list[range[10]]] print[list[range[2, 8]]] print[list[range[2, 20, 3]]]
Các điểm đánh dấu
print[range[10]]
print[list[range[10]]]
print[list[range[2, 8]]]
print[list[range[2, 20, 3]]]
4 là các mục tiêu nhảy, ở đó là tín hiệu trực quan để giúp dễ dàng phát hiện ra những người đó khi đọc dòng opcode nhảy vào chúng.Những gì cho vòng lặp trong Python?
Vòng lặp for trong Python được sử dụng để lặp lại theo một chuỗi [List, Tuple, String] hoặc các đối tượng có thể đi được khác. Lặp lại trên một chuỗi được gọi là Traversal.
Cú pháp của vòng lặp
for val in sequence:
loop body
Ở đây,
print[range[10]]
print[list[range[10]]]
print[list[range[2, 8]]]
print[list[range[2, 20, 3]]]
5 là biến có giá trị của mục bên trong chuỗi trên mỗi lần lặp.Vòng lặp tiếp tục cho đến khi chúng ta đạt được mục cuối cùng trong chuỗi. Phần thân của vòng lặp được tách ra khỏi phần còn lại của mã bằng cách sử dụng thụt.
Sơ đồ của vòng lặp
Ví dụ: Python cho vòng lặp
# Program to find the sum of all numbers stored in a list
# List of numbers
numbers = [6, 5, 3, 8, 4, 2, 5, 4, 11]
# variable to store the sum
sum = 0
# iterate over the list
for val in numbers:
sum = sum+val
print["The sum is", sum]
Khi bạn chạy chương trình, đầu ra sẽ là:
The sum is 48
Hàm phạm vi []
Chúng ta có thể tạo một chuỗi các số bằng hàm
print[range[10]]
print[list[range[10]]]
print[list[range[2, 8]]]
print[list[range[2, 20, 3]]]
6. print[range[10]]
print[list[range[10]]]
print[list[range[2, 8]]]
print[list[range[2, 20, 3]]]
7 sẽ tạo số từ 0 đến 9 [10 số].Chúng ta cũng có thể xác định kích thước bắt đầu, dừng và bước là
print[range[10]]
print[list[range[10]]]
print[list[range[2, 8]]]
print[list[range[2, 20, 3]]]
8. BƯỚC_SIZE mặc định là 1 nếu không được cung cấp.Đối tượng
print[range[10]]
print[list[range[10]]]
print[list[range[2, 8]]]
print[list[range[2, 20, 3]]]
9 là "lười biếng" theo một nghĩa nào đó vì nó không tạo ra mọi số mà nó "chứa" khi chúng ta tạo nó. Tuy nhiên, nó không phải là một trình lặp lại vì nó hỗ trợ các hoạt động range[0, 10] [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] [2, 3, 4, 5, 6, 7] [2, 5, 8, 11, 14, 17]0,
range[0, 10] [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] [2, 3, 4, 5, 6, 7] [2, 5, 8, 11, 14, 17]1 và
range[0, 10] [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] [2, 3, 4, 5, 6, 7] [2, 5, 8, 11, 14, 17]2.
Hàm này không lưu trữ tất cả các giá trị trong bộ nhớ; Nó sẽ không hiệu quả. Vì vậy, nó nhớ sự khởi đầu, dừng lại, kích thước bước và tạo số tiếp theo khi đang di chuyển.
Để buộc chức năng này xuất ra tất cả các mục, chúng ta có thể sử dụng chức năng
range[0, 10] [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] [2, 3, 4, 5, 6, 7] [2, 5, 8, 11, 14, 17]3.
Ví dụ sau đây sẽ làm rõ điều này.
print[range[10]]
print[list[range[10]]]
print[list[range[2, 8]]]
print[list[range[2, 20, 3]]]
Đầu ra
range[0, 10] [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] [2, 3, 4, 5, 6, 7] [2, 5, 8, 11, 14, 17]
Chúng ta có thể sử dụng hàm
print[range[10]]
print[list[range[10]]]
print[list[range[2, 8]]]
print[list[range[2, 20, 3]]]
6 trong các vòng
for val in sequence:
loop body
2 để lặp lại thông qua một chuỗi các số. Nó có thể được kết hợp với hàm range[0, 10] [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] [2, 3, 4, 5, 6, 7] [2, 5, 8, 11, 14, 17]6 để lặp lại thông qua một chuỗi bằng cách sử dụng lập chỉ mục. Đây là một ví dụ.
# Program to iterate through a list using indexing
genre = ['pop', 'rock', 'jazz']
# iterate over the list using index
for i in range[len[genre]]:
print["I like", genre[i]]
Đầu ra
I like pop I like rock I like jazz
range[0, 10]
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
[2, 3, 4, 5, 6, 7]
[2, 5, 8, 11, 14, 17]
Chúng ta có thể sử dụng hàm
print[range[10]]
print[list[range[10]]]
print[list[range[2, 8]]]
print[list[range[2, 20, 3]]]
6 trong các vòng
for val in sequence:
loop body
2 để lặp lại thông qua một chuỗi các số. Nó có thể được kết hợp với hàm range[0, 10] [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] [2, 3, 4, 5, 6, 7] [2, 5, 8, 11, 14, 17]6 để lặp lại thông qua một chuỗi bằng cách sử dụng lập chỉ mục. Đây là một ví dụ.
cho vòng lặp với những người khác
Một vòng lặp
for val in sequence:
loop body
2 cũng có thể có một khối
for val in sequence:
loop body
6 tùy chọn. Phần
for val in sequence:
loop body
6 được thực thi nếu các mục trong chuỗi được sử dụng trong ống xả vòng lặp.Từ khóa phá vỡ có thể được sử dụng để dừng một vòng lặp. Trong những trường hợp như vậy, phần khác bị bỏ qua.
digits = [0, 1, 5]
for i in digits:
print[i]
else:
print["No items left."]
Khi bạn chạy chương trình, đầu ra sẽ là:
0 1 5 No items left.
Hàm phạm vi []
Chúng ta có thể tạo một chuỗi các số bằng hàm
print[range[10]]
print[list[range[10]]]
print[list[range[2, 8]]]
print[list[range[2, 20, 3]]]
6. print[range[10]]
print[list[range[10]]]
print[list[range[2, 8]]]
print[list[range[2, 20, 3]]]
7 sẽ tạo số từ 0 đến 9 [10 số].
for val in sequence:
loop body
0Đầu ra
for val in sequence:
loop body
1