Tin học 10 – Bài 20. Câu lệnh lặp For

1. Lệnh For

Lệnh for sử dụng một biến để chạy trong vùng giá trị của lệnh range(n).

Vùng range(n) bao gồm dãy các giá trị từ 0 đến n−1.

Cú pháp:

Python
for <i> in range(n):
    <khối lệnh>
Tin học 10 Bài 20 Lệnh For

Ví dụ 1: Tính tổng 0 + 1 + … + 9

Python
S = 0
for k in range(10):
    S = S + k
print(S)  # Kết quả: 45

Ví dụ 2: Tính tổng các số tự nhiên chẵn nhỏ hơn n (với n=10)

Python
n = 10
S = 0
for k in range(n):
    if k % 2 == 0:
        S = S + k
print(S)  # Kết quả: 20
Câu hỏi 1. Với giá trị n cho trước, so sánh giá trị S trong đoạn chương trình sau với tổng 1 + 2 + … + n:

S = 0
for k in range(1, n + 1):
    S = S + k

– Lệnh range(1, n + 1) tạo ra vùng giá trị bao gồm các số từ 1 đến n.

– Trong vòng lặp, biến k sẽ lần lượt nhận các giá trị từ 1 đến n, và các giá trị này được cộng dồn vào biến S.

– Do đó, sau khi vòng lặp kết thúc, giá trị của S chính là tổng của dãy số 1 + 2 + … + n.

* Vậy: Giá trị của S trong đoạn chương trình trên bằng với tổng 1 + 2 + … + n


2. Lệnh Range

Cú pháp:

  • range(stop) trả về vùng giá trị từ 0 đến stop − 1
  • range(start, stop) trả về vùng giá trị từ start đến trước stop.

Ví dụ: Vùng giá trị từ 3 đến 10:

Python
for k in range(3, 10):
    print(k, end=" ")  # Kết quả: 3 4 5 6 7 8 9
Hãy biểu diễn các dãy sau đây bằng lệnh range():

    a) 1,2,3,…,50

    b) 5,6,7,8,9,10

    c) 0,1

    d) 10

a) range(1, 51)

b) range(5, 11)

c) range(2)

d) range(10,11)


Luyện tập

1. Đoạn chương trình sau in ra kết quả gì?

Python
n = int(input("Nhập số tự nhiên n: "))
S = 0
for k in range(n+1):
    S = S + k
print(S * S)

Trả lời:

  • Phân tích:
    • Lệnh range(n+1) tạo ra vùng giá trị từ 0 đến n.
    • Vòng lặp cộng dồn các giá trị từ 0 đến n vào biến S.
    • Sau vòng lặp, giá trị của SS là tổng của dãy số 0+1+…+n.
    • Kết quả in ra là bình phương của tổng này: (0+1+…+n)2.
  • Ví dụ chạy thử:
    Nếu nhập n = 3:
    • Tổng: 0+1+2+3 = 6.
    • Kết quả: 6 * 6 = 36.

2. Viết đoạn chương trình tính tích 1×2×…×n với n được nhập vào từ bàn phím:

Python
n = int(input("Nhập số tự nhiên n: "))
P = 1
for k in range(1, n+1):
    P = P * k
print(P)

Câu hỏi trắc nghiệm dạng D1 và D2 Tin học 10 bài 20: câu lệnh lặp for

Thời gian làm bài: 30 phút
Đáp án chỉ hiển thị sau khi hoàn thành bài làm
Câu hỏi sẽ được hiển thị ngẫu nhiên
Vui lòng nhập họ và tên để bắt đầu làm bài

NB

Lệnh range(10) tạo ra dãy số nào sau đây?

NB

Đoạn code nào sau đây tính tổng các số từ 0 đến n?

TH

Sau khi thực hiện đoạn code:
S = 0
for k in range(5):
    S += k
print(S)

Giá trị của S là bao nhiêu?

TH

Đoạn code nào sau đây đếm số chẵn nhỏ hơn 20?

VD

Đoạn code sau in ra kết quả gì?
n = 4
tich = 1
for i in range(1, n+1):
    tich *= i
print(tich)

NB

Phát biểu nào đúng về range(3,8)?

TH

Đoạn code nào sau đây tìm ước số thực sự của n?

VD

Đoạn code sau in ra tổng nào?
S = 0
for k in range(1,6):
    S += k**3

NB

Lệnh print(k, end=

TH

Đoạn code sau thực hiện bao nhiêu lần lặp?
for i in range(2, 11, 2):
    print(i)

NB

Lệnh range(5, 10) tạo ra bao nhiêu số?

TH

Đoạn code sau in ra kết quả gì?
count = 0
for k in range(10, 20):
    if k%3 == 0:
        count +=1
print(count)

VD

Đoạn code nào sau đây KHÔNG có lỗi?

NB

Vòng lặp for k in range(1,4): thực hiện bao nhiêu lần?

TH

Đoạn code sau in ra dãy số nào?
for k in range(0, 10, 3):
    print(k, end=

VD

Đoạn code nào tìm số lớn nhất trong dãy từ 0 đến n-1?

NB

Lệnh nào tạo dãy 5,6,7,8,9?

TH

Đoạn code sau tính gì?
S = 0
for k in range(1, 6):
    S += k**2

VD

Đoạn code sau có lỗi gì?
n = 5
for i in range(n):
    S = S + i
print(S)

Một học sinh viết chương trình Python để tính tổng các số chẵn từ 0 đến 10 như sau:
S = 0
for i in range(11):
    if i % 2 == 0:
        S += i
print(S)

Các phát biểu:

NB Biến S được khởi tạo với giá trị 0. (NB)

NB Vòng lặp for sẽ thực hiện 11 lần. (NB)

TH Câu lệnh if kiểm tra xem i có phải là số lẻ không. (TH)

VD Kết quả in ra màn hình sẽ là 30. (VD)

Xét đoạn code Python sau:
n = 5
for i in range(1, n+1):
    for j in range(1, i+1):
        print(j, end=

NB Đoạn code sử dụng hai vòng lặp for lồng nhau. (NB)

NB Vòng lặp bên ngoài sẽ thực hiện 5 lần. (NB)

TH Biến j trong vòng lặp bên trong sẽ nhận các giá trị từ 1 đến 5. (TH)

VD Kết quả in ra màn hình sẽ là một tam giác số từ 1 đến 5. (VD)

NB Biến is_prime được khởi tạo với giá trị True. (NB)

NB Vòng lặp for kiểm tra tất cả các số từ 2 đến n-1. (NB)

TH Câu lệnh if kiểm tra xem n có chia hết cho i không. (TH)

VD Chương trình sẽ in ra kết quả chính xác cho mọi số n nhập vào. (VD)

Bảng xếp hạng

Chưa có kết quả nào.

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *