📘 Tin học 10 – Danh sách (List) trong Python
GDPT 2018 – Kết nối tri thức với cuộc sống | Mục tiêu: hiểu List, truy cập phần tử, duyệt & thêm phần tử, luyện tập nhập danh sách
🎯 Phần 1. Kiểu dữ liệu danh sách trong Python
Kiểu dữ liệu: List Có thứ tự Chỉ số từ 0 Có thể chứa nhiều kiểu
Khái niệm: Danh sách (List) là kiểu dữ liệu dùng để lưu nhiều giá trị trong một biến.
Các phần tử có thứ tự, được đánh chỉ số (index) bắt đầu từ 0.
1.1 Cú pháp tạo danh sách
Cách 1: Dùng dấu [ ]
ds_so = [1, 3, 5, 7] ds_ten = ["An", "Bình", "Chi"] ds_rong = []
Cách 2: Dùng hàm list()
ds = list() # danh sách rỗng
ds2 = list("ABC") # ['A','B','C']
Lưu ý: List có thể chứa nhiều kiểu dữ liệu khác nhau (số nguyên, số thực, xâu, ...).
1.2 Truy cập phần tử trong danh sách
Cú pháp:ds[i] (i là chỉ số)
ds = [10, 20, 30, 40] print(ds[0]) # 10 print(ds[2]) # 30Chỉ số âm (truy cập từ cuối danh sách):
ds = ["An", "Bình", "Chi"] print(ds[-1]) # Chi (phần tử cuối) print(ds[-2]) # Bình
Lỗi thường gặp: Nếu i vượt phạm vi (ví dụ ds có 3 phần tử mà truy cập ds[3]) sẽ gây lỗi “out of range”.
1.3 Ví dụ minh hoạ (đúng theo yêu cầu)
Ví dụ A (list số nguyên):ds = [2, 4, 6, 8]
print("Độ dài:", len(ds))
print("Phần tử đầu:", ds[0])
print("Phần tử cuối:", ds[-1])
Ví dụ B (list số thực):
ds = [1.5, 2.0, 3.25] print(ds[0] + ds[2]) # 4.75Ví dụ C (list xâu):
ten = ["An", "Bình", "Chi"] print(ten[1]) # BìnhVí dụ D (list hỗn hợp):
ds = [10, 2.5, "Hello", True] print(ds)
1.4 Một số lưu ý quan trọng
- Kiểu phần tử: List có thể chứa số nguyên, số thực, xâu, ... thậm chí nhiều kiểu cùng lúc.
- len(ds): trả về số phần tử của danh sách.
- Nhập dữ liệu: nếu nhập từ bàn phím, cần chú ý kiểu dữ liệu:
- Nhập số nguyên:
int(input()) - Nhập số thực:
float(input()) - Nhập xâu:
input()
- Nhập số nguyên:
- Tách xâu thành list (hay dùng với danh sách tên):
s = "An Bình Chi" ds = s.split() # ['An','Bình','Chi']
✅ Trắc nghiệm củng cố (Phần 1)
Câu 1. Danh sách (list) trong Python là:
Câu 2. Với
ds = [10, 20, 30], biểu thức ds[1] cho kết quả:
Câu 3. Với
ds = ["An","Bình","Chi"], biểu thức ds[-1] là:
🎯 Phần 2. Các lệnh cơ bản với danh sách
Duyệt list append() len() range()
Trọng tâm phần này: biết duyệt danh sách và thêm phần tử vào danh sách để phục vụ nhập liệu thực tế.
2.1 Duyệt danh sách
Cách 1: Duyệt trực tiếp từng phần tửds = [2, 5, 7, 4]
for x in ds:
print(x)
Cách 2: Duyệt theo chỉ số
ds = [2, 5, 7, 4]
for i in range(len(ds)):
print("Vị trí", i, "=", ds[i])
Mẹo: Duyệt trực tiếp (
for x in ds) đơn giản hơn; duyệt theo chỉ số dùng khi cần biết vị trí.
2.2 Thêm phần tử vào danh sách (append)
Cú pháp:ds.append(x)
ds = []
ds.append("An")
ds.append("Bình")
print(ds) # ['An', 'Bình']
Ví dụ nhập n phần tử và thêm vào list
n = int(input("Nhập n: "))
ds = []
for i in range(n):
x = input("Nhập phần tử: ")
ds.append(x)
print("Danh sách:", ds)
Lưu ý kiểu dữ liệu: Nếu nhập số, hãy đổi kiểu bằng
int() hoặc float() trước khi append.
2.3 Ví dụ minh hoạ (đúng yêu cầu)
Ví dụ 1: Duyệt và đếm số chẵnds = [1, 4, 6, 3, 8]
dem = 0
for x in ds:
if x % 2 == 0:
dem += 1
print("Số phần tử chẵn:", dem)
Ví dụ 2: Thêm phần tử và in từng dòng
n = int(input("Nhập n: "))
ds = []
for i in range(n):
ten = input("Nhập tên: ")
ds.append(ten)
for ten in ds:
print(ten)
✅ Trắc nghiệm củng cố (Phần 2)
Câu 1. Lệnh nào dùng để thêm phần tử x vào cuối danh sách ds?
Câu 2. Với
ds = [3, 6, 9], đoạn lệnh for x in ds: print(x) sẽ:
Câu 3. Để duyệt theo chỉ số từ 0 đến len(ds)-1, ta thường dùng:
🧩 Phần 3. Luyện tập (thực hành nhập – thêm – in danh sách)
Yêu cầu kỹ năng: khởi tạo list rỗng → nhập n → lặp n lần → append() → duyệt/in kết quả.
Câu 1.
Đề: Nhập số n, sau đó nhập danh sách n tên các bạn lớp em và in danh sách (mỗi tên 1 dòng).# Câu 1
n = int(input("Nhập n: "))
ds = []
for i in range(n):
ten = input("Nhập tên: ")
ds.append(ten)
print("Danh sách tên:")
for ten in ds:
print(ten)
Gợi ý nâng cao: Nếu muốn bỏ khoảng trắng thừa ở đầu/cuối tên: dùng
ten = input(...).strip().
Câu 2. (Gợi ý để bạn hoàn thiện theo lớp)
Gợi ý bài phù hợp GDPT: Nhập n số thực, tính tổng và giá trị lớn nhất.# Câu 2 (gợi ý)
n = int(input("Nhập n: "))
ds = []
for i in range(n):
x = float(input("Nhập số thực: "))
ds.append(x)
tong = 0
for x in ds:
tong += x
max_val = ds[0]
for x in ds:
if x > max_val:
max_val = x
print("Tổng =", tong)
print("Lớn nhất =", max_val)
Câu 3. (Gợi ý theo hướng vận dụng)
Gợi ý bài phù hợp: Nhập danh sách tên, đếm số tên bắt đầu bằng chữ A (không phân biệt hoa/thường).# Câu 3 (gợi ý)
n = int(input("Nhập n: "))
ds = []
for i in range(n):
ten = input("Nhập tên: ").strip()
ds.append(ten)
dem = 0
for ten in ds:
if len(ten) > 0 and ten[0].upper() == "A":
dem += 1
print("Số tên bắt đầu bằng A =", dem)
Lưu ý: Dùng
upper() để so sánh không phân biệt hoa/thường.
📌 Checklist tự đánh giá (HS tự kiểm tra)
- Em tạo được danh sách rỗng:
ds = [] - Em nhập được n và lặp đúng n lần
- Em dùng
append()để thêm phần tử - Em in được mỗi phần tử 1 dòng bằng vòng lặp
for - Em phân biệt được khi nào dùng
int,float,input
📌 Danh sách bình luận