Tin học lớp 10 Bài 20: Câu lệnh lặp for
A. Lý thuyết Tin học 10 Bài 20: Câu lệnh lặp for
1. Lệnh lặp for
– for là lệnh lặp với số lần biết trước. Số lần lặp thường được xác định bởi vùng giá trị của lệnh range( ).
– Lệnh range(n) trả lại vùng giá trị gồm n số từ 0 đến n – 1. Cú pháp của lệnh lặp với số lần biết trước for:
for in range(n):
<khối lệnh>
⇒ Khi thực hiện, ở mỗi vòng lặp biến i sẽ được gán lần lượt các giá trị trong vùng giá trị của lệnh range( ) và thực hiện <khối lệnh>.
Ví dụ 1: Tính tổng các số tự nhiên chẵn nhỏ hơn n, với n cho trước (n=10)
Ví dụ 2: Đếm số nguyên nhỏ hơn n (n = 20) và là bội của 3
2. Lệnh range
– Lệnh tạo vùng giá trị range() có các dạng sau:
+ range(stop) trả lại vùng giá trị từ 0 đến stop – 1.
+ range(start, stop) trả lại vùng giá trị từ start đến stop – 1.
Ví dụ: range(n) cho vùng gồm các số 0, 1, …, n – 1.
Thực hành: Lệnh lặp for và lệnh range()
Nhiệm vụ: Nhập số tự nhiên n từ bàn phím và in ra màn hình dãy các ước số của n theo chiều ngang màn hình. Ví dụ nếu n = 10 thì chương trình sẽ in ra dãy số 1, 2, 5, 10.
Hướng dẫn
Các ước số của n là các số tự nhiên k thỏa mãn: n%k=0. Muốn in các số trên một hàng ngang cần dùng thêm tham số end = “ ” trong lệnh print().
Chương trình:
Nhiệm vụ 2: Nhập số tự nhiên n từ bàn phím và đếm số các ước thực sự của n. Ước số thực sự của n là số tự nhiên k < n và là ước của n.
Hướng dẫn
Tạo một biến có tên count để đếm số các ước thực sự của n.
Chương trình:
B. Bài tập trắc nghiệm Tin học 10 Bài 20: Câu lệnh lặp for
Câu 1. Trong câu lệnh lặp:
j = 0
for j in range(10):
print(“A”)
Khi kết thúc câu lệnh trên lệnh có bao nhiêu chữ “A” xuất hiện?
A. 10 lần.
B. 1 lần.
C. 5 lần.
D. Không thực hiện.
Hướng dẫn giải
Đáp án đúng là: A
Lệnh print nằm trong vòng lặp nên sẽ xuất hiện 10 lần theo giá trị của j từ 0 tới 9.
Câu 2. Cho đoạn chương trình:
j = 0
for i in range(5):
j = j + i
print(j)
Sau khi thực hiện chương trình giá trị của biến j bằng bao nhiêu?
A. 10.
B. 12.
C. 15.
D. 14.
Hướng dẫn giải
Đáp án đúng là: A
j = 0 + 0 + 1+ 2+ 3 + 4 = 10.
Câu 3. Xác định số vòng lặp cho bài toán: tính tổng các số nguyên từ 1 đến 100?
A. 1.
B. 100.
C. 99.
D. Tất cả đều sai.
Hướng dẫn giải
Đáp án đúng là: B
Biến chạy từ 1 đến 100 có tất cả 100 giá trị nên có 100 vòng lặp.
Câu 4. Đoạn chương trình sau giải bài toán nào?
t = 0
for i in range(1, 101):
if(i % 3 == 0 and i % 5 == 0):
t = t + i
print(t)
A. Tính tổng các số chia hết cho 3 hoặc 5 trong phạm vi từ 1 đến 100.
B. Tính tổng các số chia hết cho 3 hoặc 5 trong phạm vi từ 1 đến 101.
C. Tính tổng các số chia hết cho 3 và 5 trong phạm vi từ 1 đến 101.
D. Tính tổng các số chia hết cho 3 và 5 trong phạm vi từ 1 đến 100.
Hướng dẫn giải
Đáp án đúng là: D
Đoạn lệnh có range(1, 101) và and nên đoạn chương trình tính tổng các số chia hết cho 3 và 5 trong phạm vi từ 1 đến 100.
Câu 5. Cho biết kết quả khi chạy đoạn chương trình sau:
s = 0
for i in range(3):
s = s+2*i
print(s)
A. 12.
B. 10.
C. 8.
D. 6.
Hướng dẫn giải
Đáp án đúng là: D
s = 0 + 0 + 2 + 4 = 6
Câu 6. Số công việc cần phải lặp với số lần xác định?
1) Đếm số học sinh của lớp.
2) Đếm số chia hết cho 5 trong đoạn từ 10 tới 100.
3) Đọc tên lần lượt từng học sinh của một lớp có 30 em.
4) Chạy 5 vòng sân bóng.
5) Tính tổng các số có 2 chữ số.
A. 3.
B. 4.
C. 5.
D. 2.
Hướng dẫn giải
Đáp án đúng là: B
Các công việc cần phải lặp với số lần xác định: 2, 3, 4, 5.
Câu 7. Biến chạy trong vòng lặp for i in range(<giá trị cuối>) tăng lên mấy đơn vị sau mỗi lần lặp?
A. 1.
B. 2.
C. 0.
D. Tất cả đều sai.
Hướng dẫn giải
Đáp án đúng là: A
Sau mỗi lần lặp biến chạy sẽ tăng thêm 1 đơn vị.
Câu 8. Cho các câu lệnh sau, hãy chỉ ra câu lệnh đúng:
A. x = 0
for i in range(10): x = x + 1
B. x = 0
for i in range(10): x:= x + 1
C. x = 0
for i in range(10) x = x + 1
D. x:= 0
for i in range(10): x = x + 1
Hướng dẫn giải
Đáp án đúng là: A
Lệnh gán không có dấu “:”.
Câu 9. Trong Python, câu lệnh nào dưới đây được viết đúng?
A. for i in range(10): prin(“A”).
B. for i in range(10): print(“A”).
C. for i in range(10): print(A).
D. for i in range(10) print(“A”).
Hướng dẫn giải
Đáp án đúng là: B
Sau câu lệnh for có dấu hai chấm “:” và in ra xâu kí tự cần có cặp dấu nháy kép “”.
Câu 10. Trong câu lệnh lặp:
j=0
for j in range(10):
j = j + 2
print(j)
Khi kết thúc câu lệnh trên, câu lệnh print(j) được thực hiện bao nhiêu lần?
A. 10 lần.
B. 1 lần.
C. 5 lần.
D. Không thực hiện.
Hướng dẫn giải
Đáp án đúng là: B
Lệnh print() không nằm trong khối lệnh lặp nên chỉ được thực hiện 1 lần.
Câu 11. Bạn An thực hiện đoạn chương trình sau nhưng chương trình báo lỗi. Theo em, bạn An sai ở dòng thứ mấy:
numbers = [6, 5, 3, 8, 4, 2, 5, 4, 11]
sum == 0
## iterate over the list
for val in numbers:
sum = sum+val
print(“The sum is”, sum)
A. 4.
B. 3.
C. 2.
D. 5.
Hướng dẫn giải
Đáp án đúng là: C
Khởi tạo giá trị cho biến s = 0 , s == 0 là biểu thức điều kiện.
Câu 12. Đoạn chương trình sau có lỗi tại một dòng lệnh. Theo em, đó là lỗi ở câu lệnh nào:
# program to display student’s marks from record
student_name=”Soyuj”
marks = {‘James’: 90, ‘Jules’: 55, ‘Arthur’: 77}
for student in marks:
if student == student_name:
print(marks(student))
break
else:
print(‘No entry with that name found.’)
A. Sai kí hiệu chú thích.
B. Sai khi khai báo danh sách.
C. Sai khi gọi tới phần tử của danh sách.
D. Không có lỗi sai ở câu lệnh nào.
Hướng dẫn giải
Đáp án đúng là: C
Sửa câu lệnh print(marks(student)) thành print(marks[student]), sử dụng dấu ngoặc vuông khi gọi tới từng phần tử của danh sách.
Câu 13. Trong Python, đoạn chương trình sau đưa ra kết quả gì?
for i in range(10, 0, -1):
print(i, ‘’)
A. 10, 9, 8, 7, 6, 5, 4, 3, 2, 1.
B. Đưa ra 10 dấu cách.
C. 1 2 3 4 5 6 7 8 9 10.
D. Không đưa ra kết quả gì.
Hướng dẫn giải
Đáp án đúng là: A
i chạy từ 10 về 1 với mỗi lần lặp giảm đi 1 đơn vị.
Câu 14. Lệnh nào in ra màn hình các giá trị sau?
11111
22222
33333
44444
55555
A. for i in range(1, 6): print(i, i, i, i, i).
B. for i in range(1, 6): print(str(i)*5).
C. for i in range(1, 5): print(str(i)*5).
D. for i in range(0, 5): print(str(i)*5).
Hướng dẫn giải
Đáp án đúng là: B
Lệnh range(1, 6), biến i chạy từ 1 đến 5 và sử dụng lệnh (print(str(i)*5)) để hiển thị ra chuỗi gồm 5 kí tự giống nhau.
Câu 15. Điền phần còn thiếu … trong đoạn code sau để được kết quả dưới đây?
55555
44444
33333
22222
11111
for i in range(5, 0, …):
print(str(i)*5)
A. -1.
B. 0.
C. None.
D. 1.
Hướng dẫn giải
Đáp án đúng là: A
Mỗi lần lặp biến chạy giảm đi một đơn vị
Xem thêm các bài tóm tắt lý thuyết Tin học lớp 10 Kết nối tri thức hay, chi tiết khác:
Lý thuyết Tin học 10 Bài 19: Câu lệnh điều kiện if
Lý thuyết Tin học 10 Bài 20: Câu lệnh lặp for
Lý thuyết Tin học 10 Bài 21: Câu lệnh lặp while
Lý thuyết Tin học 10 Bài 22: Kiểu dữ liệu danh sách
Lý thuyết Tin học 10 Bài 23: Một số lệnh làm việc với dữ liệu danh sách