Vòng lặp for trong Python – QuanTriMang.com

Vòng lặp for trong Python quan trọng trong thiết kế web, ứng dụng. Dưới đây là những điều bạn cần biết về for trong Python.

Lập trình là một trong số lĩnh vực được quan tâm nhất hiện nay. Vòng lặp khá phổ biến trong lập trình. Nó xuất hiện nhiều trong mã nguồn web hay ứng dụng. Vì thế, khi học lập trình Python, nhất định bạn không nên bỏ qua phần tử này.

Vòng lặp for trong Python là gì?

Vòng lặp for được dùng để lặp qua một chuỗi (danh sách, bộ dữ liệu, từ điển, một bộ hoặc một chuỗi).

Tuy nhiên, điều đó hơi khác khái niệm for ở những ngôn ngữ lập trình khác. Nó hoạt động giống phương thức lặp hơn như được tìm thấy ở các ngôn ngữ lập trình hướng đối tượng khác.

Với vòng lặp for, bạn có thể triển khai một tập hợp cách lệnh, một lần cho mỗi mục trong danh sách, bộ hay tập hợp dữ liệu…

Ví dụ:

Liệt kê từng loại trái cây dưới dạng danh sách:

fruits = [“apple”, “banana”, “cherry”] for x in fruits: print(x)

Vòng lặp for không yêu cầu một biến chỉ mục được thiết lập trước.

Cú pháp của for trong Python

for bien_lap in chuoi_lap: Khối lệnh của for

Trong cú pháp trên, chuoi_lap là chuỗi cần lặp, bien_lap là biến nhận giá trị của từng mục bên trong chuoi_lap trên mỗi lần lặp. Vòng lặp sẽ tiếp tục cho đến khi nó lặp tới mục cuối cùng trong chuỗi.

Khối lệnh của for được thụt lề để phân biệt với phần còn lại của code.

Sơ đồ vòng lặp for

Sơ đồ vòng lặp for

Vòng lặp for qua một chuỗi

Một chuỗi là các đối tượng có thể dùng vòng lặp để đọc từng chữ cái một. Ví dụ:

#Lặp chữ cái trong quantrimang for chu in ‘quantrimang’: print(‘Chữ cái hiện tại:’, chu) #Lặp từ trong chuỗi chuoi = [‘bố’,’mẹ’,’em’] for tu in chuoi: print(‘Anh yêu’, tu)

Ta có kết quả đầu ra như sau:

Chữ cái hiện tại: q Chữ cái hiện tại: u Chữ cái hiện tại: a Chữ cái hiện tại: n Chữ cái hiện tại: t Chữ cái hiện tại: r Chữ cái hiện tại: i Chữ cái hiện tại: m Chữ cái hiện tại: a Chữ cái hiện tại: n Chữ cái hiện tại: g Anh yêu bố Anh yêu mẹ Anh yêu em

Đọc thêm:  Đề thi môn Toán thi tốt nghiệp THPT 2021 chính xác nhất - Vietnamnet

Vòng lặp for trong một dãy số

Ngoài việc sử dụng vòng lặp for để lấy các chữ cái và ký tự trong chuỗi, ta còn sử dụng for để lấy các số trong 1 mảng dãy số.

# Tính tổng tất cả các số trong danh sách A # Danh sách A A = [1, 3, 5, 9, 11, 2, 6, 8, 10] # Biến để lưu trữ tổng các số là tong, gán giá trị ban đầu bằng 0 tong = 0 # Vòng lặp for, a là biến lặp for a in A: tong = tong+a # Đầu ra: Tổng các số là 55 print(“Tổng các số là”, tong)

Khi chạy đoạn code trên, bạn sẽ nhận được kết quả là:

Tổng các số là 55

Lệnh break trong for

Với câu lệnh break, chúng ta có thể dừng vòng lặp trước khi nó lặp qua hết các mục trong chuỗi lặp. Ví dụ: dừng vòng lặp khi gặp dấu chấm (.) trong chuỗi quantrimang.com:

