Trả về false có phá vỡ vòng lặp Python không?

Lặp đi lặp lại có nghĩa là thực thi lặp đi lặp lại cùng một khối mã, có khả năng là nhiều lần. Cấu trúc lập trình thực hiện phép lặp được gọi là vòng lặp

Trong lập trình, có hai loại lặp, không xác định và xác định

  • Với phép lặp vô thời hạn, số lần vòng lặp được thực thi không được chỉ định rõ ràng trước. Thay vào đó, khối được chỉ định được thực thi lặp đi lặp lại miễn là một số điều kiện được đáp ứng

  • Với phép lặp xác định, số lần khối được chỉ định sẽ được thực thi được chỉ định rõ ràng tại thời điểm vòng lặp bắt đầu

Trong hướng dẫn này, bạn sẽ

  • Tìm hiểu về vòng lặp
    >>> n = 0
    >>> while n > 0:
    ..     n -= 1
    ..     print(n)
    ...
    
    6, cấu trúc điều khiển Python được sử dụng cho phép lặp vô thời hạn
  • Xem cách thoát ra khỏi vòng lặp hoặc vòng lặp sớm
  • Khám phá vòng lặp vô hạn

Khi hoàn thành, bạn nên nắm rõ cách sử dụng phép lặp vô thời hạn trong Python

Tiền thưởng miễn phí. Nhấp vào đây để nhận Bảng cheat Python miễn phí của chúng tôi, trang này cho bạn biết kiến ​​thức cơ bản về Python 3, như làm việc với các kiểu dữ liệu, từ điển, danh sách và hàm Python

Lấy bài kiểm tra. Kiểm tra kiến ​​thức của bạn với bài kiểm tra tương tác “Vòng lặp "trong khi" của Python". Sau khi hoàn thành, bạn sẽ nhận được điểm số để có thể theo dõi quá trình học tập của mình theo thời gian

Lấy bài kiểm tra "

Vòng lặp >>> n = 0 >>> while n > 0: .. n -= 1 .. print(n) ... 6

Hãy xem cách câu lệnh

>>> n = 0
>>> while n > 0:
..     n -= 1
..     print(n)
...
6 của Python được sử dụng để xây dựng các vòng lặp. Chúng tôi sẽ bắt đầu đơn giản và tô điểm khi chúng tôi đi

Định dạng của vòng lặp

>>> n = 0
>>> while n > 0:
..     n -= 1
..     print(n)
...
6 thô sơ được hiển thị bên dưới

while <expr>:
    <statement(s)>

>>> a = ['foo', 'bar', 'baz']
>>> while a:
..     print(a.pop(-1))
...
baz
bar
foo
0 đại diện cho khối được thực thi lặp đi lặp lại, thường được gọi là phần thân của vòng lặp. Điều này được biểu thị bằng thụt đầu dòng, giống như trong câu lệnh
>>> a = ['foo', 'bar', 'baz']
>>> while a:
..     print(a.pop(-1))
...
baz
bar
foo
1

Nhớ. Tất cả các cấu trúc điều khiển trong Python đều sử dụng thụt đầu dòng để xác định các khối. Xem phần thảo luận trong hướng dẫn trước để xem lại

Biểu thức điều khiển,

>>> a = ['foo', 'bar', 'baz']
>>> while a:
..     print(a.pop(-1))
...
baz
bar
foo
2, thường bao gồm một hoặc nhiều biến được khởi tạo trước khi bắt đầu vòng lặp và sau đó được sửa đổi ở đâu đó trong thân vòng lặp

Khi gặp phải vòng lặp

>>> n = 0
>>> while n > 0:
..     n -= 1
..     print(n)
...
6, đầu tiên
>>> a = ['foo', 'bar', 'baz']
>>> while a:
..     print(a.pop(-1))
...
baz
bar
foo
2 được đánh giá trong. Nếu đúng, thân vòng lặp được thực thi. Sau đó,
>>> a = ['foo', 'bar', 'baz']
>>> while a:
..     print(a.pop(-1))
...
baz
bar
foo
2 được kiểm tra lại và nếu vẫn đúng, phần thân được thực hiện lại. Điều này tiếp tục cho đến khi
>>> a = ['foo', 'bar', 'baz']
>>> while a:
..     print(a.pop(-1))
...
baz
bar
foo
2 trở thành sai, tại thời điểm đó, việc thực thi chương trình sẽ chuyển sang câu lệnh đầu tiên bên ngoài thân vòng lặp

Hãy xem xét vòng lặp này

>>>

 1>>> n = 5
 2>>> while n > 0:
 3..     n -= 1
 4..     print(n)
 5...
 64
 73
 82
 91
100

