Hướng dẫn iteration control structure in python - cấu trúc điều khiển lặp trong python


Thông thường trong việc giải quyết các vấn đề kỹ thuật, bạn sẽ muốn một chương trình chạy các đoạn mã nhiều lần với một chút - hoặc có thể rất nhiều - các tham số khác nhau. Số lần chạy mã có thể phụ thuộc vào một số biểu thức logic hoặc vào số lượng cột trong một ma trận cụ thể. Đối với những điều này, bạn sẽ sử dụng các cấu trúc lặp.

Nội dung

  • 1Introduction Introduction
  • 2Examples Examples
    • 2.1 trong khi các vòng lặp while loops
    • 2.2 cho vòng lặp for loops
      • 2.2.1Scanning thông qua một danh sách [hoặc tuple hoặc mảng] Scanning through a list [or tuple, or array]
      • 2.2.2Scanning thông qua một chuỗi Scanning through a string
      • 2.2.3Scanning thông qua một phạm vi [hoặc bản đồ] Scanning through a range [or map]
      • 2.2.4Scanning thông qua từ điển Scanning through a dictionary
      • 2.2.5Scanning thông qua một chuỗi các chuỗi Scanning through a sequence of sequences
        • 2.2.5.1 Một biến quét với một chuỗi các chuỗi tất cả các kích thước n One scanning variable with a sequence of sequences all of size N
        • 2.2.5.2n Biến quét với chuỗi trình tự tất cả các kích thước N N scanning variables with a sequence of sequences all of size N
        • 2.2.5.3 Một biến quét với chuỗi trình tự tất cả các kích thước khác nhau One scanning variable with sequence of sequences all differing sizes
        • 2.2.5.4 -Multiple Biến bao gồm *arg với chuỗi trình tự tất cả các kích thước khác nhau Multiple scanning variables including an *arg with sequence of sequences all differing sizes
  • Các mặt hàng 3Indexing Indexing Items
    • 3.1 Biến Scanner Variable
    • 3.2Enumerated Itable Enumerated Iterable
    • Biến 3,3 External Variable
  • 4Questions Questions
  • Liên kết 5External External Links
  • 6References References

Giới thiệu

Có hai cấu trúc lặp chính trong Python:

x = float[input['Number in range [0, 10]: ']]
while x  10:
    x = float[input['Incorrect value - number in range [0, 10]: ']]
6 vòng lặp và vòng lặp
x = float[input['Number in range [0, 10]: ']]
while x  10:
    x = float[input['Incorrect value - number in range [0, 10]: ']]
7. Một vòng lặp
x = float[input['Number in range [0, 10]: ']]
while x  10:
    x = float[input['Incorrect value - number in range [0, 10]: ']]
6 được kiểm soát bởi một số biểu thức logic được đánh giá trước khi quyết định có nên chạy mã mà nó kiểm soát hay không. Nếu biểu thức là đúng, vòng lặp
x = float[input['Number in range [0, 10]: ']]
while x  10:
    x = float[input['Incorrect value - number in range [0, 10]: ']]
6 sẽ chạy mã mà nó kiểm soát và một khi mã đó được thực hiện thực hiện, nó sẽ đánh giá lại biểu thức logic. Vòng lặp sẽ tiếp tục chạy cho đến khi biểu thức logic là sai tại thời điểm nó được đánh giá.

Mặt khác, vòng lặp

x = float[input['Number in range [0, 10]: ']]
while x  10:
    x = float[input['Incorrect value - number in range [0, 10]: ']]
7 có một biến quét qua các mục trong một số mục có thể lặp lại [ví dụ như một danh sách, tuple, mảng, phạm vi, bản đồ, chuỗi, từ điển]. Biến có giá trị 0 được lập chỉ mục của mục và chạy mã mà nó kiểm soát; Khi mã đó được thực hiện, nó sẽ lấy mục tiếp theo từ chuỗi. Vòng lặp
x = float[input['Number in range [0, 10]: ']]
while x  10:
    x = float[input['Incorrect value - number in range [0, 10]: ']]
7 sẽ chạy nhiều lần như có các mục trong chuỗi.

Trong cả hai vòng

x = float[input['Number in range [0, 10]: ']]
while x  10:
    x = float[input['Incorrect value - number in range [0, 10]: ']]
7 và
x = float[input['Number in range [0, 10]: ']]
while x  10:
    x = float[input['Incorrect value - number in range [0, 10]: ']]
