Hướng dẫn while loop not looping python - trong khi vòng lặp không lặp lại python

Tôi đang cố gắng để có được đầu vào của người dùng bằng cách kiểm tra lỗi bằng cách sử dụng vòng lặp

def factorial(x):
    if x == 1 or x == 0:
        return 1
    else:
        return x * factorial(x-1)
7 để đảm bảo người dùng luôn nhập một cái gì đó có hơn 2 ký tự. Tuy nhiên, chương trình Python không bao giờ yêu cầu tôi đầu vào. Cứu giúp?

Show
first_names = ['fred', 'bob', 'mary', 'john', 'frank', 'james', 'joe', 'jay']
last_names = ['jones', 'smith', 'doe', 'cardinal', 'jesus', 'watson', 'blogs', 'harris']
full_names = ['empty_name']*len(first_names)
i = 0
while True:
    full_names[i] = (first_names[i] + " " + last_names[i])
    print full_names[i]
    i = i + 1
    if i == (len(last_names) + len(first_names))/ 2:
        True = not True
name = 'placeholder_name_for_user_input_via_console'
while True:
    name = raw_input("please enter a new name")
    if len(name) < 2 :
        print " please enter a name longer than 2 characters"
    else:
        True = not True
print "thank you for entering a long name"
full_names.append(name)
print(full_names)

Tôi đang sử dụng Python 2.7 nếu điều đó tạo ra bất kỳ sự khác biệt nào.

Chỉnh sửa: Tôi đã sửa mã của mình. Sau lần đầu tiên trong khi Loop = cần viết

def factorial(x):
    if x == 1 or x == 0:
        return 1
    else:
        return x * factorial(x-1)
8 để làm cho nó hoạt động.

0 điểm

hơn 7 năm

def factorial(n):
n = n
i = n 
if n <= 1:
    return 1
else:
    while i > 0:
        n = n * (i - 1)
        i -= 1
        return n

Vòng lặp trong khi của tôi chỉ chạy một lần và tôi không chắc tại sao? Ví dụ, một giai thừa (4) trả về 12 thay vì 24 và một giai thừa 5 trả về 20 thay vì 120.

Trả lời 552A8C0D86F5524DB700083E

Trước tiên, có biến ban đầu của bạn ‘N, chỉ giữ giá trị cho mục đích giảm .. Hãy để Lừa có biến I I I của bạn cho tính toán giai thừa của bạn phải được cập nhật mọi lúc ..

Mã ý tôi là: trong phần khác, trong khi i> 0: i = i * (n - 1) n - = 1 return i

và quan trọng, hãy đặt câu lệnh trả lại của bạn ra ngoài vòng lặp trong khi

điểm

Hướng dẫn while loop not looping python - trong khi vòng lặp không lặp lại python

hơn 7 năm

Vòng lặp trong khi của tôi chỉ chạy một lần và tôi không chắc tại sao? Ví dụ, một giai thừa (4) trả về 12 thay vì 24 và một giai thừa 5 trả về 20 thay vì 120.

Trả lời 552A8C0D86F5524DB700083E

điểm

Hướng dẫn while loop not looping python - trong khi vòng lặp không lặp lại python

hơn 7 năm

Vòng lặp trong khi của tôi chỉ chạy một lần và tôi không chắc tại sao? Ví dụ, một giai thừa (4) trả về 12 thay vì 24 và một giai thừa 5 trả về 20 thay vì 120.

def factorial(x):
    if x == 1 or x == 0:
        return 1
    else:
        return x * factorial(x-1)

điểm

Hướng dẫn while loop not looping python - trong khi vòng lặp không lặp lại python

hơn 7 năm

Bây giờ bạn nên nắm bắt tốt cách thực hiện một đoạn mã lặp đi lặp lại. This tutorial has a related video course created by the Real Python team. Watch it together with the written tutorial to deepen your understanding: Mastering While Loops

Hướng dẫn tiếp theo trong loạt bài này bao gồm việc lặp lại xác định với các vòng lặp

def factorial(n):
n = n
i = n 
if n <= 1:
    return 1
else:
    while i > 0:
        n = n * (i - 1)
        i -= 1
        return n
59 Các vòng lặp hiện tại trong đó số lần lặp lại được chỉ định rõ ràng. means executing the same block of code over and over, potentially many times. A programming structure that implements iteration is called a loop.