Đây là những gì đang xảy ra trong ví dụ này

  • >>> a = ['foo', 'bar', 'baz']
    >>> while a:
    ..     print(a.pop(-1))
    ...
    baz
    bar
    foo
    
    7 ban đầu là
    >>> a = ['foo', 'bar', 'baz']
    >>> while a:
    ..     print(a.pop(-1))
    ...
    baz
    bar
    foo
    
    8. Biểu thức trong tiêu đề câu lệnh
    >>> n = 0
    >>> while n > 0:
    ..     n -= 1
    ..     print(n)
    ...
    
    6 ở dòng 2 là
     1n = 5
     2while n > 0:
     3    n -= 1
     4    if n == 2:
     5        break
     6    print(n)
     7print('Loop ended.')
    
    0, giá trị này đúng, vì vậy phần thân vòng lặp sẽ thực thi. Bên trong phần thân vòng lặp ở dòng 3,
    >>> a = ['foo', 'bar', 'baz']
    >>> while a:
    ..     print(a.pop(-1))
    ...
    baz
    bar
    foo
    
    7 được giảm đi từ
     1n = 5
     2while n > 0:
     3    n -= 1
     4    if n == 2:
     5        break
     6    print(n)
     7print('Loop ended.')
    
    2 thành
     1n = 5
     2while n > 0:
     3    n -= 1
     4    if n == 2:
     5        break
     6    print(n)
     7print('Loop ended.')
    
    3, sau đó được in ra

  • Khi phần thân của vòng lặp kết thúc, việc thực thi chương trình quay trở lại đầu vòng lặp ở dòng 2 và biểu thức được đánh giá lại. Nó vẫn đúng, vì vậy phần thân thực thi lại và

     1n = 5
     2while n > 0:
     3    n -= 1
     4    if n == 2:
     5        break
     6    print(n)
     7print('Loop ended.')
    
    4 được in ra

  • Điều này tiếp tục cho đến khi

    >>> a = ['foo', 'bar', 'baz']
    >>> while a:
    ..     print(a.pop(-1))
    ...
    baz
    bar
    foo
    
    7 trở thành
     1n = 5
     2while n > 0:
     3    n -= 1
     4    if n == 2:
     5        break
     6    print(n)
     7print('Loop ended.')
    
    6. Tại thời điểm đó, khi biểu thức được kiểm tra, nó sai và vòng lặp kết thúc. Quá trình thực thi sẽ tiếp tục ở câu lệnh đầu tiên sau thân vòng lặp, nhưng không có câu lệnh nào trong trường hợp này

Lưu ý rằng biểu thức điều khiển của vòng lặp

>>> n = 0
>>> while n > 0:
..     n -= 1
..     print(n)
...
6 được kiểm tra trước, trước khi bất kỳ điều gì khác xảy ra. Nếu bắt đầu là false, thân vòng lặp sẽ không bao giờ được thực thi

>>>

>>> n = 0
>>> while n > 0:
..     n -= 1
..     print(n)
...

Trong ví dụ trên, khi gặp vòng lặp,

>>> a = ['foo', 'bar', 'baz']
>>> while a:
..     print(a.pop(-1))
...
baz
bar
foo
7 là
 1n = 5
 2while n > 0:
 3    n -= 1
 4    if n == 2:
 5        break
 6    print(n)
 7print('Loop ended.')
6. Biểu thức điều khiển
 1n = 5
 2while n > 0:
 3    n -= 1
 4    if n == 2:
 5        break
 6    print(n)
 7print('Loop ended.')
0 đã là false nên thân vòng lặp không bao giờ thực thi

Đây là một vòng lặp

>>> n = 0
>>> while n > 0:
..     n -= 1
..     print(n)
...
6 khác liên quan đến một danh sách, thay vì so sánh số

>>>

>>> a = ['foo', 'bar', 'baz']
>>> while a:
..     print(a.pop(-1))
...
baz
bar
foo

Khi a , nó là thật nếu nó có các phần tử trong đó và sai nếu nó trống. Trong ví dụ này,

C:\Users\john\Documents>python break.py
4
3
Loop ended.
2 là đúng miễn là nó có các phần tử trong đó. Sau khi tất cả các mục đã bị xóa bằng phương pháp
C:\Users\john\Documents>python break.py
4
3
Loop ended.
3 và danh sách trống, thì ______30_______2 là sai và vòng lặp kết thúc

Loại bỏ các quảng cáo

Câu lệnh C:\Users\john\Documents>python break.py 4 3 Loop ended. 5 và C:\Users\john\Documents>python break.py 4 3 Loop ended. 6 của Python

Trong mỗi ví dụ mà bạn đã thấy cho đến nay, toàn bộ phần thân của vòng lặp