6, có hai lệnh sẽ thay đổi hành vi của vòng lặp một chút. Nếu bạn phát hành lệnh
x = input['Number in range [0, 10]: ']
while True:
    try:
        x = float[x]
    except Exception as oops:
        print[oops]
        print['"{}" contains invalid characters'.format[x]]
        x = input['Number in range [0, 10]: ']
        continue

    if x  10:
        x = input['Incorrect value - number in range [0, 10]: ']
    else:
        break
4, vòng lặp sẽ ngay lập tức bỏ qua kết thúc của chính nó như thể khối mã đã kết thúc. Một vòng lặp
x = float[input['Number in range [0, 10]: ']]
while x  10:
    x = float[input['Incorrect value - number in range [0, 10]: ']]
6 sau đó sẽ đánh giá lại biểu thức logic và chạy lại mã của nó nếu biểu thức vẫn còn đúng; Một vòng lặp
x = float[input['Number in range [0, 10]: ']]
while x  10:
    x = float[input['Incorrect value - number in range [0, 10]: ']]
7 sẽ lấy mục tiếp theo từ chuỗi nếu có trên. Lệnh khác thay đổi cách một vòng lặp hành xử là
x = input['Number in range [0, 10]: ']
while True:
    try:
        x = float[x]
    except Exception as oops:
        print[oops]
        print['"{}" contains invalid characters'.format[x]]
        x = input['Number in range [0, 10]: ']
        continue

    if x  10:
        x = input['Incorrect value - number in range [0, 10]: ']
    else:
        break
7; Nếu một vòng lặp chạy lệnh
x = input['Number in range [0, 10]: ']
while True:
    try:
        x = float[x]
    except Exception as oops:
        print[oops]
        print['"{}" contains invalid characters'.format[x]]
        x = input['Number in range [0, 10]: ']
        continue

    if x  10:
        x = input['Incorrect value - number in range [0, 10]: ']
    else:
        break
7, nó sẽ bỏ qua vòng lặp ngay lập tức.

Ví dụ

x = float[input['Number in range [0, 10]: ']]
while x  10:
    x = float[input['Incorrect value - number in range [0, 10]: ']]
6 vòng lặp

Hãy tưởng tượng bạn muốn người dùng nhập một số từ 0 đến 10 bao gồm; Trong trường hợp họ hiểu sai, bạn muốn họ thử lại. Bạn có thể bắt đầu mã của mình bằng cách nhận đầu vào từ người dùng:

x = input['Number in range [0, 10]: ']

Nếu bạn chạy mã này, bạn sẽ nhận ra rằng lệnh

for k in [3, 1, 4, 1, 5]:
    print[k, end=' ']
0 của Python sẽ hiển thị bất cứ thứ gì bạn cung cấp cho nó dưới dạng chuỗi. Để khắc phục điều đó, bạn có thể bảo Python xem lại nó dưới dạng
for k in [3, 1, 4, 1, 5]:
    print[k, end=' ']
1:

x = float[input['Number in range [0, 10]: ']]

Điều này hoạt động, nhưng nó không kiểm tra để xem người dùng có thực sự nhập loại số cũng như không kiểm tra xem giá trị có ở đúng phạm vi không. Bởi vì bạn sẽ muốn người dùng tiếp tục nhập các giá trị cho đến khi một cái gì đó hợp lệ được nhập, bạn sẽ sử dụng vòng lặp

x = float[input['Number in range [0, 10]: ']]
while x  10:
    x = float[input['Incorrect value - number in range [0, 10]: ']]
6 để đánh giá câu trả lời và, nếu giá trị xấu, hãy lấy một giá trị khác:

x = float[input['Number in range [0, 10]: ']]
while x  10:
    x = float[input['Incorrect value - number in range [0, 10]: ']]

Điều này bây giờ thực hiện chính xác những gì bạn muốn nó làm, miễn là người dùng đã đưa ra một đầu vào có thể được hiển thị dưới dạng phao. Nếu người dùng nhập một ký tự không phải là số, Python sẽ gây ra lỗi. Nếu bạn muốn đối phó với tình huống đó, bạn sẽ cần kiểm tra những gì người dùng đưa ra làm đầu vào trước khi cố gắng biến nó thành một chiếc phao. Điều này rất phức tạp bởi thực tế là Python hiện không có cách tuyệt vời để kiểm tra xem nội dung của chuỗi có thể đại diện cho một chiếc phao. Cho rằng, có thể dễ dàng sử dụng cấu trúc

for k in [3, 1, 4, 1, 5]:
    print[k, end=' ']
3 của Python và sau đó bắt và hiển thị mọi trường hợp ngoại lệ. Dưới đây là một ví dụ tận dụng lợi thế của
for k in [3, 1, 4, 1, 5]:
    print[k, end=' ']