Xem bây giờ hướng dẫn này có một khóa học video liên quan được tạo bởi nhóm Python thực sự. Xem nó cùng với hướng dẫn bằng văn bản để hiểu sâu hơn về sự hiểu biết của bạn: Làm chủ trong khi các vòng lặp

  • Tại sao vòng lặp trong khi tôi không lặp lại Python?indefinite iteration, the number of times the loop is executed isn’t specified explicitly in advance. Rather, the designated block is executed repeatedly as long as some condition is met.

  • Mã của bạn được thụt lề không chính xác. Để đặt câu hỏi ở đây, chúng ta cần xem chính xác sự thụt lề mà bạn có. Bạn có thể sao chép/dán mã của mình vào hộp chỉnh sửa và sau đó chọn nó và nhấn Ctrl-K để có nó được thụt đồng đều cho định dạng mã Markdown.definite iteration, the number of times the designated block will be executed is specified explicitly at the time the loop starts.

Làm trong khi các vòng lặp luôn thực hiện một lần Python?

  • Một vòng lặp trong thời gian thậm chí có thể không thực thi một lần nếu điều kiện không được đáp ứng. Tuy nhiên, do-trong khi sẽ chạy một lần, sau đó kiểm tra điều kiện cho các vòng lặp tiếp theo. Mặc dù có mặt trong hầu hết các ngôn ngữ lập trình phổ biến, Python không có một tuyên bố trong khi thực hiện bản địa.
  • Làm trong khi vòng lặp trong Python hay không?
  • Python không có chức năng tích hợp để tạo ra một vòng trong khi vòng lặp như các ngôn ngữ khác. Nhưng có thể mô phỏng một vòng trong khi vòng lặp trong Python.

Lặp đi lặp lại có nghĩa là thực thi cùng một khối mã nhiều lần, có khả năng nhiều lần. Một cấu trúc lập trình thực hiện lặp lại được gọi là một 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 lần lặp không xác định, số lần vòng lặp được thực thi được chỉ định trước một cách rõ ràng. Thay vào đó, khối được chỉ định được thực hiện nhiều lần miễn là một số điều kiện được đáp ứng.

Với lần 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.

while <expr>:
    <statement(s)>

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

Tìm hiểu về vòng lặp

def factorial(x):
    if x == 1 or x == 0:
        return 1
    else:
        return x * factorial(x-1)
7, cấu trúc điều khiển Python được sử dụng để lặp lại không xác định

Xem cách thoát ra khỏi vòng lặp hoặc vòng lặp lặp lại sớm

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, những gì mà xảy ra trong ví dụ này:

  •  1>>> n = 5
     2>>> while n > 0:
     3...     n -= 1
     4...     print(n)
     5...
     64
     73
     82
     91
    100
    
    0 ban đầu là
     1>>> n = 5
     2>>> while n > 0:
     3...     n -= 1
     4...     print(n)
     5...
     64
     73
     82
     91
    100
    
    1. Biểu thức trong tiêu đề câu lệnh
    def factorial(x):
        if x == 1 or x == 0:
            return 1
        else:
            return x * factorial(x-1)
    7 trên dòng 2 là
     1>>> n = 5
     2>>> while n > 0:
     3...     n -= 1
     4...     print(n)
     5...
     64
     73
     82
     91
    100
    
    3, điều này là đúng, do đó, cơ thể vòng lặp thực thi. Bên trong thân vòng trên dòng 3,
     1>>> n = 5
     2>>> while n > 0:
     3...     n -= 1
     4...     print(n)
     5...
     64
     73
     82
     91
    100
    
    0 bị giảm bởi
     1>>> n = 5
     2>>> while n > 0:
     3...     n -= 1
     4...     print(n)
     5...
     64
     73
     82
     91
    100
    
    5 xuống
     1>>> n = 5
     2>>> while n > 0:
     3...     n -= 1
     4...     print(n)
     5...
     64
     73
     82
     91
    100
    
    6, sau đó được in.

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

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

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

     1>>> n = 5
     2>>> while n > 0:
     3...     n -= 1
     4...     print(n)
     5...
     64
     73
     82
     91
    100
    
    0 trở thành
     1>>> n = 5
     2>>> while n > 0:
     3...     n -= 1
     4...     print(n)
     5...
     64
     73
     82
     91
    100
    
    9. Tại thời điểm đó, khi biểu thức được kiểm tra, nó là sai và vòng lặp chấm dứt. Việc thực hiện sẽ tiếp tục tại câu lệnh đầu tiên theo cơ thể vòng lặp, nhưng có một trong trường hợp này.

