Python có làm không

Vòng lặp do-while được gọi là vòng lặp “có kiểm soát lối ra” do điều kiện lặp (hoặc vị từ) được kiểm tra sau khi khối mã được bao bọc bên trong vòng lặp do-while được thực thi một lần. Ngược lại, vòng lặp for và vòng lặp while là các vòng lặp được kiểm soát mục nhập. Nghĩa là, điều kiện lặp được kiểm tra trước khi khối mã trong vòng lặp được thực thi dù chỉ một lần

Tóm lại, vòng lặp do-while thực hiện ít nhất một lần, bất kể điều kiện lặp của nó có đúng hay không, vòng lặp for và vòng lặp while không được thực hiện trong trường hợp tương tự

Một trong những ví dụ quan trọng mà vòng lặp này được sử dụng là trong các chương trình điều khiển bằng menu, trong đó menu phải được hiển thị cho người dùng ít nhất một lần và mỗi khi họ quay lại màn hình menu

Bài viết này sẽ giải thích code và logic để triển khai vòng lặp do-while trong Python. Vì Python không cung cấp rõ ràng vòng lặp do-while của nó (như C và C++ làm), nên chúng ta sẽ phải thực hiện một giải pháp thay thế bằng cách sử dụng các vòng lặp hiện có trong Python, vòng lặp for và vòng lặp while. Nhưng trước tiên, chúng ta hãy xem luồng điều khiển cho vòng lặp do-while

Lưu đồ vòng lặp Do While

Vòng lặp do-while trong sơ đồ luồng logic (hoặc biểu đồ luồng), trông như sau

Python có làm không

Giải thích sơ đồ dòng chảy

Điều khiển của chương trình đi vào bắt đầu vòng lặp. Đoạn mã nằm trong vòng lặp do-while được thực thi lần đầu tiên, và sau khi thực hiện xong, bộ điều khiển sẽ tiếp tục kiểm tra điều kiện lặp

Giả sử điều kiện lặp được đánh giá là đúng và điều khiển chuyển sang phần đầu của khối mã (và quá trình thực thi của nó bắt đầu lại). Nếu điều kiện ước tính thành giá trị sai, điều khiển sẽ thoát khỏi vòng lặp và khối mã không còn được thực thi nữa

Nếu việc đọc mã giúp bạn hiểu rõ hơn, thì đây là mã kiểu C/C++ sẽ giúp bạn hiểu vòng lặp do-while sẽ thực thi như thế nào

do
{
	…
	… 
// some code to execute
} 
while (loop_condition)

Như bạn có thể thấy từ mẫu mã và sơ đồ, điều kiện cho vòng lặp được kiểm tra sau khi thực thi mã được bao bọc ít nhất một lần

Vì cấu trúc như vậy không có trong Python theo mặc định, nên chúng ta có thể sửa đổi các vòng lặp hiện có để hoạt động một cách logic giống như các vòng lặp do-while trong các ngôn ngữ khác

Mô phỏng vòng lặp Do While trong Python

Hãy để chúng tôi xây dựng giải pháp một cách hợp lý bằng cách liệt kê tất cả những gì mã của chúng tôi cần làm

  1. Nhập phạm vi mã bất kể điều kiện lặp
  2. Thực thi khối mã
  3. Kiểm tra điều kiện lặp
  4. Lặp lại cho đến khi điều kiện lặp trở thành sai

Xem điểm thứ 4, chúng tôi hiểu rằng chúng tôi sẽ phải sử dụng một số cơ chế lặp. Chúng ta cần cái được gọi là vòng lặp vô hạn, vòng lặp này cung cấp vòng lặp vô hạn vô điều kiện và do đó, cho phép chúng ta nhập khối mã mà không có bất kỳ hạn chế nào lần đầu tiên. Theo mặc định, Python cung cấp hai vòng lặp, vòng lặp for và vòng lặp while. Và bạn biết những gì? . Hãy xem từng người một

1. Sử dụng vòng lặp For để mô phỏng vòng lặp Do-while trong Python

Những người mới bắt đầu học Python chắc hẳn đã sử dụng vòng lặp for trên một số phạm vi hoặc một số danh sách, từ điển, sử dụng một số iterable. Bây giờ chúng ta sẽ sử dụng cái được gọi là iterator (vì nó cung cấp một thủ tục để thực hiện các vòng lặp vô hạn). Để thực hiện tương tự, chúng tôi gọi một phương thức khác, iter()

Cú pháp sử dụng phương thức iter để giải quyết vấn đề của chúng ta là

for _ in iter(data_type, arg):
	…
	…
	// execute some code
	// and check the condition

Trong đó data_type có thể là bất kỳ lớp nào, trong khi đối số arg có thể là bất kỳ đối tượng nào của bất kỳ lớp nào nhưng không bằng đối tượng được trả về bởi hàm tạo mặc định của lớp đó

Bảng sau đây hiển thị các data_types khác nhau so với. các đối số có thể khác nhau, điều này sẽ cho phép chúng ta mô phỏng một vòng lặp vô hạn

int1, -2, 1. 4, 'v', “một chuỗi ngẫu nhiên”, [1,3,4] (bất kỳ giá trị nào khác 0)float1, 0. 1, 0. 001, -3, (bất kỳ số nào khác 0 hoặc 0. 0)dictBất cứ thứ gì khác ngoài {}listBất cứ thứ gì khác ngoài []tupleBất cứ thứ gì khác ngoài ()strBất cứ thứ gì khác ngoài ‘’

Người đọc có thể tự do khám phá thêm các cặp data_type và arg như vậy. Nhưng để đơn giản, chúng tôi sẽ sử dụng và đề xuất đoạn mã sau để mô phỏng vòng lặp do-while trong Python bằng vòng lặp for