3,
x = input['Number in range [0, 10]: ']
while True:
    try:
        x = float[x]
    except Exception as oops:
        print[oops]
        print['"{}" contains invalid characters'.format[x]]
        x = input['Number in range [0, 10]: ']
        continue

    if x  10:
        x = input['Incorrect value - number in range [0, 10]: ']
    else:
        break
4 và
x = input['Number in range [0, 10]: ']
while True:
    try:
        x = float[x]
    except Exception as oops:
        print[oops]
        print['"{}" contains invalid characters'.format[x]]
        x = input['Number in range [0, 10]: ']
        continue

    if x  10:
        x = input['Incorrect value - number in range [0, 10]: ']
    else:
        break
7 để trước tiên xem chuỗi được nhập có thể biến thành một chiếc phao hay không, nếu nó có thể, nếu phao đó nằm trong phạm vi thích hợp:

x = input['Number in range [0, 10]: ']
while True:
    try:
        x = float[x]
    except Exception as oops:
        print[oops]
        print['"{}" contains invalid characters'.format[x]]
        x = input['Number in range [0, 10]: ']
        continue

    if x  10:
        x = input['Incorrect value - number in range [0, 10]: ']
    else:
        break

Lưu ý việc sử dụng

for k in [3, 1, 4, 1, 5]:
    print[k, end=' ']
7 ở đây; Vòng lặp này sẽ tự mình chạy vô thời hạn - điều duy nhất khiến nó dừng lại là nếu
x = input['Number in range [0, 10]: ']
while True:
    try:
        x = float[x]
    except Exception as oops:
        print[oops]
        print['"{}" contains invalid characters'.format[x]]
        x = input['Number in range [0, 10]: ']
        continue

    if x  10:
        x = input['Incorrect value - number in range [0, 10]: ']
    else:
        break
7 xảy ra.

Nếu bạn muốn xem việc thực thi mã ở trên trên Pythontutor, bấm vào đây.

x = float[input['Number in range [0, 10]: ']]
while x  10:
    x = float[input['Incorrect value - number in range [0, 10]: ']]
7 vòng lặp

Các mã sau đây sẽ chứng minh các cách khác nhau để quét qua các mục của một điều khác nhau:

Quét qua một danh sách [hoặc tuple hoặc mảng]

for k in [3, 1, 4, 1, 5]:
    print[k, end=' ']

Quét qua một chuỗi

for k in 'Hello!':
    print[k]

Quét qua một phạm vi [hoặc bản đồ]

for k in range[3, 7]:
    print[k, end=' ']

Quét qua một từ điển

Giả sử mã sau đã chạy để tạo từ điển

for k in 'Hello!':
    print[k]
0:

d = {}
d[4]='hello'
d['Duke']=1.234
d[[20,19]] = [20, 23]

sao cho

for k in 'Hello!':
    print[k]
0 bây giờ là:

{4: 'hello', 'Duke': 1.234, [20, 19]: [20, 23]}

Có bốn cách để quét qua nó:

for k in d.values[]:
    print[k]

Output:

Xin chào 1.234 [20, 23]

x = float[input['Number in range [0, 10]: ']]
0

Output:

[4, 'Xin chào'] ['Duke', 1.234] [[20, 19], [20, 23]]

x = float[input['Number in range [0, 10]: ']]
1

Output:

P: 4, Q: Xin chào P: Duke, Q: 1.234 P: [20, 19], Q: [20, 23]

Quét qua một chuỗi các chuỗi

Như đã lưu ý ở trên, vòng lặp

x = float[input['Number in range [0, 10]: ']]
while x  10:
    x = float[input['Incorrect value - number in range [0, 10]: ']]
7 có thể lấy từng mục theo một chuỗi và gán nó cho một biến duy nhất hoặc, nếu các mục là chúng tự, hãy giải quyết các mục trong các chuỗi đó cho nhiều biến. Cái sau sẽ chỉ hoạt động nếu số lượng mục trong phần sau giống với số lượng biến hoặc - và đây là siêu lạ mắt - bạn đặt một biến *arg trong vòng lặp
x = float[input['Number in range [0, 10]: ']]
while x  10:
    x = float[input['Incorrect value - number in range [0, 10]: ']]
7 của bạn. Dưới đây là một số ví dụ:

Một biến quét với một chuỗi các chuỗi tất cả các kích thước n

x = float[input['Number in range [0, 10]: ']]
2

Output:

K: [1, 2] K: [3, 'Hi'] K: [[4, 5, 6], [7, 8, 9]]]

