Hướng dẫn flag-controlled loop python - python vòng lặp được kiểm soát bằng cờ


Một câu lệnh LOOP trong ngôn ngữ lập trình Python liên tục thực hiện một câu lệnh đích miễn là một điều kiện nhất định là đúng.while loop statement in Python programming language repeatedly executes a target statement as long as a given condition is true.

Cú pháp

Cú pháp của vòng lặp trong một thời gian trong ngôn ngữ lập trình Python là -while loop in Python programming language is −

while expression:
   statement(s)

Ở đây, (các) tuyên bố có thể là một tuyên bố duy nhất hoặc một khối các câu lệnh. Điều kiện có thể là bất kỳ biểu thức nào, và đúng là bất kỳ giá trị khác không. Vòng lặp lặp lại trong khi điều kiện là đúng.statement(s) may be a single statement or a block of statements. The condition may be any expression, and true is any non-zero value. The loop iterates while the condition is true.

Khi điều kiện trở thành sai, điều khiển chương trình chuyển đến dòng ngay sau vòng lặp.

Trong Python, tất cả các câu lệnh được thụt vào cùng một số lượng không gian ký tự sau khi cấu trúc lập trình được coi là một phần của một khối mã. Python sử dụng thụt lề làm phương pháp nhóm các câu lệnh.

Sơ đồ dòng chảy

Hướng dẫn flag-controlled loop python - python vòng lặp được kiểm soát bằng cờ

Ở đây, điểm chính của vòng lặp trong khi vòng lặp có thể không bao giờ chạy. Khi điều kiện được kiểm tra và kết quả là sai, thân vòng sẽ bị bỏ qua và câu lệnh đầu tiên sau khi vòng lặp sẽ được thực thi.

Thí dụ

Bản thử trực tiếp

#!/usr/bin/python

count = 0
while (count < 9):
   print 'The count is:', count
   count = count + 1

print "Good bye!"

Khi mã trên được thực thi, nó sẽ tạo ra kết quả sau -

The count is: 0
The count is: 1
The count is: 2
The count is: 3
The count is: 4
The count is: 5
The count is: 6
The count is: 7
The count is: 8
Good bye!

Khối ở đây, bao gồm các câu lệnh in và tăng, được thực thi nhiều lần cho đến khi số lượng không còn nhỏ hơn 9. Với mỗi lần lặp, giá trị hiện tại của số chỉ số được hiển thị và sau đó tăng lên 1.

Vòng lặp vô hạn

Một vòng lặp trở thành vòng lặp vô hạn nếu một điều kiện không bao giờ trở thành sai. Bạn phải thận trọng khi sử dụng trong khi các vòng lặp vì khả năng điều kiện này không bao giờ giải quyết được một giá trị sai. Điều này dẫn đến một vòng lặp không bao giờ kết thúc. Một vòng lặp như vậy được gọi là một vòng vô hạn.

Vòng lặp vô hạn có thể hữu ích trong lập trình máy khách/máy chủ trong đó máy chủ cần chạy liên tục để các chương trình khách hàng có thể giao tiếp với nó khi được yêu cầu.

#!/usr/bin/python

var = 1
while var == 1 :  # This constructs an infinite loop
   num = raw_input("Enter a number  :")
   print "You entered: ", num

print "Good bye!"

Khi mã trên được thực thi, nó sẽ tạo ra kết quả sau -

Enter a number  :20
You entered:  20
Enter a number  :29
You entered:  29
Enter a number  :3
You entered:  3
Enter a number between :Traceback (most recent call last):
   File "test.py", line 5, in 
      num = raw_input("Enter a number :")
KeyboardInterrupt

Khối ở đây, bao gồm các câu lệnh in và tăng, được thực thi nhiều lần cho đến khi số lượng không còn nhỏ hơn 9. Với mỗi lần lặp, giá trị hiện tại của số chỉ số được hiển thị và sau đó tăng lên 1.

Vòng lặp vô hạn

Một vòng lặp trở thành vòng lặp vô hạn nếu một điều kiện không bao giờ trở thành sai. Bạn phải thận trọng khi sử dụng trong khi các vòng lặp vì khả năng điều kiện này không bao giờ giải quyết được một giá trị sai. Điều này dẫn đến một vòng lặp không bao giờ kết thúc. Một vòng lặp như vậy được gọi là một vòng vô hạn.else statement associated with a loop statement.

  • Vòng lặp vô hạn có thể hữu ích trong lập trình máy khách/máy chủ trong đó máy chủ cần chạy liên tục để các chương trình khách hàng có thể giao tiếp với nó khi được yêu cầu.else statement is used with a while loop, the else statement is executed when the condition becomes false.

Ví dụ trên đi trong một vòng lặp vô hạn và bạn cần sử dụng Ctrl+C để thoát khỏi chương trình.

Bản thử trực tiếp

#!/usr/bin/python

count = 0
while count < 5:
   print count, " is  less than 5"
   count = count + 1
else:
   print count, " is not less than 5"

Khi mã trên được thực thi, nó sẽ tạo ra kết quả sau -

0 is less than 5
1 is less than 5
2 is less than 5
3 is less than 5
4 is less than 5
5 is not less than 5