Lưu ý rằng biểu thức kiểm soát của vòng

def factorial(x):
    if x == 1 or x == 0:
        return 1
    else:
        return x * factorial(x-1)
7 được kiểm tra trước, trước khi bất cứ điều gì khác xảy ra. Nếu nó sai khi bắt đầu, cơ thể vòng lặp sẽ không bao giờ được thực thi:

>>>

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

Ở đây, những gì mà xảy ra trong ví dụ này:

 1>>> n = 5
 2>>> while n > 0:
 3...     n -= 1
 4...     print(n)
 5...
 64
 73
 82
 91
100
0 ban đầu là
 1>>> n = 5
 2>>> while n > 0:
 3...     n -= 1
 4...     print(n)
 5...
 64
 73
 82
 91
100
1. Biểu thức trong tiêu đề câu lệnh
def factorial(x):
    if x == 1 or x == 0:
        return 1
    else:
        return x * factorial(x-1)
7 trên dòng 2 là
 1>>> n = 5
 2>>> while n > 0:
 3...     n -= 1
 4...     print(n)
 5...
 64
 73
 82
 91
100
3, điều này là đúng, do đó, cơ thể vòng lặp thực thi. Bên trong thân vòng trên dòng 3,
 1>>> n = 5
 2>>> while n > 0:
 3...     n -= 1
 4...     print(n)
 5...
 64
 73
 82
 91
100
0 bị giảm bởi
 1>>> n = 5
 2>>> while n > 0:
 3...     n -= 1
 4...     print(n)
 5...
 64
 73
 82
 91
100
5 xuống
 1>>> n = 5
 2>>> while n > 0:
 3...     n -= 1
 4...     print(n)
 5...
 64
 73
 82
 91
100
6, sau đó được in.

>>>

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

Ở đây, những gì mà xảy ra trong ví dụ này:

1>>> n = 5 2>>> while n > 0: 3... n -= 1 4... print(n) 5... 64 73 82 91 100 0 ban đầu là 1>>> n = 5 2>>> while n > 0: 3... n -= 1 4... print(n) 5... 64 73 82 91 100 1. Biểu thức trong tiêu đề câu lệnh def factorial(x): if x == 1 or x == 0: return 1 else: return x * factorial(x-1)7 trên dòng 2 là 1>>> n = 5 2>>> while n > 0: 3... n -= 1 4... print(n) 5... 64 73 82 91 100 3, điều này là đúng, do đó, cơ thể vòng lặp thực thi. Bên trong thân vòng trên dòng 3, 1>>> n = 5 2>>> while n > 0: 3... n -= 1 4... print(n) 5... 64 73 82 91 100 0 bị giảm bởi 1>>> n = 5 2>>> while n > 0: 3... n -= 1 4... print(n) 5... 64 73 82 91 100 5 xuống 1>>> n = 5 2>>> while n > 0: 3... n -= 1 4... print(n) 5... 64 73 82 91 100 6, sau đó được in.

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

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

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

     1>>> n = 5
     2>>> while n > 0:
     3...     n -= 1
     4...     print(n)
     5...
     64
     73
     82
     91
    100
    
    0 trở thành
     1>>> n = 5
     2>>> while n > 0:
     3...     n -= 1
     4...     print(n)
     5...
     64
     73
     82
     91
    100
    
    9. Tại thời điểm đó, khi biểu thức được kiểm tra, nó là sai và vòng lặp chấm dứt. Việc thực hiện sẽ tiếp tục tại câu lệnh đầu tiên theo cơ thể vòng lặp, nhưng có một trong trường hợp này.
    >>> n = 0
    >>> while n > 0:
    ...     n -= 1
    ...     print(n)
    ...
    
    8
    statement immediately terminates a loop entirely. Program execution proceeds to the first statement following the loop body.

  • Lưu ý rằng biểu thức kiểm soát của vòng

    def factorial(x):
        if x == 1 or x == 0:
            return 1
        else:
            return x * factorial(x-1)
    7 được kiểm tra trước, trước khi bất cứ điều gì khác xảy ra. Nếu nó sai khi bắt đầu, cơ thể vòng lặp sẽ không bao giờ được thực thi:
    >>> n = 0
    >>> while n > 0:
    ...     n -= 1
    ...     print(n)
    ...
    
    9
    statement immediately terminates the current loop iteration. Execution jumps to the top of the loop, and the controlling expression is re-evaluated to determine whether the loop will execute again or terminate.

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

 1>>> n = 5
 2>>> while n > 0:
 3...     n -= 1
 4...     print(n)
 5...
 64
 73
 82
 91