>>> n = 0
>>> while n > 0:
..     n -= 1
..     print(n)
...
6 được thực thi trên mỗi lần lặp. Python cung cấp hai từ khóa kết thúc sớm vòng lặp

  • Câu lệnh Python

    C:\Users\john\Documents>python break.py
    4
    3
    Loop ended.
    
    5 ngay lập tức chấm dứt hoàn toàn một vòng lặp. Việc thực thi chương trình tiếp tục với câu lệnh đầu tiên sau thân vòng lặp

  • Câu lệnh Python

    C:\Users\john\Documents>python break.py
    4
    3
    Loop ended.
    
    6 ngay lập tức chấm dứt vòng lặp hiện tại. Việc thực thi nhảy lên đầu vòng lặp và biểu thức điều khiển được đánh giá lại để xác định liệu vòng lặp sẽ thực hiện lại hay chấm dứt

Sự khác biệt giữa

C:\Users\john\Documents>python break.py
4
3
Loop ended.
5 và
C:\Users\john\Documents>python break.py
4
3
Loop ended.
6 được thể hiện trong sơ đồ sau

Trả về false có phá vỡ vòng lặp Python không?
phá vỡ và tiếp tục

Đây là một tệp kịch bản có tên là

 1n = 5
 2while n > 0:
 3    n -= 1
 4    if n == 2:
 5        continue
 6    print(n)
 7print('Loop ended.')
2 thể hiện câu lệnh
C:\Users\john\Documents>python break.py
4
3
Loop ended.
5

 1n = 5
 2while n > 0:
 3    n -= 1
 4    if n == 2:
 5        break
 6    print(n)
 7print('Loop ended.')

Chạy

 1n = 5
 2while n > 0:
 3    n -= 1
 4    if n == 2:
 5        continue
 6    print(n)
 7print('Loop ended.')
2 từ trình thông dịch dòng lệnh tạo ra kết quả sau

C:\Users\john\Documents>python break.py
4
3
Loop ended.

Khi

>>> a = ['foo', 'bar', 'baz']
>>> while a:
..     print(a.pop(-1))
...
baz
bar
foo
7 trở thành
 1n = 5
 2while n > 0:
 3    n -= 1
 4    if n == 2:
 5        continue
 6    print(n)
 7print('Loop ended.')
6, câu lệnh
C:\Users\john\Documents>python break.py
4
3
Loop ended.
5 được thực thi. Vòng lặp kết thúc hoàn toàn và quá trình thực thi chương trình chuyển sang câu lệnh
 1n = 5
 2while n > 0:
 3    n -= 1
 4    if n == 2:
 5        continue
 6    print(n)
 7print('Loop ended.')
8 trên dòng 7

Ghi chú. Nếu nền tảng lập trình của bạn là C, C++, Java hoặc JavaScript, thì bạn có thể tự hỏi vòng lặp do-while của Python ở đâu. Chà, tin xấu là Python không có cấu trúc do-while. Nhưng tin tốt là bạn có thể sử dụng vòng lặp

>>> n = 0
>>> while n > 0:
..     n -= 1
..     print(n)
...
6 với câu lệnh
C:\Users\john\Documents>python break.py
4
3
Loop ended.
5 để mô phỏng nó

Chữ viết tiếp theo,

C:\Users\john\Documents>python continue.py
4
3
1
0
Loop ended.
1, giống hệt ngoại trừ câu lệnh
C:\Users\john\Documents>python break.py
4
3
Loop ended.
6 thay cho câu lệnh
C:\Users\john\Documents>python break.py
4
3
Loop ended.
5

 1n = 5
 2while n > 0:
 3    n -= 1
 4    if n == 2:
 5        continue
 6    print(n)
 7print('Loop ended.')

Đầu ra của

C:\Users\john\Documents>python continue.py
4
3
1
0
Loop ended.
1 trông như thế này

C:\Users\john\Documents>python continue.py
4
3
1
0
Loop ended.

Lần này, khi

>>> a = ['foo', 'bar', 'baz']
>>> while a:
..     print(a.pop(-1))
...
baz
bar
foo
7 là
 1n = 5
 2while n > 0:
 3    n -= 1
 4    if n == 2:
 5        continue
 6    print(n)
 7print('Loop ended.')
6, câu lệnh
C:\Users\john\Documents>python break.py
4
3
Loop ended.
6 gây ra sự chấm dứt của phép lặp đó. Do đó,
 1n = 5
 2while n > 0:
 3    n -= 1
 4    if n == 2:
 5        continue
 6    print(n)
 7print('Loop ended.')
6 không được in. Thực thi trở lại đầu vòng lặp, điều kiện được đánh giá lại và nó vẫn đúng. Vòng lặp tiếp tục, kết thúc khi
>>> a = ['foo', 'bar', 'baz']
>>> while a:
..     print(a.pop(-1))
...
baz
bar
foo
7 trở thành
 1n = 5
 2while n > 0:
 3    n -= 1
 4    if n == 2:
 5        break
 6    print(n)
 7print('Loop ended.')
6, như trước đây

Điều khoản while : else: 1

Python cho phép một mệnh đề

