Có bao giờ, bạn phải type đi type lại một đoạn code nào đó và cảm thấy vô cùng mất thời gian với việc làm này không? Trong thế giới lập trình có một cách để bạn làm việc này nhanh và hiệu quả hơn. Đó chính là Vòng lặp. Dưới đây, Got It sẽ gửi đến bạn đọc bài viết chi tiết nhất và cung cấp đầy đủ thông tin cần thiết về các loại vòng lặp hiện có trong Python.
- Đọc thêm: Tự học lập trình Python trong 6 tháng
Mục lục
1. Vòng lặp là gì?
Vòng lặp (hay Loop) là thuật ngữ để chỉ một hành động hoặc cụm hành động lặp đi lặp lại nhiều lần. Trong quá trình coding, có những khi chúng ta muốn chạy đi chạy lại một câu code nhiều lần. Đó là lúc bạn cần đến vòng lặp.
Có 2 loại vòng lặp chính trong Python, đó là: vòng lặp for và vòng lặp while.
Chúng ta cùng đi vào tìm hiểu kĩ hơn về từng loại vòng lặp này nhé!
2. Vòng lặp for trong Python
Vòng lặp for trong Python được sử dụng để lặp một biến dữ liệu qua một dãy (List, Tuple hoặc String) theo thứ tự mà chúng xuất hiện. Nếu số lần lặp cố định thì bạn nên sử dụng vòng lặp for. Còn nếu số lần lặp không cố định thì vòng lặp while sẽ là sự lựa chọn tốt hơn.
2.1. Cú pháp của vòng lặp for
for variable in sequence:
Khối lệnh của for
Ở cú pháp trên, variable là các biến dùng để nhận giá trị của từng dữ liệu trên mỗi lần lặp. Sequence là chuỗi cần lặp.
Vòng lặp tiếp tục cho đến khi chúng ta đến mục cuối cùng trong chuỗi. Một lưu ý nhỏ về phần trình bày là code bên trong câu lệnh “for” sẽ được căn thụt lề để phân tách code rõ ràng và chính xác.
Ví dụ về vòng lặp for:
# Program to find the sum of all numbers stored in a list
# List of numbers
numbers = [4, 5, 3, 8, 6, 2, 5, 4, 11]
# variable to store the sum
sum = 0
# iterate over the list
for val in numbers:
sum = sum+val
print("The sum is", sum)
Khi chạy đoạn code trên, bạn sẽ nhận được kết quả là:
The sum is 48
2.2. Hàm Range()
Hàm range() có thể được sử dụng để tạo ra một dãy số. Ví dụ, range(10) sẽ tạo một dãy số từ 0 đến 9 (có 10 số).
Chúng ta sử dụng hàm range(giá trị bắt đầu, giá trị kết thúc, khoảng cách giữa hai giá trị) để tạo dãy số tùy chỉnh. Python sẽ mặc định khoảng cách giữa 2 giá trị là 1 nếu bạn không cung cấp.
Hàm không lưu tất cả các giá trị trong bộ nhớ. Nó chỉ lưu giá trị bắt đầu, giá trị kết thúc và khoảng cách giữa hai số, từ đó tạo ra số tiếp theo trong dãy.
Để buộc hàm range() xuất ra tất cả các mục, chúng ta có thể sử dụng hàm list(). Dưới đây là ví dụ minh hoạ:
print(range(10))
print(list(range(10)))
print(list(range(2, 8)))
print(list(range(2, 20, 3)))
Khi chạy đoạn code trên, bạn sẽ nhận được kết quả là:
range(0, 10)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
[2, 3, 4, 5, 6, 7]
[2, 5, 8, 11, 14, 17]
Chúng ta cũng có thể sử dụng hàm range () trong vòng lặp for để lặp một chuỗi số. Nó có thể được kết hợp với hàm len() để lặp bằng cách sử dụng indexing.
Ví dụ:
# Program to iterate through a list using indexing
genre = ['pop', 'rock', 'jazz']
# iterate over the list using index
for i in range(len(genre)):
print("I like", genre[i])
Ta được kết quả đầu ra như sau:
I like pop
I like rock
I like jazz
2.3. Vòng lặp for với else
Khối lệnh else được thực hiện khi các mục đã được lặp hết. Dưới đây là ví dụ để miêu tả:
A = [0, 1, 5]
for i in A:
print(i)
else:
print("No items left.")
Khi chạy xong, kết quả ta được:
0
1
5
No items left.
Như vậy, vòng lặp for sẽ thực hiện print các mục của danh sách A cho đến khi hết các mục. Khi vòng lặp kết thúc, nó sẽ chạy khối lệnh else và print Đã hết số.
Ngoài ra, nếu muốn dừng vòng lặp for, bạn có thể sử dụng lệnh break. Lúc này, khối lệnh else sẽ bị bỏ qua. Như vậy, else trong for sẽ chỉ được chạy khi không có lệnh break nào được thực hiện.
Ví dụ:
# program to display student's marks from record
student_name = 'Soyuj'
marks = {'James': 90, 'Jules': 55, 'Arthur': 77}
for student in marks:
if student == student_name:
print(marks[student])
break
else:
print('No entry with that name found.')
Output:
No entry with that name found.
3. Vòng lặp while trong Python
Vòng lặp while trong Python được dùng để lặp lại một khối lệnh khi điều kiện kiểm tra là đúng. Chúng ta thường sử dụng vòng lặp này khi chúng ta không biết trước số lần lặp lại là bao nhiêu.
3.1. Cú pháp của vòng lặp while
while điều_kiện_kiểm_tra:
Khối lệnh của while
Trong vòng lặp while, điều_kiện_kiểm_tra
sẽ được kiểm tra đầu tiên. Khối lệnh chỉ được nhập vào nếu điều_kiện_kiểm_tra
được đánh giá là True. Sau một lần lặp, điều_kiện_kiểm_tra
sẽ được kiểm tra lại. Quá trình này sẽ diễn ra cho đến khi điều_kiện_kiểm_tra
là False.
Python diễn giải mọi giá trị khác 0 là True. None và 0 được hiểu là False. Bên cạnh đó, khối lệnh while cũng được xác định bằng cách thụt lề.
Ví dụ về vòng lặp while:
# Program to add natural
# numbers up to
# sum = 1+2+3+...+n
# To take input from the user,
n = int(input("Enter n: "))
# initialize sum and countersum = 0
i = 1
while i <= n:
sum = sum + i
i = i+1 # update counter
# print the sum
print("The sum is", sum)
Khi chạy chương trình, kết quả đầu ra sẽ là:
Enter n: 10
The sum is 55
Ở chương trình trên, điều kiện kiểm tra sẽ là True, miễn là các biến đếm i nhỏ hơn hoặc bằng n (10). Chúng ta cần tăng giá trị của biến đếm trong khối lệnh của vòng lặp, nếu không sẽ dẫn đến một vòng lặp vô hạn (vòng lặp không bao giờ kết thúc).
3.2. Vòng lặp while với else
Tương tự như với vòng lặp for, vòng lặp while cũng có thể có một khối else tùy chọn. Phần else sẽ được thực thi nếu điều kiện trong vòng lặp while được đánh giá là False.
Vòng lặp while có thể được kết thúc bằng câu lệnh break. Trong những trường hợp như vậy, phần else bị bỏ qua. Do đó, phần else của vòng lặp while sẽ chạy nếu không có lệnh break nào xảy ra và điều kiện là False.
Dưới đây là ví dụ minh hoạ:
'''Example to illustrate
the use of else statement
with the while loop'''
counter = 0
while counter < 3:
print("Inside loop")
counter = counter + 1
else:
print("Inside else")
Output:
Inside loop
Inside loop
Inside loop
Inside else
Ở ví dụ trên, chúng ta sử dụng 1 biến đếm để print string Inside loop 3 lần. Đến lần thứ 4, điều kiện trong while là False. Do đó, phần else đã được thực hiện.
Tạm kết
Vòng lặp đặc biệt quan trọng đối với các lập trình viên, đặc biệt là vòng lặp trong Python. Got It hy vọng bài viết Tổng quan về vòng lặp trong Python này sẽ giúp ích cho bạn đọc!
Nguồn: Programiz