Phạm vi Python cho vòng lặp

Bắt đầu học Python với hướng dẫn Giới thiệu về Python miễn phí của DataCamp. Tìm hiểu Khoa học dữ liệu bằng cách hoàn thành các thử thách mã hóa tương tác và xem video của các chuyên gia hướng dẫn. Bắt đầu bây giờ

Sẵn sàng để làm bài kiểm tra?


Có hai loại vòng lặp trong Python, for và while

Vòng lặp "cho"

Đối với các vòng lặp lặp lại trên một trình tự nhất định. Đây là một ví dụ

primes = [2, 3, 5, 7]
for prime in primes:
    print(prime)

Vòng lặp for có thể lặp qua một dãy số bằng cách sử dụng hàm "range" và "xrange". Sự khác biệt giữa phạm vi và xrange là hàm phạm vi trả về một danh sách mới với các số thuộc phạm vi đã chỉ định đó, trong khi xrange trả về một trình vòng lặp, hiệu quả hơn. (Python 3 sử dụng hàm phạm vi, hoạt động như xrange). Lưu ý rằng hàm phạm vi không dựa trên

# Prints out the numbers 0,1,2,3,4
for x in range(5):
    print(x)

# Prints out 3,4,5
for x in range(3, 6):
    print(x)

# Prints out 3,5,7
for x in range(3, 8, 2):
    print(x)

vòng lặp "trong khi"

Trong khi các vòng lặp lặp lại miễn là một điều kiện boolean nhất định được đáp ứng. Ví dụ

# Prints out 0,1,2,3,4

count = 0
while count < 5:
    print(count)
    count += 1  # This is the same as count = count + 1

câu lệnh "ngắt" và "tiếp tục"

break được sử dụng để thoát khỏi vòng lặp for hoặc while, trong khi continue được sử dụng để bỏ qua khối hiện tại và quay lại câu lệnh "for" hoặc "while". Một vài ví dụ

# Prints out 0,1,2,3,4

count = 0
while True:
    print(count)
    count += 1
    if count >= 5:
        break

# Prints out only odd numbers - 1,3,5,7,9
for x in range(10):
    # Check if x is even
    if x % 2 == 0:
        continue
    print(x)

Chúng ta có thể sử dụng mệnh đề "khác" cho các vòng lặp không?

Không giống như các ngôn ngữ như C,CPP. chúng ta có thể sử dụng other cho các vòng lặp. Khi điều kiện lặp của câu lệnh "for" hoặc "while" không thành công thì phần mã trong "else" được thực thi. Nếu câu lệnh break được thực thi bên trong vòng lặp for thì phần "else" sẽ bị bỏ qua. Lưu ý rằng phần "khác" được thực thi ngay cả khi có câu lệnh tiếp tục

Đây là vài ví dụ

# Prints out 0,1,2,3,4 and then it prints "count value reached 5"

count=0
while(count<5):
    print(count)
    count +=1
else:
    print("count value reached %d" %(count))

# Prints out 1,2,3,4
for i in range(1, 10):
    if(i%5==0):
        break
    print(i)
else:
    print("this is not printed because for loop is terminated because of break but not due to fail in condition")

Tập thể dục

Lặp lại và in ra tất cả các số chẵn từ danh sách số theo cùng thứ tự nhận được. Không in bất kỳ số nào đứng sau 237 trong dãy

vòng lặp for được sử dụng khi bạn có một khối mã mà bạn muốn lặp lại một số lần cố định. Vòng lặp for luôn được sử dụng kết hợp với một đối tượng có thể lặp lại, như danh sách hoặc dải ô. Câu lệnh for của Python lặp lại các phần tử của một dãy theo thứ tự, mỗi lần thực hiện khối đó. Ngược lại câu lệnh for với vòng lặp ''while'', được sử dụng khi một điều kiện cần được kiểm tra mỗi lần lặp hoặc để lặp lại mãi mãi một khối mã. Ví dụ

Đối với vòng lặp từ 0 đến 2, do đó chạy 3 lần

for x in range(0, 3):
    print("We're on time %d" % (x))

Trong khi vòng lặp từ 1 đến vô cùng, do đó chạy mãi mãi

x = 1
while True:
    print("To infinity and beyond! We're getting close, on %d now!" % (x))
    x += 1

Khi chạy ví dụ trên, bạn có thể dừng chương trình bằng cách nhấn đồng thời ctrl+c. Như bạn có thể thấy, các cấu trúc vòng lặp này phục vụ các mục đích khác nhau. Vòng lặp for chạy trong một số lần cố định, trong khi vòng lặp while chạy cho đến khi điều kiện vòng lặp thay đổi. Trong ví dụ này, điều kiện là giá trị boolean True sẽ không bao giờ thay đổi, vì vậy nó sẽ chạy mãi mãi

Họ làm việc như thế nào?