while <expr>:
    <statement(s)>
else:
    <additional_statement(s)>
1 tùy chọn ở cuối vòng lặp
>>> n = 0
>>> while n > 0:
..     n -= 1
..     print(n)
...
6. Đây là một tính năng độc đáo của Python, không có trong hầu hết các ngôn ngữ lập trình khác. Cú pháp được hiển thị bên dưới

while <expr>:
    <statement(s)>
else:
    <additional_statement(s)>

while <expr>:
    <statement(s)>
else:
    <additional_statement(s)>
4 được chỉ định trong mệnh đề
while <expr>:
    <statement(s)>
else:
    <additional_statement(s)>
1 sẽ được thực thi khi vòng lặp
>>> n = 0
>>> while n > 0:
..     n -= 1
..     print(n)
...
6 kết thúc

Trả về false có phá vỡ vòng lặp Python không?

Hiện tại, bạn có thể đang nghĩ, “Điều đó hữu ích như thế nào?”

while <expr>:
    <statement(s)>
<additional_statement(s)>

Có gì khác biệt?

Trong trường hợp sau, nếu không có mệnh đề

while <expr>:
    <statement(s)>
else:
    <additional_statement(s)>
1, thì
while <expr>:
    <statement(s)>
else:
    <additional_statement(s)>
4 sẽ được thực hiện sau khi vòng lặp
>>> n = 0
>>> while n > 0:
..     n -= 1
..     print(n)
...
6 kết thúc, bất kể điều gì xảy ra

Khi

while <expr>:
    <statement(s)>
else:
    <additional_statement(s)>
4 được đặt trong mệnh đề
while <expr>:
    <statement(s)>
else:
    <additional_statement(s)>
1, chúng sẽ chỉ được thực thi nếu vòng lặp kết thúc “do hết”—nghĩa là, nếu vòng lặp lặp lại cho đến khi điều kiện kiểm soát trở thành sai. Nếu vòng lặp bị thoát bởi câu lệnh
C:\Users\john\Documents>python break.py
4
3
Loop ended.
5, thì mệnh đề
while <expr>:
    <statement(s)>
else:
    <additional_statement(s)>
1 sẽ không được thực thi

Xem xét ví dụ sau

>>>

 1>>> n = 5
 2>>> while n > 0:
 3..     n -= 1
 4..     print(n)
 5...
 64
 73
 82
 91
100
0

Trong trường hợp này, vòng lặp lặp lại cho đến khi hết điều kiện.

>>> a = ['foo', 'bar', 'baz']
>>> while a:
..     print(a.pop(-1))
...
baz
bar
foo
7 trở thành
 1n = 5
 2while n > 0:
 3    n -= 1
 4    if n == 2:
 5        break
 6    print(n)
 7print('Loop ended.')
6, vì vậy
 1n = 5
 2while n > 0:
 3    n -= 1
 4    if n == 2:
 5        break
 6    print(n)
 7print('Loop ended.')
0 trở thành sai. Bởi vì vòng lặp tồn tại trong cuộc sống tự nhiên của nó, nên có thể nói, mệnh đề
while <expr>:
    <statement(s)>
else:
    <additional_statement(s)>
1 đã được thực thi. Bây giờ hãy quan sát sự khác biệt ở đây

>>>

 1>>> n = 5
 2>>> while n > 0:
 3..     n -= 1
 4..     print(n)
 5...
 64
 73
 82
 91
100
1

Vòng lặp này kết thúc sớm với

C:\Users\john\Documents>python break.py
4
3
Loop ended.
5, vì vậy mệnh đề
while <expr>:
    <statement(s)>
else:
    <additional_statement(s)>
1 không được thực thi

Có vẻ như ý nghĩa của từ

while <expr>:
    <statement(s)>
else:
    <additional_statement(s)>
1 không hoàn toàn phù hợp với vòng lặp
>>> n = 0
>>> while n > 0:
..     n -= 1
..     print(n)
...
6 cũng như với câu lệnh
>>> a = ['foo', 'bar', 'baz']
>>> while a:
..     print(a.pop(-1))
...
baz
bar
foo
1. Guido van Rossum, người tạo ra Python, đã thực sự nói rằng, nếu anh ấy phải làm lại từ đầu, anh ấy sẽ bỏ mệnh đề
while <expr>:
    <statement(s)>
else:
    <additional_statement(s)>
1 của vòng lặp
>>> n = 0
>>> while n > 0:
..     n -= 1
..     print(n)
...
6 ra khỏi ngôn ngữ