#Lặp chữ cái có break: a=[“quan”,”tri”,”mang”,”.”,”com”] for chu in a: if chu == “.”: break print(chu) print(“Nội dung ngoài vòng lặp for”)

Kết quả sau khi chạy đoạn code trên là:

quan tri mang Nội dung ngoài vòng lặp for

Ở ví dụ trên, vòng lặp đã lặp qua các chữ cái: quan, tri, mang; tới khi gặp dấu chấm “.”, vòng lặp đã thoát hoàn toàn và không in nốt chữ cuối: com.

Lệnh continue trong for

Không giống như break, lệnh continue sẽ chỉ dừng việc lặp của vòng lặp hiện tại và vẫn tiếp tục chu trình lặp tiếp theo. Ví dụ: lặp lại chuỗi quan, tri, mang, ., com ở trên nhưng bỏ qua không in ký tự chấm (.). Chuỗi lệnh sẽ như sau:

#Lặp chữ cái có break: a=[“quan”,”tri”,”mang”,”.”,”com”] for chu in a: if chu == “.”: continue print(chu) print(“Nội dung ngoài vòng lặp for”)

Kết quả sau khi chạy lệnh sẽ là:

quan tri mang com Nội dung ngoài vòng lặp for

Như bạn đã thấy trong kết quả trên, vòng lặp chỉ bỏ qua vòng lặp in ký tự . và vẫn tiếp tục in chữ com ở sau nó.

Lệnh pass trong for

Các lệnh trong vòng lặp for thường không thể để trống, nhưng nếu vì một lý do nào đó bạn mới chỉ lên ý tưởng cho vòng lặp for mà chưa có nội dung bên trong, lúc này hãy sử dụng lệnh pass để “đặt chỗ” cho những khối code mà mình chưa nghĩ ra.

Đọc thêm:  Luyện nói: kể chuyện theo ngôi kể kết hợp với miêu tả và biểu cảm

Ví dụ:

#Sử dụng pass để đặt chỗ cho những khối code trong tương lai: for x in ‘QuanTriMang’: pass

Chạy khối lệnh trên bạn sẽ không thấy có kết quả gì trả về, do vòng lặp for đã dùng pass để bỏ qua các khối lệnh. Nếu không có lệnh pass bạn sẽ gặp lỗi báo như sau:

File “<string>”, line 2 ^ SyntaxError: unexpected EOF while parsing

Hàm range()

Bạn có thể sử dụng hàm range() để tạo ra một dãy số. Ví dụ, range(100) sẽ tạo một dãy số từ 0 đến 99 (100 số).

Hàm range(so_bat_dau, so_ket_thuc, khoang_cach_2_so) được sử dụng để tạo dãy số tùy chỉnh. Nếu không đặt khoảng cách giữa hai số thì Python sẽ hiểu mặc định nó bằng 1.

Ví dụ: Viết 100 lần “Anh xin lỗi”, ta sẽ cho biến i lặp từ 0 đến 100 như dưới đây:

for i in range(100): print (“Anh xin lỗi”) print(“Em ơi, anh chép xong ồi nè!”)

Hàm range() không lưu tất cả các giá trị trong bộ nhớ mà nó 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.

Để range() xuất ra tất cả các giá trị, bạn cần sử dụng đến hàm list() giống như ví dụ dưới đây:

#Lệnh 1 print(range(9)) #Lệnh 2 print(list(range(9))) #Lệnh 3 print(list(range(2, 5))) #Lệnh 4 print(list(range(0, 15, 5)))

Chúng ta sẽ có đầu ra như sau:

range(0, 9) [0, 1, 2, 3, 4, 5, 6, 7, 8] [2, 3, 4] [0, 5, 10]

Mỗi dòng tương ứng với Lệnh 1, 2, 3, 4 ở trên.

Hàm range() có thể sử dụng kết hợp với len() để lặp qua một dãy sử dụng index, như ví dụ dưới đây:

chuoi = [‘bố’,’mẹ’,’em’] for tu in range(len(chuoi)): print(“Anh yêu”,chuoi[tu])

Ta có kết quả đầu ra giống như ví dụ 1 bên trên:

Anh yêu bố Anh yêu mẹ Anh yêu em

Vòng lặp for lồng nhau

Vòng lặp lồng nhau là vòng lặp đặt bên trong 1 vòng lặp khác. Vòng lặp trong cùng sẽ được thực hiện cho mỗi lần lặp của vòng lặp ngoài.

Ví dụ: Ghép tính từ cho từng loại quả

#Ví dụ về vòng lặp lồng nhau trên QuanTriMang tinhtu = [“đỏ”, “to”, “ngon”] qua = [“táo”, “chuối”, “cherry”] for x in qua: for y in tinhtu: print(x, y)

Đọc thêm:  Định lí Vi-ét là gì? Áp dụng cho phương trình bậc 2 và cách ứng

Kết quả sau khi chạy lệnh trên sẽ như sau:

táo đỏ táo to táo ngon chuối đỏ chuối to chuối ngon cherry đỏ cherry to cherry ngon

Kết hợp for với else

Trong bài trước bạn đã thấy cấu trúc if…else và if…elif…else. else không chỉ kết hợp được với if mà trong vòng lặp for cũng có thể dùng được.

Trong for, khối lệnh của else sẽ được thực thi khi các mục trong chuỗi đã được lặp hết.

Ví dụ:

B = [0, 2, 4, 5] for b in B: print(b) else: print(“Đã hết số.”)

Ở đây, vòng lặp for sẽ in ra danh sách B cho đến khi hết các mục. Khi vòng lặp kết thúc nó thực thi khối lệnh của else và in. Ta có kết quả sau khi chạy code như sau:

0 2 4 5 Đã hết số.

Lệnh break có thể được sử dụng để dừng vòng lặp for, lúc này phần else sẽ bị bỏ qua. Hay nói cách khác, phần else trong for sẽ chạy khi không có break nào được thực thi.

Ví dụ:

#Lặp dãy từ 0 đến 10 for num in range(0,10): #Lặp trên các thừa số của một số trong dãy for i in range(2,num): #Xác định thừa số đầu tiên (phép chia có số dư bằng 0) if num%i == 0: j=num/i #Ước lượng thừa số thứ 2 print (‘%d bằng %d * %d’ % (num,i,j)) break #Dừng vòng for hiện tại, chuyển đến số tiếp theo trong vòng for đầu tiên else: # Phần else trong vòng lặp print (num, ‘là số nguyên tố’)

Code trên lặp các số trong dãy từ 0 đến 10, với mỗi số sẽ chạy vòng lặp kiểm tra xem có phải là số nguyên tố không, nếu phải thì in thông báo và dừng vòng lặp kiểm tra, chuyển qua số tiếp theo trong vòng lặp đầu tiên, nếu không phải số nguyên tố thì sẽ thực hiện khối lệnh else. Chạy code trên ta có kết quả như sau:

0 là số nguyên tố 1 là số nguyên tố 2 là số nguyên tố 3 là số nguyên tố 4 bằng 2 * 2 5 là số nguyên tố 6 bằng 2 * 3 7 là số nguyên tố 8 bằng 2 * 4 9 bằng 3 * 3

Trên đây là những kiến thức cơ bản nhất về vòng lặp for, trong bài tiếp theo các bạn sẽ được tìm hiểu về vòng lặp while, bạn còn nhớ đã gặp nó ở đâu trong loạt bài giới thiệu về Python của Quản Trị Mạng không?

Đánh giá bài viết

Theo dõi chúng tôi www.hql-neu.edu.vn để có thêm nhiều thông tin bổ ích nhé!!!

Dustin Đỗ

Tôi là Dustin Đỗ, tốt nghiệp trường ĐH Harvard. Hiện tôi là quản trị viên cho website: www.hql-neu.edu.vn. Hi vọng mọi kiến thức chuyên sâu của tôi có thể giúp các bạn trong quá trình học tập!!!

Related Articles

Back to top button