Giả sử chúng ta phải in một tin nhắn nhiều lần. Chúng ta có thể sử dụng vòng lặp while để viết chức năng tiện ích này
def print_msg[count, msg]: while count > 0: print[msg] count -= 1 print_msg[3, "Hello World"]
đầu ra
Vòng lặp while với câu lệnh break
Đôi khi, chúng tôi rõ ràng muốn thực thi một khối mã vô thời hạn cho đến khi nhận được tín hiệu thoát. Chúng ta có thể triển khai tính năng này bằng cách sử dụng câu lệnh ngắt và chặn “while True”
Dưới đây là một ví dụ về tập lệnh tiện ích lấy đầu vào của người dùng [số nguyên] và in giá trị bình phương của nó. Chương trình kết thúc khi người dùng nhập 0
while True: i = input['Please enter an integer [0 to exit]:\n'] i = int[i] if i == 0: print["Exiting the Program"] break print[f'{i} square is {i ** 2}']
Đây là đầu ra của một lần chạy mẫu của chương trình này
Vòng lặp trong khi Python với Câu lệnh tiếp tục
Giả sử chúng ta muốn tập lệnh trên chỉ hoạt động với các số dương. Trong trường hợp đó, chúng ta có thể sử dụng câu lệnh continue để bỏ qua việc thực thi khi người dùng nhập số âm
while True: i = input['Please enter an integer [0 to exit]:\n'] i = int[i] if i < 0: print["The program works with Positive Integers only."] continue if i == 0: print["Exiting the Program"] break print[f'{i} square is {i ** 2}']
đầu ra
Please enter an integer [0 to exit]: 5 5 square is 25 Please enter an integer [0 to exit]: -10 The program works with Positive Integers only. Please enter an integer [0 to exit]: 0 Exiting the Program
Python while Vòng lặp với câu lệnh khác
Chúng ta có thể sử dụng khối lệnh khác với vòng lặp while. Mã khối khác được thực thi khi vòng lặp while kết thúc bình thường i. e. điều kiện trở thành Sai
Nếu vòng lặp while kết thúc do Lỗi hoặc câu lệnh ngắt, thì mã khối khác không được thực thi
count = 5 while count > 0: print["Welcome"] count -= 1 else: print["Exiting the while Loop"]
đầu ra
Hãy xem điều gì sẽ xảy ra khi vòng lặp while kết thúc do lỗi
count = 5 while count > 0: print["Welcome"] count -= 1 if count == 2: raise ValueError else: print["Exiting the while Loop"]
đầu ra
Welcome Welcome Welcome Traceback [most recent call last]: File "/Users/pankaj/Documents/PycharmProjects/PythonTutorialPro/hello-world/while-loop.py", line 7, in raise ValueError ValueError
Hãy thay đổi chương trình để thoát khỏi vòng lặp while
count = 5 while count > 0: print["Welcome"] count -= 1 if count == 2: break else: print["Exiting the while Loop"]
đầu ra
________số 8
Ví dụ vòng lặp lồng nhau
Chúng ta cũng có thể có các vòng lặp while lồng nhau. Dưới đây là một ví dụ về việc tạo một danh sách các bộ bằng cách sử dụng các vòng lặp while lồng nhau
def print_msg[count, msg]: while count > 0: print[msg] count -= 1 print_msg[3, "Hello World"]0
đầu ra.
def print_msg[count, msg]: while count > 0: print[msg] count -= 1 print_msg[3, "Hello World"]2
Sự kết luận
Vòng lặp while trong Python được sử dụng để chạy một khối mã trong số lần cụ thể. Chúng ta có thể sử dụng câu lệnh break và continue với vòng lặp while. Khối khác với vòng lặp while được thực thi khi vòng lặp while kết thúc bình thường. Vòng lặp while cũng hữu ích trong việc chạy tập lệnh vô thời hạn trong vòng lặp vô hạn
Câu lệnh vòng lặp while trong ngôn ngữ lập trình Python lặp đi lặp lại việc thực thi câu lệnh đích miễn là một điều kiện nhất định là đúng
cú pháp
Cú pháp của vòng lặp while trong ngôn ngữ lập trình Python là -
while True: i = input['Please enter an integer [0 to exit]:\n'] i = int[i] if i == 0: print["Exiting the Program"] break print[f'{i} square is {i ** 2}']1
Ở đây, [các] câu lệnh có thể là một câu lệnh đơn lẻ 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à true là bất kỳ giá trị khác 0 nào. Vòng lặp lặp khi điều kiện đúng
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 bởi cùng một số khoảng cách ký tự sau 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 đầu dòng làm phương pháp nhóm các câu lệnh
Sơ đồ dòng chảy
Ở đây, điểm mấu chốt của vòng lặp while là 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 lặp sẽ bị bỏ qua và câu lệnh đầu tiên sau vòng lặp while sẽ được thực thi
Thí dụ
Bản trình diễn trực tiếpwhile True: i = input['Please enter an integer [0 to exit]:\n'] i = int[i] if i == 0: print["Exiting the Program"] break print[f'{i} square is {i ** 2}']2
Khi đoạn mã trên được thực thi, nó tạo ra kết quả sau -
while True: i = input['Please enter an integer [0 to exit]:\n'] i = int[i] if i == 0: print["Exiting the Program"] break print[f'{i} square is {i ** 2}']3
Khối ở đây, bao gồm các câu lệnh in và tăng, được thực hiện lặp đi lặp lại cho đến khi số đếm không nhỏ hơn 9. Với mỗi lần lặp lại, giá trị hiện tại của số lượng chỉ mục được hiển thị và sau đó tăng thêm 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 FALSE. Bạn phải thận trọng khi sử dụng vòng lặp while vì có khả năng điều kiện này không bao giờ chuyển thành giá trị FALSE. Đ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 lặp vô hạn
Một vòng lặp vô hạn có thể hữu ích trong lập trình máy khách/máy chủ, nơi máy chủ cần chạy liên tục để các chương trình máy khách có thể giao tiếp với nó khi cần thiết
while True: i = input['Please enter an integer [0 to exit]:\n'] i = int[i] if i == 0: print["Exiting the Program"] break print[f'{i} square is {i ** 2}']4
Khi đoạn mã trên được thực thi, nó tạo ra kết quả sau -
while True: i = input['Please enter an integer [0 to exit]:\n'] i = int[i] if i == 0: print["Exiting the Program"] break print[f'{i} square is {i ** 2}']5
Ví dụ trên diễn ra 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
Sử dụng Tuyên bố khác với Vòng lặp While
Python hỗ trợ để có một câu lệnh khác được liên kết với một câu lệnh vòng lặp
Nếu câu lệnh khác được sử dụng với vòng lặp while, câu lệnh khác được thực thi khi điều kiện trở thành sai
Ví dụ sau minh họa sự kết hợp của câu lệnh other với câu lệnh while in ra một số miễn là nó nhỏ hơn 5, nếu không thì câu lệnh khác sẽ được thực thi
Bản trình diễn trực tiếpwhile True: i = input['Please enter an integer [0 to exit]:\n'] i = int[i] if i == 0: print["Exiting the Program"] break print[f'{i} square is {i ** 2}']6
Khi đoạn mã trên được thực thi, nó tạo ra kết quả sau -
while True: i = input['Please enter an integer [0 to exit]:\n'] i = int[i] if i == 0: print["Exiting the Program"] break print[f'{i} square is {i ** 2}']7
Suite Độc Lập
Tương tự như cú pháp câu lệnh if, nếu mệnh đề while của bạn chỉ bao gồm một câu lệnh duy nhất, thì nó có thể được đặt trên cùng một dòng với tiêu đề while
Đây là cú pháp và ví dụ về mệnh đề while một dòng -
while True: i = input['Please enter an integer [0 to exit]:\n'] i = int[i] if i == 0: print["Exiting the Program"] break print[f'{i} square is {i ** 2}']8
Tốt hơn là không thử ví dụ trên vì nó đi vào vòng lặp vô hạn và bạn cần nhấn tổ hợp phím CTRL+C để thoát