Một trong những cách giải thích sau đây có thể giúp làm cho nó trực quan hơn

  • Hãy nghĩ về tiêu đề của vòng lặp (

     1>>> n = 5
     2>>> while n > 0:
     3..     n -= 1
     4..     print(n)
     5...
     64
     73
     82
     91
    100
    
    07) như một câu lệnh
    >>> a = ['foo', 'bar', 'baz']
    >>> while a:
    ..     print(a.pop(-1))
    ...
    baz
    bar
    foo
    
    1 (
     1>>> n = 5
     2>>> while n > 0:
     3..     n -= 1
     4..     print(n)
     5...
     64
     73
     82
     91
    100
    
    09) được thực hiện lặp đi lặp lại, với mệnh đề
    while <expr>:
        <statement(s)>
    else:
        <additional_statement(s)>
    
    1 cuối cùng được thực hiện khi điều kiện trở thành sai

  • Hãy nghĩ về

    while <expr>:
        <statement(s)>
    else:
        <additional_statement(s)>
    
    1 như thể nó là
     1>>> n = 5
     2>>> while n > 0:
     3..     n -= 1
     4..     print(n)
     5...
     64
     73
     82
     91
    100
    
    12, trong đó khối tiếp theo sẽ được thực thi nếu không có
    C:\Users\john\Documents>python break.py
    4
    3
    Loop ended.
    
    5

Nếu bạn không thấy một trong những cách giải thích này hữu ích, thì vui lòng bỏ qua chúng

Khi nào mệnh đề

while <expr>:
    <statement(s)>
else:
    <additional_statement(s)>
1 trên vòng lặp
>>> n = 0
>>> while n > 0:
..     n -= 1
..     print(n)
...
6 có thể hữu ích? . Bạn có thể sử dụng
C:\Users\john\Documents>python break.py
4
3
Loop ended.
5 để thoát khỏi vòng lặp nếu vật phẩm được tìm thấy và mệnh đề
while <expr>:
    <statement(s)>
else:
    <additional_statement(s)>
1 có thể chứa mã có nghĩa là sẽ được thực thi nếu vật phẩm không được tìm thấy

>>>

 1>>> n = 5
 2>>> while n > 0:
 3..     n -= 1
 4..     print(n)
 5...
 64
 73
 82
 91
100
2

Ghi chú. Mã được hiển thị ở trên rất hữu ích để minh họa khái niệm này, nhưng thực tế bạn sẽ rất khó tìm kiếm danh sách theo cách đó

Trước hết, danh sách thường được xử lý với phép lặp xác định, không phải vòng lặp

>>> n = 0
>>> while n > 0:
..     n -= 1
..     print(n)
...
6. Phép lặp xác định được trình bày trong hướng dẫn tiếp theo của loạt bài này

Thứ hai, Python cung cấp các cách tích hợp để tìm kiếm một mục trong danh sách. Bạn có thể sử dụng toán tử

 1>>> n = 5
 2>>> while n > 0:
 3..     n -= 1
 4..     print(n)
 5...
 64
 73
 82
 91
100
19

>>>

 1>>> n = 5
 2>>> while n > 0:
 3..     n -= 1
 4..     print(n)
 5...
 64
 73
 82
 91
100
3

Phương pháp

 1>>> n = 5
 2>>> while n > 0:
 3..     n -= 1
 4..     print(n)
 5...
 64
 73
 82
 91
100
20 cũng sẽ hoạt động. Phương pháp này đưa ra một ngoại lệ
 1>>> n = 5
 2>>> while n > 0:
 3..     n -= 1
 4..     print(n)
 5...
 64
 73
 82
 91
100
21 nếu mục không được tìm thấy trong danh sách, vì vậy bạn cần hiểu cách xử lý ngoại lệ để sử dụng nó. Trong Python, bạn sử dụng câu lệnh
 1>>> n = 5
 2>>> while n > 0:
 3..     n -= 1
 4..     print(n)
 5...
 64
 73
 82
 91
100
22 để xử lý một ngoại lệ. Một ví dụ được đưa ra dưới đây

>>>

 1>>> n = 5
 2>>> while n > 0:
 3..     n -= 1
 4..     print(n)
 5...
 64
 73
 82
 91
100
4

Bạn sẽ tìm hiểu về xử lý ngoại lệ ở phần sau của loạt bài này

Mệnh đề

while <expr>:
    <statement(s)>
else:
    <additional_statement(s)>
1 với vòng lặp
>>> n = 0
>>> while n > 0:
..     n -= 1
..     print(n)
...
6 hơi lạ, không thường thấy. Nhưng đừng né tránh nó nếu bạn tìm thấy một tình huống mà bạn cảm thấy nó mang lại sự rõ ràng cho mã của bạn

Loại bỏ các quảng cáo

Vòng lặp vô hạn

Giả sử bạn viết một vòng lặp

>>> n = 0
>>> while n > 0:
..     n -= 1
..     print(n)
...
6 mà theo lý thuyết sẽ không bao giờ kết thúc. Nghe có vẻ kỳ lạ, phải không?

Hãy xem xét ví dụ này