100
0 là
 1>>> n = 5
 2>>> while n > 0:
 3...     n -= 1
 4...     print(n)
 5...
 64
 73
 82
 91
100
9. Biểu thức kiểm soát
 1>>> n = 5
 2>>> while n > 0:
 3...     n -= 1
 4...     print(n)
 5...
 64
 73
 82
 91
100
3 đã sai, vì vậy cơ thể vòng lặp không bao giờ thực thi.

Hướng dẫn while loop not looping python - trong khi vòng lặp không lặp lại python
Ở đây, một vòng lặp
def factorial(x):
    if x == 1 or x == 0:
        return 1
    else:
        return x * factorial(x-1)
7 khác liên quan đến một danh sách, thay vì so sánh số:

Khi một danh sách được đánh giá trong bối cảnh Boolean, đó là sự thật nếu nó có các yếu tố trong đó và giả nếu nó trống rỗng. Trong ví dụ này,

>>> n = 0
>>> while n > 0:
...     n -= 1
...     print(n)
...
5 là đúng miễn là nó có các yếu tố trong đó. Khi tất cả các mục đã được xóa bằng phương thức
>>> n = 0
>>> while n > 0:
...     n -= 1
...     print(n)
...
6 và danh sách trống,
>>> n = 0
>>> while n > 0:
...     n -= 1
...     print(n)
...
5 là sai và vòng lặp chấm dứt.

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

Các câu lệnh Python

>>> n = 0
>>> while n > 0:
...     n -= 1
...     print(n)
...
8 và
>>> n = 0
>>> while n > 0:
...     n -= 1
...     print(n)
...
9

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

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

def factorial(x):
    if x == 1 or x == 0:
        return 1
    else:
        return x * factorial(x-1)
7 được thực hiện trên mỗi lần lặp. Python cung cấp hai từ khóa chấm dứt lặp lại vòng lặp sớm:

Tuyên bố Python

>>> n = 0
>>> while n > 0:
...     n -= 1
...     print(n)
...
8 ngay lập tức chấm dứt hoàn toàn một vòng lặp. Thực hiện chương trình tiến hành tuyên bố đầu tiên sau cơ thể vòng lặp.

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

Tuyên bố Python

>>> n = 0
>>> while n > 0:
...     n -= 1
...     print(n)
...
9 ngay lập tức chấm dứt lặp lại vòng lặp hiện tại. Việc thực thi nhảy lên đỉnh của vòng lặp và biểu thức kiểm soát được đánh giá lại để xác định xem vòng lặp sẽ thực thi lại hay chấm dứt.

def factorial(n):
n = n
i = n 
if n <= 1:
    return 1
else:
    while i > 0:
        n = n * (i - 1)
        i -= 1
        return n
0

Sự khác biệt giữa

>>> n = 0
>>> while n > 0:
...     n -= 1
...     print(n)
...
8 và
>>> n = 0
>>> while n > 0:
...     n -= 1
...     print(n)
...
9 được thể hiện trong sơ đồ sau:

phá vỡ và tiếp tục

Ở đây, một tệp tập lệnh có tên

>>> a = ['foo', 'bar', 'baz']
>>> while a:
...     print(a.pop(-1))
...
baz
bar
foo
5 thể hiện câu lệnh
>>> n = 0
>>> while n > 0:
...     n -= 1
...     print(n)
...
8:

def factorial(n):
n = n
i = n 
if n <= 1:
    return 1
else:
    while i > 0:
        n = n * (i - 1)
        i -= 1
        return n
1

Chạy

>>> a = ['foo', 'bar', 'baz']
>>> while a:
...     print(a.pop(-1))
...
baz
bar
foo
5 từ trình thông dịch dòng lệnh tạo ra đầu ra sau:

Hướng dẫn while loop not looping python - trong khi vòng lặp không lặp lại python

Khi

 1>>> n = 5
 2>>> while n > 0:
 3...     n -= 1
 4...     print(n)
 5...
 64
 73
 82
 91
100
0 trở thành
>>> a = ['foo', 'bar', 'baz']
>>> while a:
...     print(a.pop(-1))
...
baz
bar
foo
9, câu lệnh
>>> n = 0
>>> while n > 0:
...     n -= 1
...     print(n)
...
8 được thực thi. Vòng lặp bị chấm dứt hoàn toàn và thực thi chương trình nhảy vào câu lệnh
 1n = 5
 2while n > 0:
 3    n -= 1
 4    if n == 2:
 5        break
 6    print(n)
 7print('Loop ended.')
1 trên dòng 7.

def factorial(n):
n = n
i = n 
if n <= 1:
    return 1
else:
    while i > 0:
        n = n * (i - 1)
        i -= 1
        return n
2

Kịch bản tiếp theo,

 1n = 5
 2while n > 0:
 3    n -= 1
 4    if n == 2:
 5        break
 6    print(n)
 7print('Loop ended.')
2, giống hệt nhau ngoại trừ câu lệnh
>>> n = 0
>>> while n > 0:
...     n -= 1
...     print(n)
...
9 thay cho
>>> n = 0
>>> while n > 0:
...     n -= 1
...     print(n)
...
8:

Đầu ra của

 1n = 5
 2while n > 0:
 3    n -= 1
 4    if n == 2:
 5        break
 6    print(n)
 7print('Loop ended.')
2 trông như thế này:

Lần này, khi

 1>>> n = 5
 2>>> while n > 0:
 3...     n -= 1
 4...     print(n)
 5...
 64
 73
 82
 91
100
0 là
>>> a = ['foo', 'bar', 'baz']
>>> while a:
...     print(a.pop(-1))
...
baz
bar
foo
9, tuyên bố
>>> n = 0
>>> while n > 0:
...     n -= 1
...     print(n)
...
9 gây ra việc chấm dứt lần lặp đó. Do đó,
>>> a = ['foo', 'bar', 'baz']
>>> while a:
...     print(a.pop(-1))
...
baz
bar
foo
9 được in. Việc thực thi trở về đầ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, chấm dứt khi
 1>>> n = 5
 2>>> while n > 0:
 3...     n -= 1
 4...     print(n)
 5...
 64
 73
 82
 91
100
0 trở thành
 1>>> n = 5
 2>>> while n > 0:
 3...     n -= 1
 4...     print(n)
 5...
 64
 73
 82
 91
100
9, như trước đây.

Điều khoản

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

>>>

def factorial(n):
n = n
i = n 
if n <= 1:
    return 1
else:
    while i > 0:
        n = n * (i - 1)
        i -= 1
        return n
3

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

C:\Users\john\Documents>python break.py
4
3
Loop ended.
2 tùy chọn ở cuối vòng
def factorial(x):
    if x == 1 or x == 0:
        return 1
    else:
        return x * factorial(x-1)
7. Đây là một tính năng độc đáo của Python, không được tìm thấy 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:

>>>

def factorial(n):
n = n
i = n 
if n <= 1:
    return 1
else:
    while i > 0:
        n = n * (i - 1)
        i -= 1
        return n
4

C:\Users\john\Documents>python break.py
4
3
Loop ended.
5 được chỉ định trong mệnh đề
C:\Users\john\Documents>python break.py
4
3
Loop ended.
2 sẽ được thực thi khi vòng lặp
def factorial(x):
    if x == 1 or x == 0:
        return 1
    else:
        return x * factorial(x-1)
7 chấm dứt.

Về bây giờ, bạn có thể đang nghĩ, "Điều đó hữu ích như thế nào?" Bạn có thể hoàn thành điều tương tự bằng cách đặt những câu lệnh đó ngay sau vòng lặp

def factorial(x):
    if x == 1 or x == 0:
        return 1
    else:
        return x * factorial(x-1)
7, mà không cần
C:\Users\john\Documents>python break.py
4
3
Loop ended.
2:

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 (

    def factorial(n):
    n = n
    i = n 
    if n <= 1:
        return 1
    else:
        while i > 0:
            n = n * (i - 1)
            i -= 1
            return n
    08) như một câu lệnh
    while <expr>:
        <statement(s)>
    
    4 (
    def factorial(n):
    n = n
    i = n 
    if n <= 1:
        return 1
    else:
        while i > 0:
            n = n * (i - 1)
            i -= 1
            return n
    10) được thực thi nhiều lần, với mệnh đề
    C:\Users\john\Documents>python break.py
    4
    3
    Loop ended.
    
    2 cuối cùng đã được thực thi khi điều kiện trở nên sai.

  • Hãy nghĩ về

    C:\Users\john\Documents>python break.py
    4
    3
    Loop ended.
    
    2 như thể đó là
    def factorial(n):
    n = n
    i = n 
    if n <= 1:
        return 1
    else:
        while i > 0:
            n = n * (i - 1)
            i -= 1
            return n
    13, trong đó khối sau đó được thực thi nếu có một
    >>> n = 0
    >>> while n > 0:
    ...     n -= 1
    ...     print(n)
    ...
    
    8.

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

