Phần trước, chúng ta đã được tìm hiểu về câu lệnh rẽ nhánh trong python rồi và các bạn cũng thấy nó khá đơn giản đúng không? Phần này chúng ta cũng sẽ tìm hiểu về một thứ không thể thiếu trong các ngôn ngữ lập trình đó là vòng lặp.
1, Vòng lặp là gì?
Vòng lặp (tiếng anh là loop) là một thuật ngữ dùng để diễn tả một hành động hay một cụm hành động được lặp đi lặp lại nhiều lần.
VD: Như chúng ta cứ uống nước xong là lại phải đi tiểu và hành động đó cứ xảy ra đến khi bạn die mới dừng. Thì đó cũng có thể coi là một vòng lặp :D.
Và trong Python thì nó cung cấp cho chúng ta 2 dạng vòng lặp chính đó là:
for
while
2, Vòng lặp for trong Python.
Vòng lặp for
ở trong Python có tác dụng lặp các biến dữ liệu có trong list
, tuple
hoặc string
,... Sử dụng cú pháp như sau:
for variable in data:
# code
Trong đó:
variable
là các biến tạm dùng để chứa dữ liệu sau mỗi lần lặp.data
là mộtlist
,tuple
hoặcstring
,... chứa giá trị cần lặp.
VD: Mình sẽ khai báo 1 string name = "thanhtaivtt"
và dùng vòng lặp for
để lặp ra từng ký tự của nó.
name = "thanhtaivtt"
for i in name:
print(i)
# ket qua:
# t
# h
# a
# n
# h
# t
# a
# i
# v
# t
# t
Và đương nhiên là các vòng for này cũng có thể lồng nhau.
VD: Vòng for lồng nhau.
name = "thanhtaivtt"
for i in range(0,10):
for j in range(i,10):
print(j, end = " ")
print ("")
# Ket qua:
# 0 1 2 3 4 5 6 7 8 9
# 1 2 3 4 5 6 7 8 9
# 2 3 4 5 6 7 8 9
# 3 4 5 6 7 8 9
# 4 5 6 7 8 9
# 5 6 7 8 9
# 6 7 8 9
# 7 8 9
# 8 9
# 9
Chú thích: ở đây mình có sử dụng hàm range(a,z)
để tạo ra các con số từ a -> z, ở các phần sau mình sẽ nó rõ hơn về hàm này nhé! giờ các bạn cứ hiểu nó đơn giản như kia là được rồi à
3, Vòng lặp while.
Vòng lặp while
trong Python dùng để lặp các dữ liệu mà giá trị ngừng có của nó là chưa biết trước.
Cú pháp sử dụng:
while condition:
# code
Trong đó, condition
là điều kiện quyết định vòng lặp while có được chạy hay không. Nếu condition
trả về giá trị là True
thì vòng lặp while
mới được thực thi, và ngược lại thì nó sẽ không thực thi nếu condition
trả về False
.
VD: Mình sẽ viết một vòng lặp while in ra dãy số từ 1 đến 10.
i = 1;
while(i <= 10):
print(i)
i += 1
Đối với vòng lặp while này thì chúng ta cũng có thể lồng nó lại với nhau được.
VD: Lồng 2 vòng lặp while.
i = 1
while(i <= 10):
j = 1
while (j <= 10 - i):
print(j, end = " ")
j += 1
print("")
i += 1
# ket qua:
# 1 2 3 4 5 6 7 8 9
# 1 2 3 4 5 6 7 8
# 1 2 3 4 5 6 7
# 1 2 3 4 5 6
# 1 2 3 4 5
# 1 2 3 4
# 1 2 3
# 1 2
# 1
4, Các từ khóa tác động đến vòng lặp.
Thông thường trong một số trường hợp vòng lặp của chúng ta sẽ có thể không cần thực thi code trong một số vòng lặp cụ thể hay là cần nhảy lần vòng lặp đó và thực thi các lần lặp tiếp theo, và để làm được điều đó thì trong Python có hỗ trợ chúng ta 2 keyword để tác động đến vòng lặp là:
break
- break giúp chúng ta chấm dứt vòng lặp tại thời điểm nó xuất hiện và các code cùng cấp phía sau nó sẽ không được thực thi nữa.continue
- giúp chúng ta nhảy qua lần lặp hiện tại và chuyển đến lần lặp tiếp theo, các code cùng cấp phía sau nó cũng sẽ không được thực hiện.
VD: Lệnh break
.
i = 1
while(i <= 10):
print(i)
if i == 5 :
break
i += 1
# ket qua:
# 1
# 2
# 3
# 4
# 5
VD: Lệnh continue
.
for i in "thanhtaivtt":
if i == "n":
continue
print(i, end=" ")
# ket qua:
# t h a h t a i v t t
5, Lời kết.
Vòng lặp là một phần rất quan trong và sẽ phải sử dụng thường xuyên đến nó trong các bài tiếp theo nên các bạn chú ý ôn thật kỹ nhé!
Đăng ký nhận tin.
Chúng tôi chỉ gửi tối đa 2 lần trên 1 tháng. Tuyên bố không spam mail!
Hello World
BTLanh
6 năm trước
hi anh Tài,
trong ví dụ về vòng lắp while, câu lệnh print(j, end = " ")
python báo lỗi invalid syntax ở phần end = " " ????
giải thích giúp em với ạ, thanks
Long
6 năm trước
Cho em hỏi trong for có thể nào lặp lùi được không? em cám ơn
Trần Hạnh Nhu
5 năm trước
Chào bạn, bạn có thể tham khảo 1 số cách sau à:
Vũ Thanh Tài
5 năm trước
Dear bạn,
Mình đang thắc mắc đoạn code này, đọc mãi mà ko hiểu lý do vì sao, nhờ bạn giải thích giúp.
greeting = 'Hello!'
count = 0
for letter in greeting:
count += 1
if count % 2 == 0:
print(letter)
print(letter)
print('done')
Print out:
H
e
e
l
l
l
o
!
!
done
Bạn có thể giải thích giúp mình ko? cảm ơn bạn.
Thang Nguyen
5 năm trước
count = 1 thì print trong if không chạy. print sau in ra chữ H.
count = 2 thì print trong in ra chữ e. print ngoài cũng in ra chữ e
count bằng 3 thì print ngoài chạy in ra 1 chữ l
count bằng 4 in ra 2 chữ l. tương tự...
vinh
5 năm trước
def main():
if __name__ == "__main__":
main()
""" expected output:
1 *
2 **
3 ***
4 ****
5 *****
6 ******
7 *******
8 ********
9 *********
10 **********
"""
nay viet sao mn
thinh
5 năm trước
Yen
4 năm trước
Thưa chú Tài, Cháu thấy trong bài này không có phần:
_____________________
1 | while condition:
2 | #code
3 | else:
4 | #code
------------------------------------
, sao không có phần này vậy anh?
Sun Fusion
5 năm trước
oops
2 năm trước
Thịnh
4 năm trước
Trọng Anh
3 năm trước
Phát
4 tháng trước