Vòng lặp trong Python

Vòng lặp trong Python

Trong lập trình có những trường hợp chúng ta muốn chạy một đoạn câu code lặp đi lặp lại nhiều lần. Vòng lặp cho phép chúng ta thực hiện việc này.

Ví dụ sử dụng vòng lặp for...in dưới cho phép chúng ta thực hiện việc hiển thị dòng chữ Hello World! 10 lần mà chỉ cần sử dụng hàm print() 1 lần duy nhất:

for i in [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]:
    print("Hello World!")

Có hai kiểu vòng lặp khác nhau:

  • Vòng lặp xác định (definite loop): Việc lặp sẽ được thực hiện với số lần biết trước.
  • Vòng lặp không xác định (indefinite loop): Việc lặp sẽ được thực hiện với số lần không biết trước.

Trước khi đi vào tìm hiểu cả hai loại vòng lặp này chúng ta cùng tìm hiểu 2 hàm khá hữu dụng trong Python thường dùng trong vòng lặp đó là range() và xrange()

Hàm range() và Hàm xrange()

Hàm range() giúp chúng ta có thể tạo ra một list một cách nhanh chóng. range() có cú pháp như sau:

range([start], stop, [step])

Trong đó:

  • start: Giá trị bắt đầu. Giá trị mặc định của start là 0. Giá trị start là tuỳ ý và nếu như không được sử dụng trong hàm thì giá trị mặc định của nó sẽ là 0.
  • stop: Giá trị dừng. Phần tử cuối cùng trong list phải nhỏ hơn stop.
  • step: Khoảng cách giữa hai phần tử liền kề trong list. Giá trị step là tuỳ ý và nếu không được sử dụng trong hàm thì giá trị mặc định của nó sẽ là 1.

Ví dụ:

list_1 = range(5)
print(list_1) # [0, 1, 2, 3, 4]

list_1 = range(2, 5) # [2, 3, 4]
print(list_1)

 list_3 = range(1, 10, 3) # [1, 4, 7]
print(list_3)

Hàm xrange() tương tự như range() với một điểm khác biệt đó là Python Compiler sẽ giải phóng dung lượng bộ nhớ mà máy tính chiếm giữ khi sử dụng hàm xrange() ngược lại range() thì không như vậy.

Vòng Lặp for

Vòng lặp for là kiểu vòng lặp xác định. Vòng lặp while trong Python có cú pháp như sau:

for <value> in <sequence>:
    <statements>

Vòng lặp for trên sẽ thực hiện việc lặp qua từng phần tử của <sequence> và với mỗi phần tử tìm được thì các câu lệnh <statements> sẽ được thực thi.

Ví dụ dưới đây sử dụng vòng lặp for để lặp qua các phần tử trong một danh sách gồm các số tự nhiên từ 1 đến 4 và hiển thị giá trị của từng phần tử:

for number in range(5):
    print(number)
# Hiển thị:
# 0
# 1
# 2
# 3
# 4

Bạn cũng có thể sử dụng vòng lặp for với các kiểu dữ liệu sequence khác như string:

for char in "Hello":
    print(char)
# Hiển thị:
# H
# e
# l
# l
# o
# n

Vòng Lặp while

Vòng lặp while là kiểu vòng lặp không xác định. Vòng lặp while trong Python có cú pháp như sau:

while <condition>:
           <statements>

Khi biểu thức điều kiện <condition> trả về giá trị True thì các câu lệnh <statements> sẽ được chạy và sẽ được chạy lặp đi lặp lại cho tới khi nào <condition> trả về giá trị không phải là True.

Ví dụ dưới đây sử dụng vòng lặp while để hiện thi các số từ 0 cho tới 4:

number = 0
while number < 5:
    print(number)
    number += 1

break và continue

Sử dụng break cho phép chúng ta có thể kết thúc vòng lặp ở một thời điểm nào đó trong toàn bộ quá trình lặp. Ví dụ:

numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9]

for i in numbers:
    if i > 5:
        break # Kết thúc vòng lặp nếu lớn hơn 5
    print(i)

Vòng lặp trên sẽ bị dừng lại khi giá trị của phần tử trong list lớn hơn 5. Do đó kết thúc vòng lặp chỉ hiển thị các số từ 1 tới 5.

Sử dụng continue cho phép chúng ta bỏ qua một hoặc một số vòng lặp nào đó trong toàn bộ quá trình lặp. Ví dụ:

number = 0
while number < 5:
    if number == 3
        continue
    print(number)
    number += 1

Ở đoạn code trên chúng ta sẽ bỏ qua vòng lặp khi giá trị của number bằng 3. Do đó khi kết thúc toàn bộ quá trình lặp sẽ chỉ hiển thị 4 số 1, 2, 4, 5.

10 bình luận


Đăng bình luận