0

Bài 6. Câu lệnh vòng lặp for trong Python

Câu lệnh vòng lặp for trong Python

Để điều khiển luồng chương trình, ngoài câu lệnh rẽ nhánh if thì Python còn cung cấp các câu lệnh vòng lặp. Có hai loại vòng lặp là vòng lặp for và vòng lặp while:

  • Vòng lặp for là 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 while là 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.

 1. Câu lệnh vòng lặp for trong Python

Trong ngôn ngữ lập trình Python, vòng lặp for có cú pháp như sau:

for <tên_biến> in <phạm_vi>:
      <khối lệnh>

Trong đó <phạm_vi> có thể là một tập hợp set, một danh sách list, một xâu string hoặc một dãy số nguyên. Ví dụ sau sẽ in ra các phần tử của list hoa_qua

hoa_qua = ['chuoi', 'tao', 'xoai', 'cam', 'le']
for qua in hoa_qua:
      print(qua)

Trường hợp <phạm_vi> là một xâu kí tự:

for letter in 'Python':
      print(letter)

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 đó, ý nghĩa của các tham số như sau:

  • start: Giá trị bắt đầu, đây là tham số không bắt buộc. 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, đây là tham số bắt buộc phải có. Phần tử cuối cùng trong list được sinh ra sẽ nhỏ hơn stop.
  • step: Khoảng cách giữa hai phần tử liên tiếp trong list được tạo ra. 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.

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í dụ sau sẽ in ra các số nguyên chẵn bé hơn 100.

for x in range(100):
      if x % 2 == 0:
            print(x)

Trong ví dụ trên, số 0 cũng được in ra, lí do là hàm range(100) sẽ trả về kết quả là tất cả các số nguyên bắt đầu từ 0 và bé hơn 100, tức là dãy số 0, 1, 2, 3,…, 99.

Hàm range() có các cách sử dụng sau, range(n) trả về các số nguyên từ 0 đến n-1. Nếu ta thêm tham số, range(a,b) thì trả về các số nguyên từ a đến b-1. Còn range(a,b,i) trả về các số nguyên cách nhau i đơn vị, bắt đầu từ a cho đến không quá b-1.

Để thoát khỏi (kết thúc) vòng lặp for, ta dùng câu lệnh break, để thoát khỏi lần lặp hiện tại và bắt đầu lần lặp kế tiếp ta dùng câu lệnh continue.

for i in range(10):
      if i == 3:
            continue
      if i == 8:
            break
      print(i)

print(i)

Kết quả thu được như sau:

0
1
2
4
5
6
7
8
8

Ta thấy, khi biến i có giá trị bằng 3 thì chương trình sẽ nhảy bỏ qua vòng lặp hiện tại – tức là không in ra giá trị 3 này – mà nhảy qua vòng lặp tiếp theo luôn. Còn khi i=8 thì chương trình sẽ thoát hoàn toàn khỏi vòng lặp. Sau vòng lặp, ta thấy biến i dừng ở giá trị 8.

Sử dụng Else trong vòng lặp For (Else in For Loop)

Nếu sau khi thực hiện xong vòng lặp for, bạn muốn thực thi một nhiệm vụ khác thì có thể sử dụng cú pháp sau:
for <tên_biến> in <phạm_vi>:
    <khối lệnh 1>
else:
    <khối lệnh 2>
Khối lệnh <khối lệnh 2> sau từ khóa else sẽ được thực thi khi kết thúc vòng lặp, tức là chỉ được thực thi khi vòng lặp được thoát ra một cách bình thường mà không phải do lệnh break.
Ví dụ dưới đây sẽ làm nhiệm vụ in ra màn hình tất cả các số nguyên từ 0 đến 5 và in câu lệnh thông báo đã thực hiện xong nhiệm vụ sau khi vòng lặp for được thực thi hết.
for x in range(6):
    print(x)
else:
    print("Finally finished!")

Các vòng lặp for lồng nhau

Các vòng lặp for có thể được lồng tronng một vòng lặp for khác.

Ví dụ in các màu sắc có thể có của từng loại hoa quả.

mau_sac = ["do", "xanh", "vang"]
hoa_qua= ["cam", "chuoi", "tao"]
for x in hoa_qua:
    for y in mau_sac:
        print(x, y)

2. Bài tập vòng lặp for trong Python

Bài 1.  Viết chương trình kiểm tra tính nguyên tố của một số n do người dùng nhập vào.

Bài 2.  Viết chương trình nhập vào một số nguyên và in kết quả ra màn hình dưới dạng số đảo ngược (về thứ tự) của số nguyên vừa nhập đó.

Bài 3.  Viết chương trình nhập vào một câu tiếng Anh, đếm số từ và ký tự trong câu đó, và in kết quả ra màn hình.
Gợi ý, các từ cách nhau bởi dấu cách trắng.

Bài 4. Vẽ hình chữ nhật đặc có chiều dài n và chiều rộng m. Ví dụ với m = 4, n = 5

* * * * *
* * * * *
* * * * *
* * * * *

Bài 5. Vẽ hình chữ nhật rỗng có chiều dài n và chiều rộng m. Ví dụ: m = 4, n = 5

* * * * *
*       *
*       *
* * * * *

Bài 6. Viết chương trình in ra bảng cửu chương dùng cho học sinh cấp 1 như sau:

2x2=4  3x2=6  4x2=8  5x2=10 6x2=12 7x2=14 8x2=16 9x2=18
2x3=6  3x3=9  4x3=12 5x3=15 6x3=18 7x3=21 8x3=24 9x3=27
2x4=8  3x4=12 4x4=16 5x4=20 6x4=24 7x4=28 8x4=32 9x4=36
2x5=10 3x5=15 4x5=20 5x5=25 6x5=30 7x5=35 8x5=40 9x5=45
2x6=12 3x6=18 4x6=24 5x6=30 6x6=36 7x6=42 8x6=48 9x6=54
2x7=14 3x7=21 4x7=28 5x7=35 6x7=42 7x7=49 8x7=56 9x7=63
2x8=16 3x8=24 4x8=32 5x8=40 6x8=48 7x8=56 8x8=64 9x8=72
2x9=18 3x9=27 4x9=36 5x9=45 6x9=54 7x9=63 8x9=72 9x9=81

Bài 7. Viết chương trình cộng hai số tự nhiên, mỗi số có 100 chữ số.

Bài 8. Viết chương trình cộng hai số tự nhiên a và b có độ dài tùy ý, chẳng hạn

a = "12345678902142141525434325432632632" và
b = "7839496235703058070385781578932759830785642".

hocbaicungcon

Leave a Reply

Your email address will not be published. Required fields are marked *