N Các biến quét với một chuỗi các chuỗi tất cả các kích thước n

x = float[input['Number in range [0, 10]: ']]
3

Output:

A: 1; B: 2 A: 3; B: Hi A: [4, 5, 6]; B: [7, 8, 9]

Một biến quét với chuỗi trình tự tất cả các kích thước khác nhau

x = float[input['Number in range [0, 10]: ']]
4

Output:

K: [1] K: [2, 3] K: [4, 5, 6] K: Duke K: [7, 'Egr', 103]

Nhiều biến quét bao gồm *arg với chuỗi trình tự tất cả các kích thước khác nhau

x = float[input['Number in range [0, 10]: ']]
5

Đầu ra:

A: 1; B: [] A: 2; B: [3] A: 4; B: [5, 6] A: D; B: ['u', 'k', 'e'] a: 7; B: ['Egr', 103]

Lưu ý rằng các chuỗi của bạn phải có ít nhất là nhiều mục là số lượng biến quét không được xác định và bạn chỉ có thể có một biến quét được sao chép. Tuy nhiên, nó không phải đến lần cuối:not have to come last, however:

x = float[input['Number in range [0, 10]: ']]
6

Output:

A: L; B: ['M1', 'M2']; C: R A: 1; B: []; C: 2 A: 3; B: [4, 5, 6]; C: 7

Đầu tiên, lưu ý rằng mỗi phần sau có ít nhất hai mục.

for k in 'Hello!':
    print[k]
4 sẽ lấy cái đầu tiên,
for k in 'Hello!':
    print[k]
5 sẽ lấy cái cuối cùng, và sau đó
for k in 'Hello!':
    print[k]
6 sẽ chiếm lấy bất cứ điều gì còn lại.last one, and then
for k in 'Hello!':
    print[k]
6 will take over whatever remains.

Lập chỉ mục các mục

Trong khi sử dụng một vòng lặp, bạn có thể muốn truy cập vào các yếu tố nhất định của các chuỗi trong vòng lặp đó. Để làm điều này, bạn sẽ cần một biến giữ số chỉ mục bạn muốn truy cập. Có ít nhất ba cách khác nhau để tạo biến này: sử dụng chính biến quét vòng lặp như trong chỉ mục, sử dụng

for k in 'Hello!':
    print[k]
7Function để tạo bảng chỉ mục và các cặp giá trị hoặc tạo bộ đếm bên ngoài.

Biến máy quét

Nếu bạn có vòng lặp

x = float[input['Number in range [0, 10]: ']]
while x  10:
    x = float[input['Incorrect value - number in range [0, 10]: ']]
7 có nghĩa là đi qua một số lần lặp được xác định trước, bạn có thể thiết lập biến vòng lặp để theo dõi những gì bạn đang lặp lại:

x = float[input['Number in range [0, 10]: ']]
7

Chẳng hạn, để có được mười hai giá trị khác nhau từ người dùng, bạn có thể sử dụng mã sau:

x = float[input['Number in range [0, 10]: ']]
8

Điều này sử dụng thực tế là

for k in 'Hello!':
    print[k]
9 đảm nhận các giá trị của 0, 1, 2, 3, v.v., sẽ hoạt động như biến chỉ mục của bạn. Danh sách
for k in range[3, 7]:
    print[k, end=' ']
0 sẽ kết thúc với mười hai giá trị mà người dùng đã cung cấp cho bạn. Tất nhiên, trong Python nếu bạn chỉ đang xây dựng một danh sách, bạn cũng có thể nối mọi thứ vào danh sách mà không phải lo lắng về chỉ mục:

x = float[input['Number in range [0, 10]: ']]
9

Liệt kê có thể lặp lại

Nếu bạn lặp đi lặp lại một thứ không thể được sử dụng làm chỉ mục - ví dụ, các ký tự trong chuỗi - bạn có thể sử dụng hàm

for k in 'Hello!':
    print[k]
7 để trả về một số ít thay thế cho mỗi mục bằng một bộ có chứa chỉ mục và giá trị của mục. Loại
for k in 'Hello!':
    print[k]
7 tương tự như
for k in range[3, 7]:
    print[k, end=' ']
3 và
for k in range[3, 7]:
    print[k, end=' ']
4 ở chỗ nó không có cách nào tốt để hiển thị những gì nó thực sự bằng - đối với điều đó, bạn cần phải gọi lại như một danh sách. Ví dụ: giả sử bạn đã chạy mã sau:

x = float[input['Number in range [0, 10]: ']]
while x  10:
    x = float[input['Incorrect value - number in range [0, 10]: ']]