Nếu bạn đã thực hiện bất kỳ chương trình nào trước đây, chắc chắn bạn đã bắt gặp một vòng lặp for hoặc tương đương với nó. Nhiều ngôn ngữ có các điều kiện trong cú pháp vòng lặp for của chúng, chẳng hạn như biểu thức quan hệ để xác định xem vòng lặp đã hoàn thành hay chưa và biểu thức gia số để xác định giá trị vòng lặp tiếp theo. Trong Python, thay vào đó, điều này được kiểm soát bằng cách tạo chuỗi thích hợp. Về cơ bản, bất kỳ đối tượng nào có phương thức lặp lại đều có thể được sử dụng trong vòng lặp for. Các chuỗi chẵn, mặc dù không có phương thức có thể lặp lại - nhưng chúng tôi sẽ không đề cập đến vấn đề đó ở đây. Về cơ bản, có một phương thức có thể lặp lại có nghĩa là dữ liệu có thể được trình bày ở dạng danh sách, trong đó có nhiều giá trị theo thứ tự. Bạn có thể xác định các lần lặp của riêng mình bằng cách tạo một đối tượng với các phương thức next() và iter(). Điều này có nghĩa là bạn sẽ hiếm khi phải xử lý các số nguyên khi nói đến các vòng lặp for trong Python - tuyệt vời cho bất kỳ ai

Vòng lồng nhau

Khi bạn có một khối mã mà bạn muốn chạy x số lần, thì một khối mã trong mã đó mà bạn muốn chạy y số lần, bạn sử dụng cái được gọi là "vòng lặp lồng nhau". Trong Python, chúng được sử dụng nhiều bất cứ khi nào ai đó có danh sách các danh sách - một đối tượng có thể lặp lại trong một đối tượng có thể lặp lại

for x in range(1, 11):
    for y in range(1, 11):
        print('%d * %d = %d' % (x, y, x*y))

Giống như vòng lặp while, vòng lặp for có thể được thực hiện để thoát trước khi kết thúc đối tượng đã cho. Điều này được thực hiện bằng cách sử dụng câu lệnh break, câu lệnh này sẽ ngay lập tức thoát khỏi vòng lặp và tiếp tục thực hiện ở câu lệnh đầu tiên sau khối. Bạn cũng có thể có một mệnh đề khác tùy chọn, mệnh đề này sẽ chạy nếu vòng lặp for thoát ra một cách sạch sẽ - nghĩa là không bị ngắt

________số 8

ví dụ

Vì. Khác

for x in range(3):
    print(x)
else:
    print('Final x = %d' % (x))

Chuỗi như một lần lặp

# Prints out the numbers 0,1,2,3,4
for x in range(5):
    print(x)

# Prints out 3,4,5
for x in range(3, 6):
    print(x)

# Prints out 3,5,7
for x in range(3, 8, 2):
    print(x)
0

Liệt kê dưới dạng có thể lặp lại

# Prints out the numbers 0,1,2,3,4
for x in range(5):
    print(x)

# Prints out 3,4,5
for x in range(3, 6):
    print(x)

# Prints out 3,5,7
for x in range(3, 8, 2):
    print(x)
1

Lặp lại Danh sách các danh sách

# Prints out the numbers 0,1,2,3,4
for x in range(5):
    print(x)

# Prints out 3,4,5
for x in range(3, 6):
    print(x)

# Prints out 3,5,7
for x in range(3, 8, 2):
    print(x)
2

Tạo iterable của riêng bạn

# Prints out the numbers 0,1,2,3,4
for x in range(5):
    print(x)

# Prints out 3,4,5
for x in range(3, 6):
    print(x)

# Prints out 3,5,7
for x in range(3, 8, 2):
    print(x)
3

Trình tạo phạm vi của riêng bạn sử dụng năng suất

# Prints out the numbers 0,1,2,3,4
for x in range(5):
    print(x)

# Prints out 3,4,5
for x in range(3, 6):
    print(x)

# Prints out 3,5,7
for x in range(3, 8, 2):
    print(x)
4

Ghi chú về `phạm vi`

Hàm ''phạm vi'' thường xuất hiện trong các câu lệnh for mà bạn có thể nghĩ rằng phạm vi là một phần của cú pháp for. Không phải vậy. đó là một hàm tích hợp sẵn của Python trả về một chuỗi theo một mẫu cụ thể (thường là các số nguyên tuần tự), do đó đáp ứng yêu cầu cung cấp một chuỗi cho câu lệnh for để lặp lại. Vì for có thể hoạt động trực tiếp trên các chuỗi nên thường không cần đếm. Đây là cấu trúc phổ biến dành cho người mới bắt đầu (nếu chúng đến từ ngôn ngữ khác với cú pháp vòng lặp khác)

Phạm vi trong vòng lặp for trong Python là gì?

Để lặp qua một bộ mã với số lần xác định, chúng ta có thể sử dụng hàm range(), Hàm range() trả về một dãy số, bắt đầu từ 0 . .

Phạm vi cho vòng lặp là gì?

Vòng lặp for dựa trên phạm vi trong C++ được thêm vào kể từ C++ 11. Nó thực hiện vòng lặp for trên một phạm vi . Được sử dụng như một dạng tương đương dễ đọc hơn với vòng lặp for truyền thống hoạt động trên một dải giá trị, chẳng hạn như tất cả các phần tử trong vùng chứa.

Bạn có thể thay đổi phạm vi của vòng lặp for trong Python không?

Có, có thể thay đổi phạm vi từ bên trong vòng lặp , hãy xem câu trả lời mới bên dưới.