for _ in iter(int, 1):
   #  execute the code
   if not condition:
       break

Hoặc tương đương

for _ in iter(int, 1):
   #  execute the code
   if condition:
       pass
   else:
       break

Giải trình

  1. Điều khiển đi vào vòng lặp for. Sau mỗi lần thực hiện, vòng lặp sẽ cố gắng kiểm tra xem biến lặp (_), ban đầu là 0 (vì 0 là giá trị được hàm tạo int() trả về), có thể trở thành bằng với giá trị của tham số thứ hai hay không, . Vì chúng tôi không thực hiện thay đổi nào đối với biến lặp _ bên trong khối mã, nên nó không bao giờ bằng 1 và do đó, chúng tôi nhận được một vòng lặp vô hạn

  2. Trong khi thực thi khối mã bên trong khối vòng lặp, nếu điều kiện được đánh giá là đúng thì sẽ không có gì xảy ra. Việc thực hiện sẽ tiếp tục đến lần lặp tiếp theo. Nếu không, điều khiển sẽ thoát ra khỏi vòng lặp

Do đó, cú pháp để triển khai vòng lặp do while trong Python sử dụng vòng lặp for là

for _ in iter(int, 1):
   #  execute the code
   if not condition:
       break

Hoặc

for _ in iter(int, 1):
   #  execute the code
   if condition:
       pass
   else:
       break

2. Sử dụng vòng lặp While

Nó đơn giản hơn nhiều so với việc thực hiện một vòng lặp vô hạn bằng cách sử dụng vòng lặp for trong Python. Cấu trúc chung của vòng lặp while trong Python được đưa ra bên dưới

while condition:
   # execute code

Bây giờ, nếu chúng ta muốn vào vòng lặp while một cách vô điều kiện, chúng ta có thể cho nó một giá trị thực mãi mãi. Bạn có thể đoán giá trị như vậy có thể là gì không?

Bây giờ, điều này đã trở thành một vòng lặp vô hạn sẽ thực thi không giới hạn. Nhưng chúng tôi muốn kiểm tra tình trạng, phải không?

while True:
   # execute code
   if not condition:
       break

Hoặc tương đương

________số 8_______

Do đó, cú pháp để triển khai vòng lặp do-while trong Python bằng vòng lặp while là

while True:
   # execute code
   if not condition:
       break

Hoặc tương đương

________số 8_______

Vì vậy, chúng tôi đã hiểu rõ lý thuyết cũng như việc triển khai của chúng tôi. Hãy tóm tắt các đoạn mã này và di chuyển xa hơn để xem một số ví dụ

Ví dụ

for _ in iter(data_type, arg):
	…
	…
	// execute some code
	// and check the condition
1

đầu ra

Giải trình

Điều khiển đi vào phần đầu của vòng lặp và đánh giá vị từ được đưa ra trước khi. Vì nó là đúng theo mặc định, điều khiển sẽ nhập khối mã và thực thi các câu lệnh có bên trong

Biến i được tăng lên và nó trở thành 11. Hơn nữa, vì điều kiện (11<10) đánh giá là sai, điều khiển thoát ra khỏi vòng lặp

Một điều thú vị cần lưu ý là đoạn mã này thực thi ít nhất một lần mặc dù điều kiện lặp của chúng ta yêu cầu i < 10

Mã tương tự sử dụng triển khai vòng lặp for

for _ in iter(data_type, arg):
	…
	…
	// execute some code
	// and check the condition
2

đầu ra

Giải trình

Trước khi vào khối vòng lặp, biến i được đặt thành 10. Điều khiển đến khối vòng lặp và vì _ không bằng 1 (vì nó bằng 0), nên điều khiển đi vào khối vòng lặp và thực hiện các câu lệnh trong đó. Vì i bằng 10 nên điều kiện i>=10 được coi là đúng và điều khiển thoát ra khỏi khối vòng lặp

Hãy xem thêm một ví dụ về cách in 10 bội số đầu tiên của 2 bằng cách sử dụng cả hai cách triển khai

for _ in iter(data_type, arg):
	…
	…
	// execute some code
	// and check the condition
3

đầu ra

tương đương

for _ in iter(data_type, arg):
	…
	…
	// execute some code
	// and check the condition
4

đầu ra

Phần giải thích cho 2 chương trình này tương tự như các đoạn mã mẫu ở trên

Người đọc được khuyến khích triển khai nhiều chương trình như vậy hơn bằng cách sử dụng các đoạn mã này để giúp việc sử dụng chúng trở nên tiện dụng và chính đáng hơn

Tại sao có một làm

Vòng lặp while đặt giá trị thực của câu lệnh làm điều kiện cần thiết để thực thi mã. Vòng lặp do-while cung cấp khả năng thực thi liên tục của hành động cho đến khi điều kiện không còn đúng nữa . Có thể và đôi khi mong muốn điều kiện luôn được đánh giá là đúng.

Có vòng lặp lặp lại cho đến khi trong Python không?

Vòng lặp lặp lại / cho đến khi là một vòng lặp thực hiện lặp đi lặp lại một khối câu lệnh, cho đến khi một điều kiện nhất định được đánh giá là đúng . Điều kiện sẽ được đánh giá lại vào cuối mỗi lần lặp của vòng lặp, cho phép mã bên trong vòng lặp tác động đến điều kiện để kết thúc nó.

Làm cách nào để gọi một hàm trong Python?

Sử dụng dấu ngoặc đơn để gọi một hàm trong Python . write the function name (or the variable that points to the function object) followed by parentheses (to call the function).