Trong khi ở trăn

Các cấu trúc lặp trong Python bao gồm hai loại. lặp lại với bước xác định trước [for] và lặp lại với bước không xác định [trong khi]. Nhìn chung hai cấu trúc lặp trong Python Tương đối gần với các cấu trúc lặp trong C hoặc C#

word = ''
while[word.lower[] != 'close']:
    word = input['Enter a word: ']
    print[f'You have typed "{word}"']

Trong ví dụ này, chúng ta liên tục yêu cầu người dùng nhập vào một từ. Nếu người dùng nhập từ 'đóng' thì sẽ kết thúc vòng lặp [và kết thúc chương trình]. If user input from other thì sẽ yêu cầu nhập lại

Chúng ta không biết khi nào người dùng nào sẽ nhập 'đóng', và cũng có thể là không bao giờ. Vì vậy, vòng lặp trong khi được gọi là vòng lặp với bước số không xác định trước

Biến từ đóng vai trò chơi là biến điều khiển cho điều kiện biểu thức

Vui lòng xem một ví dụ khác

# tính tổng các số từ 1 đến 99
sum = 0
i = 1
while i < 100:
    sum += i
    i += 1
print[sum]

Trong ví dụ này chúng ta tính tổng các số từ 1 đến 99. Để thực hiện công việc này, chúng ta sử dụng một biến i với vai trò biến đếm. Variation i ban đầu nhận giá trị 1. Qua mỗi vòng lặp, tôi sẽ tăng thêm 1 đơn vị và biến tổng sẽ cộng thêm giá trị bằng i. Quá trình này sẽ lặp đi lặp lại trong chừng mực nào tôi vẫn nhỏ hơn 100. Đến khi tôi đạt được giá trị 100 thì vòng lặp kết thúc

Cấu trúc while của Python là một lệnh phức hợp với một mệnh đề. Trong đó, tiêu đề là while

# tính tổng các số từ 1 đến 99
sum = 0
i = 1
while i < 100:
    sum += i
    i += 1
print[sum]
0. Logic biểu thức là loại biểu thức mà kết quả trả về thuộc kiểu bool [giá trị Đúng hoặc Sai]. Trong các ví dụ trên, biểu thức logic là i < 100 và
# tính tổng các số từ 1 đến 99
sum = 0
i = 1
while i < 100:
    sum += i
    i += 1
print[sum]
1

Stop any logic expression but accept value True, will implement the command list in the suite

Để tránh tạo vòng lặp vô tận, bên trong danh sách lệnh của vòng lặp trong khi lệnh phải có tác dụng thay đổi giá trị của logic biểu thức

Trong ví dụ thứ nhất, chúng ta liên tục yêu cầu người dùng nhập giá trị mới cho biến char. Điều này đảm bảo khả năng thoát khỏi vòng lặp

Trong ví dụ thứ hai, chúng ta làm biến đổi giá trị của tôi qua mỗi vòng lặp [tăng thêm 1 đơn vị]. Điều này chắc chắn đến một lúc nào đó tôi sẽ có giá trị lớn hơn 100 và kết thúc vòng lặp

Cấu hình vòng lặp FOR

# in ra các số trong phạm vi từ 1 đến 100
for n in range[100]:    
    print[n + 1, end = '\t']

# in ra các số trong phạm vi từ 100 đến 199
for n in range[100, 200]:
    print[n, end = '\t']

# in ra các số lẻ trong phạm vi từ 1 đến 99
for n in range[1, 100, 2]:
    print[n, end = '\t']

Cấu trúc cho phép lặp lại việc thực thi mã khối theo một số lần xác định sẵn từ đầu

Cấu trúc cho cũng là một lệnh phức hợp với một mệnh đề [khác với cấu trúc bổ sung nếu có nhiều mệnh đề] trong tiêu đề đó có dạng cho

# tính tổng các số từ 1 đến 99
sum = 0
i = 1
while i < 100:
    sum += i
    i += 1
print[sum]
0. Suite in the ví dụ trên chỉ chứa một hàm print[]

Số lần lặp và cách thức lặp được tạo bởi hàm range[]

Hàm

# tính tổng các số từ 1 đến 99
sum = 0
i = 1
while i < 100:
    sum += i
    i += 1
print[sum]
1trả về một biến chứa dãy các giá trị nằm trong một khoảng xác định theo luật. Hàm này có 3 dạng

  • phạm vi [dừng]. nhận 1 tham số là giá trị cuối của dãy và trả về dãy số [0, dừng – 1]. Ví dụ range[5] will return dãy số 0, 1, 2, 3, 4. Bước nhảy giữa các giá trị tiếp theo là 1
  • phạm vi [bắt đầu, dừng]. nhận 2 tham số là giá trị đầu và cuối của dãy, trả về dãy [start, stop-1]. Ví dụ, range[1, 5] sẽ trả về dãy số 1, 2, 3, 4 [bước nhảy giữa các giá trị tiếp theo là 1]
  • phạm vi [bắt đầu, dừng, bước]. tương tự như trường hợp 2 nhưng bước nhảy được xác định bởi bước biến. Ví dụ, range[1, 10, 2] sẽ trả về dãy 1, 3, 5, 7, 9 [bước nhảy giữa các giá trị tiếp theo là 2]

