Giải Tin Học 10 trang 116

Lời giải chi tiết SGK Lớp 10 · Môn Tin Học · Trang 116–117

Nguon: Tin Hoc 10 - Ket Noi Tri Thuc Voi Cuoc Song (trang 116 – 117)

🔍 Kiến thức cần nhớ

Bài 23 giới thiệu cách làm việc với dữ liệu kiểu danh sách (list) trong Python.

1. Duyệt danh sách với toán tử in

  • Toán tử in dùng để kiểm tra một phần tử có nằm trong danh sách hay không. Kết quả trả lại True (Đúng) hoặc False (Sai).

Cú pháp:
```python
in
```

  • Có thể duyệt nhanh từng phần tử của danh sách bằng toán tử in kết hợp lệnh for mà không cần dùng range():

```python
A = [10, 11, 12, 13, 14, 15]
for k in A:
print(k, end = " ")
# Kết quả: 10 11 12 13 14 15
```
Khi đó biến k lần lượt nhận các giá trị của danh sách A.

2. Một số lệnh làm việc với danh sách

LệnhChức năngVí dụ
clear()Xoá toàn bộ phần tử, danh sách trở thành rỗng []A.clear()
remove(value)Xoá phần tử đầu tiên có giá trị value. Báo lỗi ValueError nếu không tìm thấyA.remove(1)
insert(index, value)Chèn value vào vị trí index, đẩy các phần tử từ vị trí này sang phảiA.insert(2, 5)
💡 Mẹo nhớ: Với insert(k, value), nếu k < 0 thì chèn vào đầu danh sách, nếu k > len() thì chèn vào cuối danh sách. Lệnh vẫn có tác dụng chứ không báo lỗi.

⚙️ Bài tập

Câu 1

Đề bài: Giả sử A = ["0", "1", "01", "10"]. Các biểu thức sau trả về giá trị đúng hay sai?

a) 1 in A

b) "01" in A

Cách 1 — Phân tích kiểu dữ liệu từng phần tử

Quan sát danh sách:

A = ["0", "1", "01", "10"]

Tất cả 4 phần tử đều được đặt trong dấu nháy kép, nên chúng là xâu kí tự (string), không phải số nguyên.

a) 1 in A

  • Ở đây 1 (không có dấu nháy) là số nguyên kiểu int.
  • Danh sách A chỉ chứa các xâu: "0", "1", "01", "10".
  • Trong Python, số nguyên 1 và xâu "1"hai giá trị khác kiểu, nên 1 ≠ "1".
  • Do đó số nguyên 1 không nằm trong A.

➡️ Kết quả: False (Sai)

b) "01" in A

  • Ở đây "01" là một xâu kí tự.
  • Danh sách A có chứa đúng phần tử "01" (phần tử thứ ba).

➡️ Kết quả: True (Đúng)

Cách 2 — Kiểm chứng trực tiếp trên Python
>>> A = ["0", "1", "01", "10"]
>>> 1 in A
False
>>> "01" in A
True
⚠️ Lưu ý thi: Đây là lỗi rất hay gặp. Phải phân biệt rõ 1 (số) và "1" (xâu). Toán tử in chỉ trả về True khi giá trị đúng cả nội dung và kiểu dữ liệu với một phần tử trong danh sách.

Câu 2

Đề bài: Hãy giải thích ý nghĩa từ khoá in trong câu lệnh sau:

for i in range(10):
    
Cách 1 — Giải thích vai trò của in trong vòng lặp for

Trong câu lệnh này, từ khoá in không đóng vai trò là toán tử kiểm tra như ở Câu 1. Ở đây inmột phần trong cú pháp của vòng lặp for, dùng để duyệt (lần lượt lấy) các phần tử của một dãy.

Cụ thể:

  • range(10) tạo ra dãy số nguyên: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9.
  • Từ khoá in chỉ ra rằng biến i sẽ lần lượt nhận từng giá trị trong dãy range(10).
  • Với mỗi giá trị của i, chương trình thực hiện một lần.

Như vậy, vòng lặp lặp lại 10 lần, với i lần lượt bằng 0, 1, 2, ..., 9.

Cách 2 — So sánh hai vai trò của in
Trường hợpVai trò của inÝ nghĩa
2 in AToán tử kiểm traTrả về True/False xem 2 có trong A không
for i in range(10):Cú pháp vòng lặp forCho biến i duyệt qua từng giá trị của dãy

➡️ Trong câu lệnh đề bài, in mang nghĩa: biến i lần lượt nhận các giá trị thuộc dãy do range(10) sinh ra.

💡 Mẹo nhớ: Cùng một từ khoá in nhưng có hai vai trò: khi đứng trong biểu thức kiểm tra thì cho kết quả Đúng/Sai; khi đứng trong cấu trúc for ... in ... thì dùng để duyệt phần tử.

🎯 Ghi nhớ: - Toán tử in kiểm tra phần tử có thuộc danh sách hay không (kết quả True/False), và phải khớp cả giá trị lẫn kiểu dữ liệu. - Trong for ... in ..., từ khoá in dùng để cho biến điều khiển duyệt qua từng phần tử của dãy. - Ba lệnh quan trọng với danh sách: clear() (xoá hết), remove(value) (xoá phần tử đầu tiên có giá trị value), insert(index, value) (chèn vào vị trí cho trước).
Chế độ đọc sách →