>>>

 1>>> n = 5
 2>>> while n > 0:
 3..     n -= 1
 4..     print(n)
 5...
 64
 73
 82
 91
100
5

Mã này đã bị kết thúc bởi Ctrl + C , . Nếu không, nó sẽ tiếp tục vô tận. Nhiều dòng đầu ra

 1>>> n = 5
 2>>> while n > 0:
 3..     n -= 1
 4..     print(n)
 5...
 64
 73
 82
 91
100
26 đã bị xóa và thay thế bằng dấu chấm lửng dọc trong đầu ra được hiển thị.

Rõ ràng,

 1>>> n = 5
 2>>> while n > 0:
 3..     n -= 1
 4..     print(n)
 5...
 64
 73
 82
 91
100
27 sẽ không bao giờ sai, nếu không tất cả chúng ta sẽ gặp rắc rối lớn. Do đó,
 1>>> n = 5
 2>>> while n > 0:
 3..     n -= 1
 4..     print(n)
 5...
 64
 73
 82
 91
100
28 bắt đầu một vòng lặp vô hạn về mặt lý thuyết sẽ chạy mãi mãi

Có thể đó không phải là điều bạn muốn làm, nhưng mô hình này thực sự khá phổ biến. Ví dụ: bạn có thể viết mã cho một dịch vụ khởi động và chạy mãi mãi chấp nhận các yêu cầu dịch vụ. “Mãi mãi” trong ngữ cảnh này có nghĩa là cho đến khi bạn tắt nó hoặc cho đến khi vũ trụ chết vì nhiệt, tùy theo điều kiện nào đến trước

Thông thường hơn, hãy nhớ rằng các vòng lặp có thể được tách ra bằng câu lệnh

C:\Users\john\Documents>python break.py
4
3
Loop ended.
5. Việc kết thúc một vòng lặp có thể đơn giản hơn dựa trên các điều kiện được ghi nhận trong thân vòng lặp, thay vì dựa trên một điều kiện được đánh giá ở trên cùng

Đây là một biến thể khác của vòng lặp được hiển thị ở trên, loại bỏ liên tiếp các mục khỏi danh sách bằng cách sử dụng

C:\Users\john\Documents>python break.py
4
3
Loop ended.
3 cho đến khi nó trống

>>>

 1>>> n = 5
 2>>> while n > 0:
 3..     n -= 1
 4..     print(n)
 5...
 64
 73
 82
 91
100
6

Khi

C:\Users\john\Documents>python break.py
4
3
Loop ended.
2 trở thành trống,
 1>>> n = 5
 2>>> while n > 0:
 3..     n -= 1
 4..     print(n)
 5...
 64
 73
 82
 91
100
32 trở thành true và câu lệnh
C:\Users\john\Documents>python break.py
4
3
Loop ended.
5 thoát khỏi vòng lặp

Bạn cũng có thể chỉ định nhiều câu lệnh

C:\Users\john\Documents>python break.py
4
3
Loop ended.
5 trong một vòng lặp

 1>>> n = 5
 2>>> while n > 0:
 3..     n -= 1
 4..     print(n)
 5...
 64
 73
 82
 91
100
7

Trong những trường hợp như thế này, khi có nhiều lý do để kết thúc vòng lặp, thì việc

C:\Users\john\Documents>python break.py
4
3
Loop ended.
5 từ một số vị trí khác nhau sẽ dễ dàng hơn thay vì cố gắng chỉ định tất cả các điều kiện kết thúc trong tiêu đề vòng lặp

Vòng lặp vô hạn có thể rất hữu ích. Chỉ cần nhớ rằng bạn phải đảm bảo rằng vòng lặp sẽ bị phá vỡ vào một thời điểm nào đó, để nó không thực sự trở thành vô hạn

Vòng lặp >>> n = 0 >>> while n > 0: .. n -= 1 .. print(n) ... 6 lồng nhau

Nói chung, các cấu trúc điều khiển Python có thể được lồng vào nhau. Ví dụ:

>>> a = ['foo', 'bar', 'baz']
>>> while a:
..     print(a.pop(-1))
...
baz
bar
foo
1/
 1>>> n = 5
 2>>> while n > 0:
 3..     n -= 1
 4..     print(n)
 5...
 64
 73
 82
 91
100
38/
while <expr>:
    <statement(s)>
else:
    <additional_statement(s)>
1 có thể lồng vào nhau

 1>>> n = 5
 2>>> while n > 0:
 3..     n -= 1
 4..     print(n)
 5...
 64
 73
 82
 91
100
8

Tương tự, một vòng lặp

>>> n = 0
>>> while n > 0:
..     n -= 1
..     print(n)
...
6 có thể được chứa bên trong một vòng lặp
>>> n = 0
>>> while n > 0:
..     n -= 1
..     print(n)
...
6 khác, như được hiển thị ở đây

