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ơ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ơ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ơ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
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à
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:
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à
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>>> whilen>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>>> whilen>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.
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
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
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
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)
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)
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)
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)
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)
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.