In the function range, start, stop and step could accept all giá trị âm và dương

  • Nếu bước nhận giá trị âm thanh [và bắt đầu > dừng] sẽ tạo ra các chuỗi giảm dần. Ví dụ range[0, -5, -1] sẽ tạo ra dãy 0, -1, -2, -3, -4
  • If stop < start and step positive, or stop > start and step sound, will create a blank string [no any value]. Ví dụ, range[2, -3, 1] and range[2, 3, -1] đều không tạo ra bất kỳ phần tử nào

Với danh sách giá trị mà hàm range[] được tạo ra như trên, cấu trúc for sẽ lần lượt lấy từng giá trị được gán cho biến chạy [biến n trong các ví dụ trên] và thực hiện khối lệnh. Như vậy, số lần lặp đã được xác định sẵn từ lúc gọi hàm range[]

Sử dụng vòng lặp cho các loại danh sách khác

At on them ta used for with các giá trị lấy từ danh sách được tạo ra bởi function range[]. Trong Python, nhiều loại tập dữ liệu có thể sử dụng cùng một vòng cho

for c in 'Hello world':
    print[c, end = '\t']

Trong ví dụ trên danh sách giá trị lại là chuỗi ký tự 'Xin chào thế giới'. Biến chạy sẽ lần lượt nhận từng ký tự từ chuỗi, bắt đầu từ ký tự đầu tiên ‘H’ đến ký tự cuối cùng ‘d’. Trong ví dụ trên chúng ta chỉ đơn giản là trong ký tự tương ứng ra bảng điều khiển

Vui lòng xem một ví dụ khác

companies = ['Apple', 'Google', 'Microsoft', 'Huawei', 'Yandex', 'Facebook']
for c in companies:
    print[c]

Trong ví dụ trên, các công ty là một biến kiểu danh sách [danh sách]. Kiểu dữ liệu này chúng ta chưa học nhưng bạn có thể định cấu hình nó tương tự như kiểu mảng của C. Biến kiểu danh sách cũng có thể trở thành danh sách dữ liệu cho vòng lặp cho. Khi biến này chạy c sẽ lần lượt nhận các giá trị trong danh sách theo thứ tự

Apple
Google
Microsoft
Huawei
Yandex
Facebook
Nhấn phím bất kỳ để thoát

Một ví dụ khác

# tính tổng các số dương từ một tuple
total = 0
for num in [-22.0, 3.5, 8.1, -10, 0.5]:
    if num > 0:
        total = total + num

Trong ví dụ này, bạn tính tổng số dương từ một tuple. Tuple cũng là một kiểu tập hợp dữ liệu mà chúng ta sẽ nghiên cứu chi tiết sau

Ghi chú. Không phải tập hợp dữ liệu kiểu nào cũng có thể làm danh sách lặp cho vòng lặp cho. Các kiểu dữ liệu sử dụng được cho vòng để được gọi là các kiểu có thể lặp lại

Điều khiển vòng lặp, ngắt và tiếp tục

Khi làm việc với vòng lặp có thể xuất hiện hai vấn đề

[1] Bạn muốn kết thúc vòng sớm hơn dự kiến ​​hoặc theo điều kiện. Lấy ví dụ, bạn có một danh sách khách hàng và muốn tìm tên của một khách hàng trong đó. You see times of each name from the first list. Nếu gặp tên khách hàng cần tìm, bạn sẽ dừng lại chứ không tiếp tục xem hết danh sách nữa. Ở đây bạn phá vỡ hoàn toàn vòng lặp

[2] Bạn muốn bỏ qua một chu kỳ trong vòng lặp để bắt đầu chu kỳ tiếp theo. Lấy ví dụ, bạn dự kiến ​​chơi 10 ván bài. Ở ván thứ 3 bài xấu quá, bạn quyết định bỏ cuộc để chờ ván tiếp theo. Ở đây bạn không dừng hoàn toàn vòng lặp mà chỉ bỏ qua những công việc mà bạn sẽ phải làm trong chu kỳ đó và khởi động một chu kỳ mới

Hai vấn đề này đã được Python giải quyết bằng hai lệnh tương ứng. break [phá vỡ vòng lặp, kết thúc sớm] và tiếp tục [xóa chu kỳ hiện tại, bắt đầu chu kỳ mới]. Cả hai loại vòng lặp [for, while] đều có thể sử dụng ngắt và tiếp tục

Ví dụ như break

________số 8

Ví dụ này cho ra kết quả như sau

1. lần lặp lại tiếp theo
2. lần lặp lại tiếp theo
3. phá vỡ.

# demonstrating a `continue` statement in a loop
x = 1
while x < 4:
    print["x = ", x, ">> enter loop-body 

Chủ Đề