0

sau đó

năng suất

x = float[input['Number in range [0, 10]: ']]
while x  10:
    x = float[input['Incorrect value - number in range [0, 10]: ']]
1

trong khi

năng suất:

x = float[input['Number in range [0, 10]: ']]
while x  10:
    x = float[input['Incorrect value - number in range [0, 10]: ']]
2

Bây giờ bạn có thể chạy vòng lặp

x = float[input['Number in range [0, 10]: ']]
while x  10:
    x = float[input['Incorrect value - number in range [0, 10]: ']]
7 trên kết quả của lệnh
for k in 'Hello!':
    print[k]
7; Nếu bạn có hai biến quét, lần thứ nhất sẽ chọn một chỉ mục và loại thứ hai sẽ nhận được giá trị:

x = float[input['Number in range [0, 10]: ']]
while x  10:
    x = float[input['Incorrect value - number in range [0, 10]: ']]
3

năng suất:

x = float[input['Number in range [0, 10]: ']]
while x  10:
    x = float[input['Incorrect value - number in range [0, 10]: ']]
4

Bây giờ bạn có thể chạy vòng lặp
x = float[input['Number in range [0, 10]: ']]
while x  10:
    x = float[input['Incorrect value - number in range [0, 10]: ']]
7 trên kết quả của lệnh
for k in 'Hello!':
    print[k]
7; Nếu bạn có hai biến quét, lần thứ nhất sẽ chọn một chỉ mục và loại thứ hai sẽ nhận được giá trị:

Nhân tố bên ngoài

x = float[input['Number in range [0, 10]: ']]
while x  10:
    x = float[input['Incorrect value - number in range [0, 10]: ']]
5

Đôi khi, bạn sẽ không có biến quét dựa trên số nguyên - hoặc bạn có thể không có biến quét nào cả [ví dụ:

x = float[input['Number in range [0, 10]: ']]
while x  10:
    x = float[input['Incorrect value - number in range [0, 10]: ']]
6 vòng lặp]. Đối với những người đó, bạn có thể phải bắt đầu một bộ đếm bên ngoài. Ví dụ: nếu bạn muốn lưu trữ đầu vào nhiệt độ miễn là nhiệt độ được nhập không âm, bạn có thể viết:

Vào cuối mã này,
for k in range[3, 7]:
    print[k, end=' ']
8 sẽ là một giá trị cho biết có bao nhiêu mục nhập trong danh sách
for k in range[3, 7]:
    print[k, end=' ']
0.

Câu hỏi

Liện kết ngoại

Người giới thiệu

3 loại cấu trúc điều khiển trong Python là gì?

Python có ba loại cấu trúc điều khiển: Chế độ tuần tự - mặc định. Lựa chọn - Được sử dụng cho các quyết định và phân nhánh. Lặp lại - Được sử dụng để lặp, tức là, lặp lại một đoạn mã nhiều lần.Sequential - default mode. Selection - used for decisions and branching. Repetition - used for looping, i.e., repeating a piece of code multiple times.

Làm thế nào để các câu lệnh kiểm soát lặp hoạt động trong Python?

Các câu lệnh lặp hoặc câu lệnh LOOP cho phép chúng tôi thực hiện một khối các câu lệnh liên tục miễn là điều kiện là đúng.Trong khi vòng lặp trong Python được sử dụng để thực thi một khối câu lệnh cho đến khi điều kiện đã cho là đúng.Và khi điều kiện là sai, điều khiển sẽ ra khỏi vòng lặp.allow us to execute a block of statements repeatedly as long as the condition is true. While Loop In Python is used to execute a block of statement till the given condition is true. And when the condition is false, the control will come out of the loop.

Lặp lại trong lập trình có cấu trúc là gì?

Lặp đi lặp lại, trong bối cảnh lập trình máy tính, là một quá trình trong đó một tập hợp các hướng dẫn hoặc cấu trúc được lặp lại theo một chuỗi một số lần được chỉ định hoặc cho đến khi một điều kiện được đáp ứng.Khi bộ hướng dẫn đầu tiên được thực thi lại, nó được gọi là lặp.a process wherein a set of instructions or structures are repeated in a sequence a specified number of times or until a condition is met. When the first set of instructions is executed again, it is called an iteration.

Những tuyên bố lặp đi lặp lại trong Python?

Loại câu lệnh lặp trong Python 3..
Trong khi lặp lại..
Cho vòng lặp ..
Lồng nhau cho các vòng lặp ..

Bài Viết Liên Quan

Chủ Đề