Khi nào một mệnh đề

C:\Users\john\Documents>python break.py
4
3
Loop ended.
2 trên vòng
def factorial(x):
    if x == 1 or x == 0:
        return 1
    else:
        return x * factorial(x-1)
7 có hữu ích không? Một tình huống phổ biến là nếu bạn đang tìm kiếm một danh sách cho một mục cụ thể. Bạn có thể sử dụng
>>> n = 0
>>> while n > 0:
...     n -= 1
...     print(n)
...
8 để thoát vòng lặp nếu mục được tìm thấy và mệnh đề
C:\Users\john\Documents>python break.py
4
3
Loop ended.
2 có thể chứa mã có nghĩa là được thực thi nếu mục được tìm thấy:

>>>

def factorial(n):
n = n
i = n 
if n <= 1:
    return 1
else:
    while i > 0:
        n = n * (i - 1)
        i -= 1
        return n
5

Một điều khoản

C:\Users\john\Documents>python break.py
4
3
Loop ended.
2 với vòng lặp
def factorial(x):
    if x == 1 or x == 0:
        return 1
    else:
        return x * factorial(x-1)
7 là một chút kỳ lạ, không thường thấy. Nhưng don lồ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ó làm tăng thêm sự rõ ràng cho mã của bạn!

Vòng lặp vô hạn

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

def factorial(x):
    if x == 1 or x == 0:
        return 1
    else:
        return x * factorial(x-1)
7 mà về mặt lý thuyết không bao giờ kết thúc. Nghe kỳ lạ, phải không?

Xem xét ví dụ này:

>>>

def factorial(n):
n = n
i = n 
if n <= 1:
    return 1
else:
    while i > 0:
        n = n * (i - 1)
        i -= 1
        return n
6

Một điều khoản

C:\Users\john\Documents>python break.py
4
3
Loop ended.
2 với vòng lặp
def factorial(x):
    if x == 1 or x == 0:
        return 1
    else:
        return x * factorial(x-1)
7 là một chút kỳ lạ, không thường thấy. Nhưng don lồ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ó làm tăng thêm sự rõ ràng cho mã của bạn!Ctrl+C, which generates an interrupt from the keyboard. Otherwise, it would have gone on unendingly. Many
def factorial(n):
n = n
i = n 
if n <= 1:
    return 1
else:
    while i > 0:
        n = n * (i - 1)
        i -= 1
        return n
22 output lines have been removed and replaced by the vertical ellipsis in the output shown.

Vòng lặp vô hạn

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

def factorial(x):
    if x == 1 or x == 0:
        return 1
    else:
        return x * factorial(x-1)
7 mà về mặt lý thuyết không bao giờ kết thúc. Nghe kỳ lạ, phải không?

Xem xét ví dụ này:

Mã này đã bị chấm dứt bởi Ctrl+C, tạo ra một ngắt từ bàn phím. Nếu không, nó sẽ tiếp tục không ngừng. Nhiều dòng đầu ra

def factorial(n):
n = n
i = n 
if n <= 1:
    return 1
else:
    while i > 0:
        n = n * (i - 1)
        i -= 1
        return n
22 đã được gỡ bỏ và thay thế bằng dấu chấm lửng dọc trong đầu ra được hiển thị.

>>>

def factorial(n):
n = n
i = n 
if n <= 1:
    return 1
else:
    while i > 0:
        n = n * (i - 1)
        i -= 1
        return n
7

Một điều khoản

C:\Users\john\Documents>python break.py
4
3
Loop ended.
2 với vòng lặp
def factorial(x):
    if x == 1 or x == 0:
        return 1
    else:
        return x * factorial(x-1)
7 là một chút kỳ lạ, không thường thấy. Nhưng don lồ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ó làm tăng thêm sự rõ ràng cho mã của bạn!

Vòng lặp vô hạn

def factorial(n):
n = n
i = n 
if n <= 1:
    return 1
else:
    while i > 0:
        n = n * (i - 1)
        i -= 1
        return n
8

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

def factorial(x):
    if x == 1 or x == 0:
        return 1
    else:
        return x * factorial(x-1)
7 mà về mặt lý thuyết không bao giờ kết thúc. Nghe kỳ lạ, phải không?

Xem xét ví dụ này:

Mã này đã bị chấm dứt bởi Ctrl+C, tạo ra một ngắt từ bàn phím. Nếu không, nó sẽ tiếp tục không ngừng. Nhiều dòng đầu ra def factorial(n): n = n i = n if n <= 1: return 1 else: while i > 0: n = n * (i - 1) i -= 1 return n22 đã được gỡ bỏ và thay thế bằng dấu chấm lửng dọc trong đầu ra được hiển thị.

Rõ ràng,

def factorial(n):
n = n
i = n 
if n <= 1:
    return 1
else:
    while i > 0:
        n = n * (i - 1)
        i -= 1
        return n
23 sẽ không bao giờ sai, hoặc tất cả chúng ta đều gặp rắc rối rất lớn. Do đó,
def factorial(n):
n = n
i = n 
if n <= 1:
    return 1
else:
    while i > 0:
        n = n * (i - 1)
        i -= 1
        return n
24 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.

def factorial(n):
n = n
i = n 
if n <= 1:
    return 1
else:
    while i > 0:
        n = n * (i - 1)
        i -= 1
        return n
9

Có lẽ điều đó không giống như một cái gì đó mà 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ụ. Ngay lập tức, trong bối cảnh này có nghĩa là cho đến khi bạn tắt nó, hoặc cho đến khi cái chết nhiệt của vũ trụ, tùy theo điều kiện nào đến trước.

>>>

def factorial(x):
    if x == 1 or x == 0:
        return 1
    else:
        return x * factorial(x-1)
0

Một điều khoản

C:\Users\john\Documents>python break.py
4
3
Loop ended.
2 với vòng lặp
def factorial(x):
    if x == 1 or x == 0:
        return 1
    else:
        return x * factorial(x-1)
7 là một chút kỳ lạ, không thường thấy. Nhưng don lồ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ó làm tăng thêm sự rõ ràng cho mã của bạn!

def factorial(x):
    if x == 1 or x == 0:
        return 1
    else:
        return x * factorial(x-1)
1

Vòng lặp vô hạn

def factorial(x):
    if x == 1 or x == 0:
        return 1
    else:
        return x * factorial(x-1)
2

def factorial(x):
    if x == 1 or x == 0:
        return 1
    else:
        return x * factorial(x-1)
3

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

def factorial(x):
    if x == 1 or x == 0:
        return 1
    else:
        return x * factorial(x-1)
7 mà về mặt lý thuyết không bao giờ kết thúc. Nghe kỳ lạ, phải không?

Xem xét ví dụ này:

Mã này đã bị chấm dứt bởi Ctrl+C, tạo ra một ngắt từ bàn phím. Nếu không, nó sẽ tiếp tục không ngừng. Nhiều dòng đầu ra def factorial(n): n = n i = n if n <= 1: return 1 else: while i > 0: n = n * (i - 1) i -= 1 return n22 đã được gỡ bỏ và thay thế bằng dấu chấm lửng dọc trong đầu ra được hiển thị.

Rõ ràng,

def factorial(n):
n = n
i = n 
if n <= 1:
    return 1
else:
    while i > 0:
        n = n * (i - 1)
        i -= 1
        return n
23 sẽ không bao giờ sai, hoặc tất cả chúng ta đều gặp rắc rối rất lớn. Do đó,
def factorial(n):
n = n
i = n 
if n <= 1:
    return 1
else:
    while i > 0:
        n = n * (i - 1)
        i -= 1
        return n
24 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.

>>>

def factorial(x):
    if x == 1 or x == 0:
        return 1
    else:
        return x * factorial(x-1)
4

Một điều khoản

C:\Users\john\Documents>python break.py
4
3
Loop ended.
2 với vòng lặp
def factorial(x):
    if x == 1 or x == 0:
        return 1
    else:
        return x * factorial(x-1)
7 là một chút kỳ lạ, không thường thấy. Nhưng don lồ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ó làm tăng thêm sự rõ ràng cho mã của bạn!

>>>

def factorial(x):
    if x == 1 or x == 0:
        return 1
    else:
        return x * factorial(x-1)
5

Một điều khoản

C:\Users\john\Documents>python break.py
4
3
Loop ended.
2 với vòng lặp
def factorial(x):
    if x == 1 or x == 0:
        return 1
    else:
        return x * factorial(x-1)
7 là một chút kỳ lạ, không thường thấy. Nhưng don lồ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ó làm tăng thêm sự rõ ràng cho mã của bạn!

