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ử
indùng để kiểm tra một phần tử có nằm trong danh sách hay không. Kết quả trả lạiTrue(Đúng) hoặcFalse(Sai).
Cú pháp:
```python
```
- Có thể duyệt nhanh từng phần tử của danh sách bằng toán tử
inkết hợp lệnhformà không cần dùngrange():
```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ệnh | Chức năng | Ví 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ấy | A.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ải | A.insert(2, 5) |
💡 Mẹo nhớ: Vớiinsert(k, value), nếuk < 0thì chèn vào đầu danh sách, nếuk > 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
1và xâu"1"là hai giá trị khác kiểu, nên1 ≠ "1". - Do đó số nguyên
1khô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ửinchỉ trả vềTruekhi 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 in là mộ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á
inchỉ ra rằng biếnisẽ lần lượt nhận từng giá trị trong dãyrange(10). - Với mỗi giá trị của
i, chương trình thực hiệnmộ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ợp | Vai trò của in | Ý nghĩa |
|---|---|---|
2 in A | Toán tử kiểm tra | Trả về True/False xem 2 có trong A không |
for i in range(10): | Cú pháp vòng lặp for | Cho 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áinnhư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úcfor ... in ...thì dùng để duyệt phần tử.
🎯 Ghi nhớ: - Toán tửinkiể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. - Trongfor ... in ..., từ khoáindù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).
