Chào mừng các bạn đến với Rcom Dăm Yi blog - Kho tài liệu bổ ích!, Chúng tôi sẽ từng bước hoàn thiện để bạn đọc cảm thấy hài lòng, hữu ích!

Thứ Hai, 26 tháng 1, 2026

🐍 PYTHON NÂNG CAO – BỘ 1
Bài 12: Danh sách (List) – Xoá phần tử âm | THPT Phan Chu Trinh
🎯 Bài toán (Nhiệm vụ 2)
Cho trước dãy số A. Viết chương trình xoá đi các phần tử có giá trị nhỏ hơn 0 trong A.

Gợi ý: Duyệt từng phần tử của A. Nếu phần tử < 0 thì xoá. Khi xoá trong lúc duyệt, cần chú ý chỉ tăng chỉ số khi KHÔNG xoá.
📝 Soạn thảo Python
▶ Kết quả sẽ hiển thị ở đây...
# Lời giải gợi ý (Bài 12 - Nhiệm vụ 2)

A = [0, 1, -3, -10, 5, 9, -20, 55]

i = 0
while i < len(A):
    if A[i] < 0:
        A.remove(A[i])
    else:
        i += 1

print(A)

# Kết quả mong đợi:
# [0, 1, 5, 9, 55]
🧾 Lịch sử chạy
    ⚠ Ghi nhớ nhanh:
    remove(x) xoá theo giá trị (xoá lần xuất hiện đầu tiên)
    • Khi xoá trong lúc duyệt, không tăng i ở nhánh xoá để không bị bỏ sót phần tử
    • Có thể thay remove(A[i]) bằng pop(i) để xoá đúng theo vị trí

    📘 Tin học 10 – Danh sách (List): in + các lệnh cơ bản

    GDPT 2018 – Bộ sách Kết nối tri thức với cuộc sống

    1. Danh sách (list) là gì?
    Danh sách (list) là kiểu dữ liệu dùng để lưu nhiều giá trị theo một thứ tự. Mỗi phần tử có vị trí (chỉ số) bắt đầu từ 0.
    Có thứ tự Có chỉ số Có thể thay đổi
    2. Toán tử in với danh sách
    x in ds trả về True nếu x có trong danh sách ds, ngược lại là False.
    ds = ["AMG", "DOM", "Karaoke"]
    print("AMG" in ds)   # True
    print("Bar" in ds)   # False
    Lưu ý: "5" (chuỗi) khác 5 (số).
    3. Duyệt danh sách với for ... in ...
    Dùng để lấy lần lượt từng phần tử trong danh sách và xử lí.
    diem = [7, 8, 6, 9]
    for d in diem:
        print(d)
    Trong vòng lặp, biến d nhận lần lượt từng phần tử của danh sách.
    4. Một số lệnh/phương thức list thường dùng
    • Độ dài: len(ds)
    • Thêm: append(x), extend(ds2), insert(i, x)
    • Xoá: remove(x), pop() / pop(i), clear()
    • Sắp xếp/đảo: sort(), sort(reverse=True), reverse()
    • Tìm/đếm: index(x), count(x)
    Cách làm 1: Kiểm tra phần tử có trong danh sách
    1. Xác định giá trị cần kiểm tra (x)
    2. Dùng x in ds hoặc x not in ds
    3. Dùng if để xử lí theo 2 trường hợp
    ds = ["Trà", "Cà phê", "Nước suối"]
    if "Trà" in ds:
        print("Có Trà")
    else:
        print("Không có Trà")
    Cách làm 2: Duyệt danh sách để xử lí dữ liệu
    1. Xác định mục tiêu: in ra / đếm / tính tổng / lọc
    2. Duyệt: for x in ds:
    3. Đặt điều kiện if nếu cần
    4. Cập nhật biến đếm/tổng/danh sách kết quả
    a = [2, 5, 2, 7, 2]
    dem = 0
    for x in a:
        if x == 2:
            dem += 1
    print(dem)
    Lỗi thường gặp (và cách tránh)
    • Nhầm kiểu dữ liệu: "5" khác 5
    • Dùng remove(x) khi x không có trong list → nên kiểm tra if x in ds trước
    • Quên thụt lề trong vòng lặp for
    Ví dụ 1: Kiểm tra phần tử với in
    ds = ["An", "Bình", "Chi"]
    print("Bình" in ds)        # True
    print("Dũng" not in ds)    # True
    Ví dụ 2: Tính tổng danh sách điểm
    diem = [7, 8, 6, 9]
    tong = 0
    for d in diem:
        tong += d
    print("Tổng =", tong)
    Ví dụ 3: Lọc các số chẵn
    a = [1, 2, 3, 4, 5, 6]
    for x in a:
        if x % 2 == 0:
            print(x)
    Ví dụ 4: Thực hành các lệnh list (menu đồ uống)
    nuoc = ["Trà", "Cà phê", "Nước suối"]
    
    nuoc.append("Soda")
    nuoc.insert(1, "Sinh tố")
    
    if "Trà" in nuoc:
        nuoc.remove("Trà")
    
    nuoc.sort()
    print(nuoc)
    print("Số lượng =", len(nuoc))
    Gợi ý mở rộng: dùng pop() để lấy món cuối, dùng count() để đếm món trùng.
    Ví dụ 5: Dùng countindex
    a = [2, 5, 2, 7, 2]
    print(a.count(2))     # 3
    print(a.index(7))     # 3 (vị trí của 7)
    Lưu ý: index(x) sẽ báo lỗi nếu x không có trong danh sách.
    Bài 1 (Cơ bản)
    Cho ds = [3, 7, 2, 9]. Hãy:
    • Kiểm tra 7 có trong ds không.
    • In lần lượt các phần tử của ds (mỗi phần tử một dòng).
    Bài 2 (Thông hiểu)
    Nhập một danh sách số (tự gán sẵn). Hãy đếm có bao nhiêu số chẵn.
    Gợi ý: dùng for ... in ... và điều kiện x % 2 == 0.
    Bài 3 (Vận dụng)
    Cho danh sách a. Nếu có phần tử x trong a thì xoá x đi.
    Yêu cầu: bắt buộc kiểm tra if x in a trước khi remove.
    Bài 4 (Vận dụng cao)
    Cho danh sách điểm diem. Hãy:
    • Tính điểm trung bình
    • In ra các điểm ≥ 8
    • Sắp xếp điểm giảm dần
    Gợi ý: dùng sum (nếu biết), hoặc tự cộng bằng for, và sort(reverse=True).

    📘 Tin học 10 – Lệnh lặp for trong Python

    GDPT 2018 – Bộ sách Kết nối tri thức với cuộc sống

    1. Lệnh lặp là gì?
    Lệnh lặp dùng để thực hiện một khối lệnh nhiều lần theo một quy luật xác định.
    2. Lệnh lặp for
    Lệnh for dùng khi biết trước số lần lặp hoặc cần duyệt lần lượt các phần tử.
    3. Cú pháp
    for biến_lặp in dãy_giá_trị:
        khối_lệnh
    Biến lặp nhận lần lượt từng giá trị trong dãy.
    4. Hàm range()
    • range(n): từ 0 đến n−1
    • range(a, b): từ a đến b−1
    • range(a, b, k): bước nhảy k
    Cách viết chương trình với for
    1. Xác định số lần lặp hoặc dãy cần duyệt
    2. Chọn biến lặp phù hợp
    3. Viết khối lệnh bên trong vòng lặp
    Lỗi thường gặp
    • Quên dấu :
    • Thụt lề sai
    • Hiểu sai phạm vi của range()
    Ví dụ 1: In các số từ 1 đến 5
    for i in range(1, 6):
        print(i)
    Ví dụ 2: Tính tổng các số từ 1 đến n
    n = int(input("Nhập n: "))
    tong = 0
    for i in range(1, n + 1):
        tong += i
    print(tong)
    Ví dụ 3: Duyệt danh sách
    ds = [3, 7, 2, 9]
    for x in ds:
        print(x)
    for rất phù hợp khi làm việc với danh sách.
    Bài 1 (Cơ bản)
    Dùng for in các số từ 1 đến 10.
    Bài 2 (Thông hiểu)
    Nhập n, tính tổng các số chia hết cho 3 từ 1 đến n.
    Bài 3 (Vận dụng)
    Nhập một danh sách số, đếm bao nhiêu số chẵn.
    Bài 4 (Vận dụng cao)
    In bảng nhân từ 2 đến 9 bằng for.

    📘 Tin học 10 – Lệnh lặp while trong Python

    GDPT 2018 – Bộ sách Kết nối tri thức với cuộc sống

    1. Lệnh lặp là gì?
    Lệnh lặp dùng để thực hiện một khối lệnh nhiều lần khi điều kiện còn đúng.
    2. Lệnh lặp while
    Lệnh while lặp khi điều kiện còn đúng. Khi điều kiện sai, vòng lặp kết thúc.
    3. Cú pháp
    while điều_kiện:
        khối_lệnh
    Lưu ý: điều kiện phải thay đổi trong vòng lặp để tránh lặp vô hạn.
    4. Sơ đồ hoạt động
    Kiểm tra điều kiện → Đúng: thực hiện lệnh → quay lại kiểm tra → Sai: thoát vòng lặp.
    Cách viết chương trình với while
    1. Khởi tạo biến điều khiển
    2. Viết điều kiện lặp
    3. Cập nhật biến điều khiển trong vòng lặp
    Lỗi thường gặp
    • Quên cập nhật biến → lặp vô hạn
    • Điều kiện sai ngay từ đầu → không chạy lần nào
    Ví dụ 1: In các số từ 1 đến 5
    i = 1
    while i <= 5:
        print(i)
        i += 1
    Giải thích: biến i tăng dần, khi i > 5 thì dừng.
    Ví dụ 2: Tính tổng các số từ 1 đến n
    n = int(input("Nhập n: "))
    tong = 0
    i = 1
    while i <= n:
        tong += i
        i += 1
    print(tong)
    Ví dụ 3: Nhập số đến khi gặp 0 thì dừng
    x = int(input("Nhập số: "))
    while x != 0:
        print("Bạn vừa nhập:", x)
        x = int(input("Nhập số: "))
    Ứng dụng phổ biến của while khi chưa biết trước số lần lặp.
    Bài 1 (Cơ bản)
    Dùng while in các số từ 1 đến 10.
    Bài 2 (Thông hiểu)
    Nhập n, tính tổng các số chẵn từ 1 đến n.
    Bài 3 (Vận dụng)
    Nhập các số cho đến khi gặp số âm thì dừng. Đếm bao nhiêu số đã nhập.
    Bài 4 (Vận dụng cao)
    Nhập mật khẩu. Nếu sai thì nhập lại cho đến khi đúng.

    📘 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])   # 30
    Chỉ 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.75
    Ví dụ C (list xâu):
    ten = ["An", "Bình", "Chi"]
    print(ten[1])          # Bình
    Ví 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()
    • 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áchthê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ẵn
    ds = [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ổnggiá 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

    Chủ Nhật, 25 tháng 1, 2026

    Bài giảng điện tử – Nhúng Blogspot

    Tin học 11

    THỰC HÀNH TẠO LẬP CƠ SỞ DỮ LIỆU VÀ CÁC BẢNG

    Thời lượng: 90 phút Gồm: Khởi động – Kiến thức mới – Luyện tập – Vận dụng – Tổng kết

    Hoạt động 1 – Khởi động (15 phút)

    • Gợi mở: Khi muốn quản lí dữ liệu (âm nhạc/địa giới), ta cần bắt đầu từ đâu?
    • Xác định việc đầu tiên: tạo CSDLthiết kế bảng.
    Câu hỏi tình huống: “Muốn lưu dữ liệu nhạc sĩ/ca sĩ/bản nhạc để tra cứu nhanh, em sẽ tạo CSDL và bảng như thế nào?”

    Mini-quiz

    Câu 1: Việc đầu tiên khi làm với CSDL là:

    Cần “nơi chứa dữ liệu” trước khi thao tác nhập/truy vấn → CSDL và bảng.

    Hoạt động 2 – Hình thành kiến thức (30 phút)

    Mục tiêu: Tạo CSDL mymusic, tạo bảng nhacsi và khai báo khóa chính.

    DDL: CREATE DATABASE / CREATE TABLE Kiểu dữ liệu: INT, VARCHAR(255) Khóa chính: PRIMARY KEY

    Bước 1: Tạo CSDL mymusic

    Một số môi trường online không hỗ trợ CREATE DATABASE. Nếu báo lỗi, coi như đang làm trong CSDL mặc định.

    -- MySQL/MariaDB:
    CREATE DATABASE mymusic CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
    USE mymusic;

    Bước 2: Tạo bảng nhacsi + khóa chính

    CREATE TABLE nhacsi (
      idNhacsi INT PRIMARY KEY,
      tenNhacsi VARCHAR(255)
    );

    Bước 3: Nhập dữ liệu mẫu & kiểm tra

    INSERT INTO nhacsi VALUES (1, 'Trịnh Công Sơn');
    INSERT INTO nhacsi VALUES (2, 'Nguyễn Văn Chung');
    
    SELECT * FROM nhacsi;

    Câu 2: Viết điều kiện để cập nhật đúng nhạc sĩ có mã 1.

    Cú pháp: UPDATE nhacsi SET ... WHERE idNhacsi = 1;

    Hoạt động 3 – Luyện tập (30 phút)

    Nhiệm vụ: Tạo bảng casi, nhập dữ liệu như bảng mẫu, và kiểm tra bằng SELECT.

    1) Tạo bảng casi

    CREATE TABLE casi (
      idCasi INT PRIMARY KEY,
      tenCasi VARCHAR(255)
    );

    2) Nhập dữ liệu mẫu

    INSERT INTO casi VALUES (1, 'Trần Khánh');
    INSERT INTO casi VALUES (2, 'Lê Dung');
    INSERT INTO casi VALUES (3, 'Tân Nhân');
    INSERT INTO casi VALUES (4, 'Quốc Hương');
    INSERT INTO casi VALUES (5, 'Doãn Tần');
    
    SELECT * FROM casi;

    Mini-quiz luyện tập

    Câu 3: Khóa chính của bảng casi là:

    Khóa chính thường là “mã” (ID) để phân biệt duy nhất từng bản ghi.

    Câu 4: Viết lệnh xem toàn bộ dữ liệu bảng casi.

    Gợi ý: SELECT * FROM <tên_bảng>;

    Bài tự luận ngắn

    Vì sao cần khai báo PRIMARY KEY? Nêu 2 lợi ích.

    Gợi ý
    • Đảm bảo mỗi bản ghi là duy nhất, tránh trùng lặp.
    • Hỗ trợ liên kết dữ liệu và giúp truy vấn ổn định hơn.

    Hoạt động 4 – Vận dụng (15 phút)

    Bài toán: Lập CSDL quản lí Tỉnh/Thành phố và Quận/Huyện Việt Nam. Thực hành tạo bảng Tỉnh/Thành phố.

    Tạo CSDL DiaGioiVN (nếu hỗ trợ)

    CREATE DATABASE DiaGioiVN;
    USE DiaGioiVN;

    Nếu môi trường không hỗ trợ, coi như đang làm việc trong CSDL DiaGioiVN.

    Tạo bảng tinhthanhpho + dữ liệu mẫu

    CREATE TABLE tinhthanhpho (
      idTinh INT PRIMARY KEY,
      tenTinh VARCHAR(255)
    );
    
    INSERT INTO tinhthanhpho VALUES (1, 'Hà Nội');
    INSERT INTO tinhthanhpho VALUES (2, 'TP Hồ Chí Minh');
    INSERT INTO tinhthanhpho VALUES (3, 'Đà Nẵng');
    INSERT INTO tinhthanhpho VALUES (4, 'Hải Phòng');
    INSERT INTO tinhthanhpho VALUES (5, 'Cần Thơ');
    
    SELECT * FROM tinhthanhpho;

    Câu 5: Khóa chính hợp lí nhất của bảng tinhthanhpho là:

    Tên có thể trùng/khác chính tả; mã ID giúp quản lí ổn định.

    Thử thách (tự làm thêm)

    Tạo bảng quanhuyen(idHuyen, tenHuyen, idTinh) và nhập 3–5 dòng dữ liệu mẫu.

    Gợi ý
    CREATE TABLE quanhuyen (
      idHuyen INT PRIMARY KEY,
      tenHuyen VARCHAR(255),
      idTinh INT
    );

    Tổng kết

    • Biết dùng CREATE TABLE để tạo bảng và khai báo kiểu dữ liệu.
    • Biết khai báo PRIMARY KEY để đảm bảo tính duy nhất.
    • Biết thêm dữ liệu bằng INSERT và kiểm tra bằng SELECT.
    • Vận dụng tạo bảng quản lí địa giới Việt Nam.

    Trắc nghiệm nhanh

    Câu 6: Lệnh nào dùng để tạo bảng?

    CREATE TABLE thuộc nhóm lệnh định nghĩa dữ liệu (DDL).

    Câu 7: PRIMARY KEY dùng để:

    Khóa chính chống trùng mã và hỗ trợ liên kết dữ liệu.

    Trạng thái

    Theo dõi học tập (trên trình duyệt)
    Chưa đánh dấu hoàn thành.

    Trang sẽ lưu trạng thái hoàn thành và bước học gần nhất trên trình duyệt.

    © Tin học 11 – Bài thực hành CSDL (nhúng Blogspot) Tự lưu bước học gần nhất.
    Gợi ý: Bạn có thể nhúng trang này vào “Trang” (Pages) để làm thư viện bài giảng.
    Bài 22 – Kiểu dữ liệu danh sách (Tin 10 – KNTT)

    Bài 22. Kiểu dữ liệu danh sách

    Môn Tin học 10 – Kết nối tri thức với cuộc sống

    Thời lượng: 90 phút Chủ đề: List – truy cập – duyệt danh sách – append()

    Hoạt động 1: Khởi động

    Trong thực tế, ta thường làm việc với một tập hợp dữ liệu: danh sách học sinh, danh sách điểm, danh sách môn học…

    Câu hỏi gợi mở

    Câu hỏi: Nếu chỉ dùng biến đơn lẻ, có bất tiện gì khi lưu trữ nhiều dữ liệu?

    Hoạt động 2: Hình thành kiến thức mới

    2.1. Danh sách (List) trong Python

    Khái niệm: Danh sách (list) là kiểu dữ liệu dùng để lưu trữ nhiều giá trị trong cùng một biến.

    A = [1, 2, 3, 4]
    names = ["An", "Bình", "Chi"]
    • Các phần tử được sắp xếp theo thứ tự và có chỉ số (index).
    • Chỉ số bắt đầu từ 0.

    2.2. Khởi tạo danh sách

    Danh sách được tạo bằng cặp dấu ngoặc vuông [].

    A = []              # danh sách rỗng
    B = [10, 20, 30]     # danh sách có sẵn phần tử

    Ghi nhớ: Danh sách có thể chứa nhiều kiểu dữ liệu (số, xâu, logic...), nhưng trong bài này ta ưu tiên danh sách số để thực hành.

    2.3. Truy cập, thay đổi và xoá phần tử

    A = [10, 20, 30]
    print(A[0])   # 10
    
    A[1] = 50     # thay đổi phần tử
    del A[2]      # xoá phần tử
    • A[i]: truy cập phần tử thứ i.
    • Dùng lệnh gán để thay đổi: A[i] = ...
    • Dùng del để xoá: del A[i]

    2.4. Duyệt danh sách bằng vòng lặp for

    Duyệt theo chỉ số (phù hợp khi cần xử lí từng vị trí):

    for i in range(len(A)):
        print(A[i])

    len(A): số phần tử của danh sách
    i: chỉ số chạy từ 0 đến len(A) - 1

    2.5. Thêm phần tử bằng append()

    A = [1, 2, 3]
    A.append(10)  # thêm 10 vào cuối
    • Thêm 1 phần tử vào cuối danh sách.
    • Sau khi thêm, độ dài danh sách tăng thêm 1.

    Hoạt động 3: Luyện tập

    Bài tập 1: Duyệt và tính tổng

    Cho danh sách A = [3, 5, 7, 9].

    • a) In ra các phần tử của danh sách.
    • b) Tính và in tổng các phần tử.
    A = [3, 5, 7, 9]
    S = 0
    for i in range(len(A)):
        print(A[i])
        S += A[i]
    print("Tổng =", S)

    Bài tập 2: Thêm phần tử bằng append()

    Nhập n số nguyên và lưu vào danh sách A, sau đó in danh sách.

    A = []
    n = int(input("Nhập n: "))
    for i in range(n):
        x = int(input("Nhập phần tử: "))
        A.append(x)
    print("Danh sách:", A)

    Hoạt động 4: Vận dụng

    Nhiệm vụ: Tìm max/min và vị trí

    Cho danh sách các số nguyên A. Hãy:

    • Tìm giá trị lớn nhất và chỉ số của phần tử đó
    • Tìm giá trị nhỏ nhất và chỉ số của phần tử đó
    A = [5, 2, 9, 1, 7]
    max_val = A[0]
    max_idx = 0
    min_val = A[0]
    min_idx = 0
    
    for i in range(len(A)):
        if A[i] > max_val:
            max_val = A[i]
            max_idx = i
        if A[i] < min_val:
            min_val = A[i]
            min_idx = i
    
    print("Max =", max_val, "tại chỉ số", max_idx)
    print("Min =", min_val, "tại chỉ số", min_idx)

    Tổng kết bài học

    Em cần ghi nhớ

    • Danh sách (list) dùng để lưu nhiều dữ liệu trong một biến.
    • Chỉ số phần tử bắt đầu từ 0.
    • Duyệt theo chỉ số: for i in range(len(A)).
    • Thêm phần tử: A.append(x) (thêm vào cuối).
    • Có thể thay đổi: A[i] = ... và xoá: del A[i].

    Tự kiểm tra nhanh (3 câu)

    1) Câu lệnh nào tạo danh sách rỗng?

    2) append(x) có tác dụng gì?

    3) Chỉ số đầu tiên của danh sách là:

    Thứ Bảy, 24 tháng 1, 2026

    Bước 3 — Quality Gate → KHDH cuối
    🧠 TRÌNH HỖ TRỢ XÂY DỰNG KẾ HOẠCH DẠY HỌC -TRANG BƯỚC 3
    KHDH theo Chương trình GDPT 2018 • Tích hợp năng lực số • Quy trình 3 bước

    🔎 BƯỚC 3 — Quality Gate → KHDH cuối cùng

    Dán KHDH-T2 → chạy Quality Gate → ChatGPT sửa trực tiếp và xuất bản cuối.
    Khóa: đo được • 3 lớp • 4 bước • thời lượng

    1) KHDH-T2 (tự nạp từ bước 2)

    Nhập/dán KHDH-T2 → bấm Copy USER (Bước 3) → dán vào ChatGPT → nhận bản cuối.
    Tip: nếu nút copy bị chặn, nội dung sẽ tự đổ vào ô SYSTEM/USER bên phải để bạn bôi đen Ctrl+C.

    2) Copy prompt để dán vào ChatGPT

    ✅ Quality Gate kiểm gì?
    • Mục tiêu đo được (có tiêu chí đánh giá)
    • Nội dung đủ 3 lớp: Kiến thức – GV hướng dẫn – HS thực hiện & ghi chép
    • Tổ chức đủ 4 bước, Bước 4 có nội dung chốt HS ghi bài
    • Sản phẩm: rõ + ý nghĩa + tiêu chí
    • Thời lượng: từng hoạt động + tổng khớp
    Bước 2 — Triển khai đầy đủ → KHDH-T2
    🧠 TRÌNH HỖ TRỢ XÂY DỰNG KẾ HOẠCH DẠY HỌC -TRANG BƯỚC 2
    KHDH theo Chương trình GDPT 2018 • Tích hợp năng lực số • Quy trình 3 bước

    🧩 BƯỚC 2 — Triển khai đầy đủ từ KHDH-T1 → KHDH-T2 Giảm trôi chất lượng

    Trang này tự nạp KHDH-T1 từ Bước 1 (nếu đã lưu). Chạy ChatGPT để ra KHDH-T2.
    Copy USER (Bước 2)

    KHDH-T1 (đầu vào)

    Dán KHDH-T1 → Copy USER B2 → gửi ChatGPT → dán KHDH-T2.

    Copy prompt để dán vào ChatGPT

    ✅ Thứ tự (Bước 2)
    1. Giữ nguyên SYSTEM như Bước 1 (nếu phiên chat mới thì dán lại SYSTEM).
    2. Copy USER (Bước 2) → dán vào ô chat → gửi.
    3. Dán KHDH-T2 vào ô 2C → bấm Sang Bước 3.
    Nếu nút copy bị chặn: nội dung sẽ tự đổ vào ô SYSTEM/USER → bôi đen → Ctrl+C.

    Bài đăng phổ biến

    💬 Bình luận

    💬 Bình luận

    📌 Danh sách bình luận