Khối ở đây, bao gồm các câu lệnh in và tăng, được thực thi nhiều lần cho đến khi số lượng không còn nhỏ hơn 9. Với mỗi lần lặp, giá trị hiện tại của số chỉ số được hiển thị và sau đó tăng lên 1.

Vòng lặp vô hạnif statement syntax, if your while clause consists only of a single statement, it may be placed on the same line as the while header.

Một vòng lặp trở thành vòng lặp vô hạn nếu một điều kiện không bao giờ trở thành sai. Bạn phải thận trọng khi sử dụng trong khi các vòng lặp vì khả năng điều kiện này không bao giờ giải quyết được một giá trị sai. Điều này dẫn đến một vòng lặp không bao giờ kết thúc. Một vòng lặp như vậy được gọi là một vòng vô hạn.one-line while clause −

#!/usr/bin/python

flag = 1
while (flag): print 'Given flag is really true!'
print "Good bye!"

Vòng lặp vô hạn có thể hữu ích trong lập trình máy khách/máy chủ trong đó máy chủ cần chạy liên tục để các chương trình khách hàng có thể giao tiếp với nó khi được yêu cầu.

python_loops.htm

Tôi đang sử dụng nhấp chuột để tạo một công cụ dòng lệnh thực hiện một số tiền xử lý dữ liệu. Cho đến bây giờ, về cơ bản tôi đã tồn tại bằng cách sử dụng click.option () làm cờ với một số câu lệnh IF trong mã của mình để tôi có thể chọn các tùy chọn tôi muốn. Tuy nhiên, tôi đang đấu tranh để tìm một cách thanh lịch để giải quyết vấn đề tiếp theo của tôi. Vì tôi tin rằng cấu trúc mã chung không phụ thuộc vào mục đích của tôi, tôi sẽ cố gắng nói chung nhất có thể mà không đi vào chi tiết về những gì đi vào mã chính.

Tôi có một danh sách các yếu tố

#!/usr/bin/python

count = 0
while (count < 9):
   print 'The count is:', count
   count = count + 1

print "Good bye!"
0 mà tôi muốn lặp lại và áp dụng một số mã rất dài sau mỗi lần lặp. Tuy nhiên, tôi muốn điều này phụ thuộc vào một lá cờ (thông qua nhấp chuột, như tôi đã nói). Cấu trúc chung sẽ như thế này:

@click.option('--myflag', is_flag=True)
#just used click.option to point out that I use click but it is just a boolean
if myflag: 
    for i in my_list: 
        print('Function that depends on i')
        print('Here goes the rest of the code')
else:
    print('Function independent on i') 
    print('Here goes the rest of the code')

Vấn đề của tôi là tôi không muốn sao chép dán hai lần phần còn lại của mã trong cấu trúc trên (đó là một mã dài và khó tích hợp vào một hàm). Có cách nào làm được việc này không? Đó là, có cách nào để nói với Python: "Nếu

#!/usr/bin/python

count = 0
while (count < 9):
   print 'The count is:', count
   count = count + 1

print "Good bye!"
1, hãy chạy toàn bộ mã trong khi lặp vào
#!/usr/bin/python

count = 0
while (count < 9):
   print 'The count is:', count
   count = count + 1

print "Good bye!"
2.

EDIT: Tôi tin rằng nó thực sự có thể hữu ích để đi cụ thể hơn một chút.

Những gì tôi có là:

mylist=['washington','la','houston']

if myflag: 
    for i in my_list: 
        train,test = full_data[full_data.city!=i],full_data[full_data.city==i]
        print('CODE:Clean,tokenize,train,performance')
else:
    def train_test_split2(df, frac=0.2):
        # get random sample
        test = df.sample(frac=frac, axis=0,random_state=123)
        # get everything but the test sample
        train = df.drop(index=test.index)
        return train, test
    train, test = train_test_split2(full_data[['tidy_tweet', 'classify']])
    print('CODE: Clean,tokenize,train,performance')

#!/usr/bin/python

count = 0
while (count < 9):
   print 'The count is:', count
   count = count + 1

print "Good bye!"
3 Họ một khung dữ liệu gấu trúc chứa văn bản và phân loại. Bất cứ khi nào tôi đặt
#!/usr/bin/python

count = 0
while (count < 9):
   print 'The count is:', count
   count = count + 1

print "Good bye!"
4, tôi giả vờ mã để đào tạo một số mô hình hiệu suất thử nghiệm khi rời một số thành phố làm dữ liệu thử nghiệm. Do đó, vòng lặp cung cấp cho tôi một cái nhìn tổng quan về cách mô hình của tôi thực hiện trên các thành phố khác nhau (một số loại vòng lặp nhóm).

Theo tùy chọn thứ hai,

#!/usr/bin/python

count = 0
while (count < 9):
   print 'The count is:', count
   count = count + 1

print "Good bye!"
5, có một sự phân chia kiểm tra ngẫu nhiên và việc đào tạo chỉ được thực hiện một lần.

Đó là phần mã mà tôi không muốn nhân đôi.

Tôi hy vọng điều này sẽ giúp trực giác trước đó.