Python: Vòng lặp for

Các khóa học qua video:
Python SQL Server PHP C# Lập trình C Java HTML5-CSS3-JavaScript
Học trên YouTube <76K/tháng. Đăng ký Hội viên
Viết nhanh hơn - Học tốt hơn
Giải phóng thời gian, khai phóng năng lực

Giới thiệu

Các loại vòng lặp khác nhau được dùng để thực hiện lặp đi lặp lại một khối lệnh nào đó liên tục nhiều lần. Vòng lặp sẽ giúp giảm công sức và sự nhàm chán cho Lập trình viên khi phải thực hiện lặp đi lặp lại câu lệnh hay khối lệnh nào đó nhiều lần.

Giả sử bạn muốn ra 1000 chuỗi "Lập trình viên" thì thông thường bạn sẽ phải viết 1000 câu lệnh print("Lập trình viên") hoặc phải viết print("Lập trình viên\nLập trình viên\n...") . Nhưng vòng lặp sẽ giúp bạn chỉ phải viết một câu lệnh duy nhất là print("\nLập trình viên").

Vòng lặp for

Vòng lặp for được gọi là vòng lặp xác định, vì ta có thể biết trước được số lần lặp của vòng lặp.

Cú pháp:

for biến_chạy in range(n, m+1,step):
  khối_lệnh

, trong đó:

biến_chạy sẽ lần lượt nhận các giá trị từ n đến m sau mỗi lần lặp.

step: là bước thay đổi mỗi lần lặp, theo đó mỗi lần lặp thì biến_chạy sẽ nhận n, n+step, n+2*step, n+3*step, ... Trong trường hợp không có step thì mặc định step sẽ là 1.

Các ví dụ

1. Đoạn mã dưới đây in ra 100 chuỗi có nội dung: "Ngôn ngữ lập trình Python".

for i in range(1,101): #i nhn các giá trt1 đến 100
  print("Ngôn ngữ lập trình Python")

2. Còn đoạn mã sau in ra 1000 chuỗi dạng "Lap trinh vien thu 1", "Lap trinh vien thu 2", ..., "Lap trinh vien thu 1000", mỗi chuỗi trên một dòng.

for i in range(1,1001):
  print("\nLp trình viên th", i)

3. Đoạn mã sau in ra các số từ 1 đến 100:

for i in range(1,101): #i nhn các giá tr 1, 2, 3, ...
  print(i)

4. Đoạn mã sau in ra các số từ 100 đến 1:

for i in range(100,0,-1): #i nhn các giá tr 100, 99, 98, ...
  print(i)

5. Đoạn mã sau in ra các số lẻ trong đoạn 1-100:

for i in range(1,101,2): #i nhn các giá tr 1, 3, 5, ...
  print(i)

6. Đoạn mã sau in ra các số lẻ trong đoạn 100-1:

for i in range(100,0,-1): #i nhận các giá trị 1, 3, 5, ...
  if i%2!=0:
    print(i)

Vòng lặp for lồng:

Nếu có hiện tượng vòng lặp nằm trong vòng lặp thì đây là loại vòng lặp lồng.

Vòng lặp for lồng có dạng:

for biến_chạy_1 in range(1, n+1):
  ...
  for biến_chạy_2 in range(1, m+1):
    khối_lệnh;

Giả sử có hai vòng lặp for lồng nhau, vòng lặp for ngoài lặp n lần, vòng lặp for trong lặp m lần, thì mỗi lần lặp của vòng for ngoài thì vòng lặp for bên trong sẽ lặp m lần (khối_lệnh sẽ được thực hiện m lần), tức là tổng số lần thực hiện khối_lệnh nằm ở vòng lặp for lồng trong sẽ là n*m lần.

Ví dụ, hãy dùng vòng lặp để in ra màn hình tam giác có dạng như hình sau:

Tam giác vuông trái xuôi

Phân tích:

- Tam giác được tạo bởi các ký tự '*' đặt trên các hàng, trong đó có 5 hàng, hàng 1 có 1 ký tự '*', hàng 2 có 2 ký tự '*', .... Như vậy ở hàng i có i ký tự '*'.

- Sau khi in xong các ngôi sao trên một hàng thì xuống dòng để in tiếp.

Vậy ta có đoạn mã giải quyết vấn đề trên như sau:

#mi ln lp vòng for này sin ra 1 hàng (i đi din cho shàng t1 đến 5)
for i in range(1,6):
  #biến str đlưu slượng ngôi sao trên mi hàng, mi hàng mi sreset str vchui rng
  str=""
  #vòng lp này sin ra slượng ký t'*' trên mi hàng
  for j in range(1,i+1):
    #ghép các ngôi sao trên hàng i vào chui str
    str+="*"
    #tiến hành in các ngôi sao trên hàng i
  print(str)

Đoạn code dưới đây được cải tiến từ đoạn code trên, trong đó cho phép người dùng chủ động đưa vào số hàng của tam giác từ bàn phím (từ 2 đến 24).

#nhp slượng hàng
n=int(input("Nhp vào s hàng: "))
while not(2<=n and n<=24):
  n=int(input("Nhp li s hàng: "))
for i in range(1,n+1):
  str=""
  for j in range(1,i+1):
    str+="*"
  print(str)

Xem thêm

» Tiếp: Vòng lặp while
« Trước: if-else
Các khóa học qua video:
Python SQL Server PHP C# Lập trình C Java HTML5-CSS3-JavaScript
Học trên YouTube <76K/tháng. Đăng ký Hội viên
Viết nhanh hơn - Học tốt hơn
Giải phóng thời gian, khai phóng năng lực
Copied !!!