>>>

def factorial(x):
    if x == 1 or x == 0:
        return 1
    else:
        return x * factorial(x-1)
6

Một điều khoản

C:\Users\john\Documents>python break.py
4
3
Loop ended.
2 với vòng lặp
def factorial(x):
    if x == 1 or x == 0:
        return 1
    else:
        return x * factorial(x-1)
7 là một chút kỳ lạ, không thường thấy. Nhưng don lồ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ó làm tăng thêm sự rõ ràng cho mã của bạn!

Vòng lặp vô hạn

Trong hướng dẫn này, bạn đã tìm hiểu về việc lặp lại không xác định bằng cách sử dụng vòng lặp Python

def factorial(x):
    if x == 1 or x == 0:
        return 1
    else:
        return x * factorial(x-1)
7. Bây giờ bạn có thể:indefinite iteration using the Python
def factorial(x):
    if x == 1 or x == 0:
        return 1
    else:
        return x * factorial(x-1)
7 loop. You’re now able to:

  • Xây dựng các vòng lặp
    def factorial(x):
        if x == 1 or x == 0:
            return 1
        else:
            return x * factorial(x-1)
    7 cơ bản và phức tạp
  • Thực thi vòng lặp với
    >>> n = 0
    >>> while n > 0:
    ...     n -= 1
    ...     print(n)
    ...
    
    8 và
    >>> n = 0
    >>> while n > 0:
    ...     n -= 1
    ...     print(n)
    ...
    
    9
  • Sử dụng mệnh đề
    C:\Users\john\Documents>python break.py
    4
    3
    Loop ended.
    
    2 với vòng lặp
    def factorial(x):
        if x == 1 or x == 0:
            return 1
        else:
            return x * factorial(x-1)
    7
  • Đối phó với các vòng lặp vô hạn

Bây giờ bạn nên nắm bắt tốt cách thực hiện một đoạn mã lặp đi lặp lại.

Hướng dẫn tiếp theo trong loạt bài này bao gồm việc lặp lại xác định với các vòng lặp

def factorial(n):
n = n
i = n 
if n <= 1:
    return 1
else:
    while i > 0:
        n = n * (i - 1)
        i -= 1
        return n
59 Các vòng lặp hiện tại trong đó số lần lặp lại được chỉ định rõ ràng.definite iteration with
def factorial(n):
n = n
i = n 
if n <= 1:
    return 1
else:
    while i > 0:
        n = n * (i - 1)
        i -= 1
        return n
59 loops—recurrent execution where the number of repetitions is specified explicitly.

Xem bây giờ hướng dẫn này có một khóa học video liên quan được tạo bởi nhóm Python thực sự. Xem nó cùng với hướng dẫn bằng văn bản để hiểu sâu hơn về sự hiểu biết của bạn: Làm chủ trong khi các vòng lặp This tutorial has a related video course created by the Real Python team. Watch it together with the written tutorial to deepen your understanding: Mastering While Loops

Tại sao vòng lặp trong khi tôi không lặp lại Python?

Mã của bạn được thụt lề không chính xác.Để đặt câu hỏi ở đây, chúng ta cần xem chính xác sự thụt lề mà bạn có.Bạn có thể sao chép/dán mã của mình vào hộp chỉnh sửa và sau đó chọn nó và nhấn Ctrl-K để có nó được thụt đồng đều cho định dạng mã Markdown.. In order to ask a question here, we need to see precisely the indentation you have. You can copy/paste your code into the edit box and then select it and hit ctrl-K to have it uniformly indented for Markdown code formatting.

Làm trong khi các vòng lặp luôn thực hiện một lần Python?

Một vòng lặp trong thời gian thậm chí có thể không thực thi một lần nếu điều kiện không được đáp ứng.Tuy nhiên, do-trong khi sẽ chạy một lần, sau đó kiểm tra điều kiện cho các vòng lặp tiếp theo.Mặc dù có mặt trong hầu hết các ngôn ngữ lập trình phổ biến, Python không có một tuyên bố trong khi thực hiện bản địa.do-while will run once, then check the condition for subsequent loops. In spite of being present in most of the popular programming languages, Python does not have a native do-while statement.

Làm trong khi vòng lặp trong Python hay không?

Python không có chức năng tích hợp để tạo ra một vòng trong khi vòng lặp như các ngôn ngữ khác.Nhưng có thể mô phỏng một vòng trong khi vòng lặp trong Python. like other languages. But it is possible to emulate a do while loop in Python.