>>>

 1>>> n = 5
 2>>> while n > 0:
 3..     n -= 1
 4..     print(n)
 5...
 64
 73
 82
 91
100
9

Một câu lệnh

C:\Users\john\Documents>python break.py
4
3
Loop ended.
5 hoặc
C:\Users\john\Documents>python break.py
4
3
Loop ended.
6 được tìm thấy trong các vòng lặp lồng nhau áp dụng cho vòng lặp kèm theo gần nhất

>>> n = 0
>>> while n > 0:
..     n -= 1
..     print(n)
...
0

Ngoài ra, các vòng lặp

>>> n = 0
>>> while n > 0:
..     n -= 1
..     print(n)
...
6 có thể được lồng bên trong các câu lệnh
>>> a = ['foo', 'bar', 'baz']
>>> while a:
..     print(a.pop(-1))
...
baz
bar
foo
1/
 1>>> n = 5
 2>>> while n > 0:
 3..     n -= 1
 4..     print(n)
 5...
 64
 73
 82
 91
100
38/
while <expr>:
    <statement(s)>
else:
    <additional_statement(s)>
1 và ngược lại

>>> n = 0
>>> while n > 0:
..     n -= 1
..     print(n)
...
1

>>> n = 0
>>> while n > 0:
..     n -= 1
..     print(n)
...
2

Trên thực tế, tất cả các cấu trúc điều khiển Python có thể được trộn lẫn với nhau ở bất kỳ mức độ nào bạn cần. Đó là như nó phải được. Hãy tưởng tượng sẽ bực bội như thế nào nếu có những hạn chế bất ngờ như “Không thể chứa vòng lặp

>>> n = 0
>>> while n > 0:
..     n -= 1
..     print(n)
...
6 trong câu lệnh
>>> a = ['foo', 'bar', 'baz']
>>> while a:
..     print(a.pop(-1))
...
baz
bar
foo
1” hoặc “vòng lặp ______0_______6 chỉ có thể được lồng vào nhau tối đa bốn vòng sâu. ” Bạn sẽ rất khó nhớ hết chúng

Các giới hạn logic hoặc số dường như tùy ý được coi là dấu hiệu của thiết kế ngôn ngữ chương trình kém. May mắn thay, bạn sẽ không tìm thấy nhiều trong Python

Loại bỏ các quảng cáo

Vòng lặp một dòng >>> n = 0 >>> while n > 0: .. n -= 1 .. print(n) ... 6

Như với câu lệnh

>>> a = ['foo', 'bar', 'baz']
>>> while a:
..     print(a.pop(-1))
...
baz
bar
foo
1, vòng lặp
>>> n = 0
>>> while n > 0:
..     n -= 1
..     print(n)
...
6 có thể được chỉ định trên một dòng. Nếu có nhiều câu lệnh trong khối tạo nên thân vòng lặp, chúng có thể được phân tách bằng dấu chấm phẩy (
 1>>> n = 5
 2>>> while n > 0:
 3..     n -= 1
 4..     print(n)
 5...
 64
 73
 82
 91
100
54)

>>>

>>> n = 0
>>> while n > 0:
..     n -= 1
..     print(n)
...
3

Điều này chỉ hoạt động với các câu lệnh đơn giản. Bạn không thể kết hợp hai câu lệnh ghép thành một dòng. Do đó, bạn có thể chỉ định tất cả vòng lặp

>>> n = 0
>>> while n > 0:
..     n -= 1
..     print(n)
...
6 trên một dòng như trên và bạn viết câu lệnh
>>> a = ['foo', 'bar', 'baz']
>>> while a:
..     print(a.pop(-1))
...
baz
bar
foo
1 trên một dòng

>>>

>>> n = 0
>>> while n > 0:
..     n -= 1
..     print(n)
...
4

Nhưng bạn không thể làm điều này

>>>

>>> n = 0
>>> while n > 0:
..     n -= 1
..     print(n)
...
5

Hãy nhớ rằng không khuyến khích nhiều câu lệnh trên một dòng. Vì vậy, dù sao đi nữa, có lẽ bạn không nên làm bất kỳ điều gì trong số này thường xuyên

Phần kết luận

Trong hướng dẫn này, bạn đã học về phép lặp vô thời hạn bằng cách sử dụng vòng lặp

>>> n = 0
>>> while n > 0:
..     n -= 1
..     print(n)
...
6 của Python. Bây giờ bạn có thể

  • Xây dựng các vòng lặp
    >>> n = 0
    >>> while n > 0:
    ..     n -= 1
    ..     print(n)
    ...
    
    6 cơ bản và phức tạp
  • Thực hiện vòng lặp ngắt với
    C:\Users\john\Documents>python break.py
    4
    3
    Loop ended.
    
    5 và
    C:\Users\john\Documents>python break.py
    4
    3
    Loop ended.
    
    6
  • Sử dụng mệnh đề
    while <expr>:
        <statement(s)>
    else:
        <additional_statement(s)>
    
    1 với vòng lặp
    >>> n = 0
    >>> while n > 0:
    ..     n -= 1
    ..     print(n)
    ...
    
    6
  • Xử lý các vòng lặp vô hạn

Bây giờ bạn đã nắm rõ cách thực thi lặp đi lặp lại một đoạn mã

Lấy bài kiểm tra. Kiểm tra kiến ​​thức của bạn với bài kiểm tra tương tác “Vòng lặp "trong khi" của Python". Sau khi hoàn thành, bạn sẽ nhận được điểm số để có thể theo dõi quá trình học tập của mình theo thời gian

Lấy bài kiểm tra "

Hướng dẫn tiếp theo trong loạt bài này đề cập đến phép lặp xác định với ____12_______63 vòng lặp—thực hiện lặp lại trong đó số lần lặp lại được chỉ định rõ ràng

« Câu lệnh có điều kiện trong Python

Vòng lặp "cho" Python »

Đánh dấu là đã hoàn thành

Xem ngay Hướng dẫn này có một khóa học video liên quan do nhóm Real Python tạo. Xem nó cùng với hướng dẫn bằng văn bản để hiểu sâu hơn. Làm chủ vòng lặp While

🐍 Thủ thuật Python 💌

Nhận một Thủ thuật Python ngắn và hấp dẫn được gửi đến hộp thư đến của bạn vài ngày một lần. Không có thư rác bao giờ. Hủy đăng ký bất cứ lúc nào. Được quản lý bởi nhóm Real Python

Trả về false có phá vỡ vòng lặp Python không?

Gửi cho tôi thủ thuật Python »

Giới thiệu về John Sturtz

Trả về false có phá vỡ vòng lặp Python không?
Trả về false có phá vỡ vòng lặp Python không?

John là một Pythonista cuồng nhiệt và là thành viên của nhóm hướng dẫn Real Python

» Thông tin thêm về John


Mỗi hướng dẫn tại Real Python được tạo bởi một nhóm các nhà phát triển để nó đáp ứng các tiêu chuẩn chất lượng cao của chúng tôi. Các thành viên trong nhóm đã làm việc trong hướng dẫn này là

Trả về false có phá vỡ vòng lặp Python không?

Aldren

Trả về false có phá vỡ vòng lặp Python không?

Joanna

Trả về false có phá vỡ vòng lặp Python không?

Kyle

Bậc thầy Kỹ năng Python trong thế giới thực Với quyền truy cập không giới hạn vào Python thực

Tham gia với chúng tôi và có quyền truy cập vào hàng nghìn hướng dẫn, khóa học video thực hành và cộng đồng các Pythonistas chuyên gia

Nâng cao kỹ năng Python của bạn »

Chuyên gia Kỹ năng Python trong thế giới thực
Với quyền truy cập không giới hạn vào Python thực

Tham gia với chúng tôi và có quyền truy cập vào hàng ngàn hướng dẫn, khóa học video thực hành và cộng đồng Pythonistas chuyên gia

Nâng cao kỹ năng Python của bạn »

Bạn nghĩ sao?

Đánh giá bài viết này

Tweet Chia sẻ Chia sẻ Email

Bài học số 1 hoặc điều yêu thích mà bạn đã học được là gì?

Mẹo bình luận. Những nhận xét hữu ích nhất là những nhận xét được viết với mục đích học hỏi hoặc giúp đỡ các sinh viên khác. và nhận câu trả lời cho các câu hỏi phổ biến trong cổng thông tin hỗ trợ của chúng tôi

Trả về có thoát ra khỏi vòng lặp Python không?

Phương pháp 1. Sử dụng câu lệnh return . Việc sử dụng câu lệnh return có thể trực tiếp kết thúc hàm, do đó thoát khỏi tất cả các vòng lặp .

Câu lệnh return có phá vỡ vòng lặp không?

Câu lệnh này ngắt vòng lặp bên trong (for, repeat hoặc while) chứa nó ; . Sau khi ngắt, chương trình tiếp tục chạy từ điểm ngay sau vòng lặp bị ngắt. Câu lệnh return trả về kết quả không thường xuyên từ một hàm hoặc đơn giản là kết thúc một hàm.

Điều gì phá vỡ vòng lặp for trong Python?

'Break' trong Python là câu lệnh điều khiển vòng lặp . Nó được sử dụng để kiểm soát trình tự của vòng lặp. Giả sử bạn muốn kết thúc một vòng lặp và chuyển sang mã tiếp theo sau vòng lặp; . Một tình huống điển hình của việc sử dụng Break trong Python là khi một điều kiện bên ngoài kích hoạt việc kết thúc vòng lặp.

Trả về có phá vỡ một hàm không?

Có, trả về dừng thực thi và thoát khỏi chức năng .