Giáo án Tin học Lớp 11 - Bài 13: Kiểu danh sách list - Trường THPT Thăng Long
I. MỤC TIÊU
1. Kiến thức
- Hiểu khái niệm list, các thao tác với list.
- Hiểu cách khai báo và truy cập đến các phần tử của list.
2. Năng lực
- Năng lực giải quyết vấn đề, sáng tạo.
- Năng lực tự học, đọc hiểu.
- Năng lực hợp tác nhóm: trao đổi thảo luận, trình bày kết quả.
- Năng lực tính toán, Năng lực thực hành .
3. Phẩm chất
- Phẩm chất: Giúp học sinh rèn luyện bản thân phát triển các phẩm chất tốt đẹp: yêu nước, nhân ái, chăm chỉ, trung thực, trách nhiệm
II. THIẾT BỊ DẠY HỌC VÀ HỌC LIỆU
Giáo viên: Sách giáo khoa, máy tính điện tử.
Học sinh: đồ dùng học tập, SGK, vở ghi, máy tính
III. TIẾN TRÌNH DẠY HỌC
A. HOẠT ĐỘNG KHỞI ĐỘNG (MỞ ĐẦU)
a) Mục tiêu: Tạo tình huống khơi gợi tinh thần cho học sinh
b) Nội dung: Hs dựa vào hiểu biết để trả lời câu hỏi.
c) Sản phẩm: Từ yêu cầu HS vận dụng kiến thức để trả lời câu hỏi GV đưa ra.
d) Tổ chức thực hiện: GV giới thiệu và dẫn dắt vào bài:
B. HÌNH THÀNH KIẾN THỨC MỚI
Hoạt động 1: Tìm hiểu kiểu dữ liệu danh sách.
a) Mục tiêu: Giúp học sinh biết được khái niệm về list
b) Nội dung: HS quan sát SGK để tìm hiểu nội dung kiến thức theo yêu cầu của GV.
c) Sản phẩm: HS hoàn thành tìm hiểu kiến thức
Trường: THPT THĂNG LONG Tổ: LÝ - CN Họ và tên giáo viên Hoàng Thị Thanh Tâm Tên bài dạy KIỂU DANH SÁCH LIST Môn học: Tin Học; Lớp: 11 Thời gian thực hiện:2 tiết I. MỤC TIÊU 1. Kiến thức - Hiểu khái niệm list, các thao tác với list. - Hiểu cách khai báo và truy cập đến các phần tử của list. 2. Năng lực - Năng lực giải quyết vấn đề, sáng tạo. - Năng lực tự học, đọc hiểu. - Năng lực hợp tác nhóm: trao đổi thảo luận, trình bày kết quả. - Năng lực tính toán, Năng lực thực hành . 3. Phẩm chất - Phẩm chất: Giúp học sinh rèn luyện bản thân phát triển các phẩm chất tốt đẹp: yêu nước, nhân ái, chăm chỉ, trung thực, trách nhiệm II. THIẾT BỊ DẠY HỌC VÀ HỌC LIỆU Giáo viên: Sách giáo khoa, máy tính điện tử. Học sinh: đồ dùng học tập, SGK, vở ghi, máy tính III. TIẾN TRÌNH DẠY HỌC A. HOẠT ĐỘNG KHỞI ĐỘNG (MỞ ĐẦU) a) Mục tiêu: Tạo tình huống khơi gợi tinh thần cho học sinh b) Nội dung: Hs dựa vào hiểu biết để trả lời câu hỏi. c) Sản phẩm: Từ yêu cầu HS vận dụng kiến thức để trả lời câu hỏi GV đưa ra. d) Tổ chức thực hiện: GV giới thiệu và dẫn dắt vào bài: B. HÌNH THÀNH KIẾN THỨC MỚI Hoạt động 1: Tìm hiểu kiểu dữ liệu danh sách. a) Mục tiêu: Giúp học sinh biết được khái niệm về list b) Nội dung: HS quan sát SGK để tìm hiểu nội dung kiến thức theo yêu cầu của GV. c) Sản phẩm: HS hoàn thành tìm hiểu kiến thức d) Tổ chức thực hiện: Hoạt động của GV và HS Sản phẩm dự kiến * Bước 1: Chuyển giao nhiệm vụ: (?) * Bước 2: Thực hiện nhiệm vụ: + HS: Suy nghĩ, tham khảo sgk trả lời câu hỏi + GV: quan sát và trợ giúp các cặp. * Bước 3: Báo cáo, thảo luận: + HS: Lắng nghe, ghi chú, một HS phát biểu lại các tính chất. + Các nhóm nhận xét, bổ sung cho nhau. * Bước 4: Kết luận, nhận định: GV chính xác hóa và gọi 1 học sinh nhắc lại kiến thức Ví dụ: Ví dụ: I. Kiểu dữ liệu danh sách Ví dụ: Duy có rất nhiều sách và muốn lập một chương trình quản lý sách. Chương trình cần có chức năng: Lưu trữ danh sách tên các quyển sách Thêm tên một quyển sách vào danh sách Hiện tên các quyển sách trong danh sách => Ý tưởng là gì? 1) Khái niệm Danh sách là một dãy hữu hạn các phần tử (có thể không cùng kiểu) Danh sách được đặt tên và các phần tử đều được đánh chỉ số Các phần tử của List được phân cách nhau ra bởi dấu phẩy (,). Được giới hạn bởi cặp ngoặc [ ], tất cả những gì nằm trong đó là những phần tử của List. 2) Cách khởi tạo Cách 1: Sử dụng cặp dấu ngoặc[] đặt giá trị bên trong Cú pháp: [ , , .., , ] Ví dụ: lst = [“Toán học”, “Hình học”, “Tin học”, “Hồn rỗng”] empty_list = [] # khởi tạo list rỗng Cách 2: Sử dụng List Comprehension (bao quát) Cú pháp: [Comprehension] Ví dụ: >>> a = [kteam for kteam in range(3)] >>> a [0, 1, 2] >>> another_lst = [[n, n * 1, n * 2] for n in range(1, 4)] >>> another_lst [[1, 1, 2], [2, 2, 4], [3, 3, 6]] Ví dụ: Nhập dữ liệu cho List các phần tử cùng kiểu Cú pháp: = [ ( ) for in input().split()] Trong đó: , : được đặt theo quy tắc đặt tên biến : là kiểu int hoặc float tùy vào danh sách nhập vào là số nguyên hay thực Cách 3: Sử dụng constructor List Cú pháp: list (iterable) Lưu ý: iterable là một đối tượng nói chung của các container. (Ta đã được biết hai iterable đó chính là chuỗi, và List). Ví dụ: >>> lst = list([1, 2, 3]) >>> lst [1, 2, 3] >>> str_lst = list('HOWKTEAM') >>> str_lst ['H', 'O', 'W', 'K', 'T', 'E', 'A', 'M'] >>> list(1) Traceback (most recent call last): File " ", line 1, in TypeError: 'int' object is not iterable * Hàm map() Cú pháp map(function, iterable 1, iterable 2, ...) Trong đó: function: hàm thực thi cho từng phần tử trong iterable iterable: một list, tuple, dictionary muốn duyệt Ý nghĩa: - Duyệt tất cả các phần tử của một iterable (list, tuple, dictionary...) qua một hàm cho trước và trả về một list kết quả sau khi thực thi. - Giá trị trả về từ map() được gọi là map object. Đối tượng này có thể được truyền vào các hàm list() (để tạo list trong Python), hay set() (để tạo một set các phần tử mới) 4) Đưa danh sách ra màn hình Cú pháp: for in : print( ) Hoặc: print( ) Hoạt động 2: Tìm hiểu các thao tác trên List trong Python a) Mục tiêu: Nắm được cách khai báo mảng một chiều b) Nội dung: HS quan sát SGK để tìm hiểu nội dung kiến thức theo yêu cầu của GV. c) Sản phẩm: HS hoàn thành tìm hiểu kiến thức d) Tổ chức thực hiện: Hoạt động của GV và HS Sản phẩm dự kiến * Bước 1: Chuyển giao nhiệm vụ: Giải thích ví dụ rõ để học sinh phân biệt tên kiểu mảng, tên biến mảng. - Yêu cầu học sinh cho ví dụ về 2 cách khai báo trên. * Bước 2: Thực hiện nhiệm vụ: + HS: Suy nghĩ, tham khảo sgk trả lời câu hỏi + GV: quan sát và trợ giúp các cặp. * Bước 3: Báo cáo, thảo luận: + HS: Lắng nghe, ghi chú, một HS phát biểu lại các tính chất. + Các nhóm nhận xét, bổ sung cho nhau. * Bước 4: Kết luận, nhận định: GV chính xác hóa và gọi 1 học sinh nhắc lại kiến thức II. Các thao tác trên List trong Python 1) Các phép toán Phép toán Ý nghĩa Ví dụ + Ghép nhiều danh sách thành một [“Toán học”, “Tin học”]+[“Hóa học”] => [“Toán học”, “Tin học”, “Hóa học”] * Tạo ra một danh sách lặp đi lặp lại xâu gốc với số lần nhân [0, 1]*3=>[0, 1, 0, 1, 0, 1] in Cho biết một phần tử có xuất hiện trong list hay không, nếu có nhận giá trị True, ngược lại nhận giá trị False “Vật lý” in [“Toán học”, “Tin học”] False Hàm len() Trả về số phần tử trong danh sách ds = [“-1”, 0 , 1, 2, “ ”] len(ds) = 5 2) Đánh chỉ số và các thao tác với chỉ số trong List a) Đánh chỉ số các phần tử trong list: bắt đầu từ 0 đến độ dài list - 1 b) Tham chiếu tới phần tử của list bằng chỉ số đặt trong cặp ngoặc [ và ] Ví dụ: ds = [“-1”, 0, 1.5, 2, “ ”, 123, 23.4, “Tâm”] ds[2] = 1.5 c) Sao chép danh sách: để tạo ra một list mới là đoạn con của list gốc từ chỉ số bắt đầu đến chỉ số dừng – 1 ta viết: tên_list[vị trí bắt đầu:vị trí dừng] Ví dụ: ds = [“-1”, 0, 1.5, 2, “ ”, 123, 23.4, “Tâm”] ds[1:3] = [0, 1.5] d) Thay đổi giá trị phần tử trong danh sách Ví dụ: ds = [“-1”, 0, 1.5, 2, “ ”, 123, 23.4, “Tâm”] ds[0] = “---” => ds = [“---”, 0, 1.5, 2, “ ”, 123, 23.4, “Tâm”] e) Chèn một phần tử vào trong danh sách Cú pháp: .insert (i, x) Ý nghĩa: Thêm phần tử x vào vị trí i trong danh sách f) Sắp xếp danh sách Cú pháp: .sort(key=None, reverse=False) Ý nghĩa: Sắp xếp các phần tử bằng cách so sánh trực tiếp Chú ý: Từ khóa reverse chỉ có thể cho 2 giá trị, một là True, hai là False. Nếu là False, các phần tử được sắp xếp từ bé đến lớn, còn ngược lại là từ lớn đến bé Các phần tử trong danh sách phải so sánh được với nhau Ví dụ: g) Thêm một phần tử vào cuối danh sách Cú pháp: .append(x) Ý nghĩa: Thêm phần tử x vào cuối danh sách Hoạt động 3: Tìm hiểu Bài tập a) Mục tiêu: Nắm được các thao tác trên mảng một chiều b) Nội dung: HS quan sát SGK để tìm hiểu nội dung kiến thức theo yêu cầu của GV. c) Sản phẩm: HS hoàn thành tìm hiểu kiến thức d) Tổ chức thực hiện: Hoạt động của GV và HS Sản phẩm dự kiến * Bước 1: Chuyển giao nhiệm vụ: (?) * Bước 2: Thực hiện nhiệm vụ: + HS: Suy nghĩ, tham khảo sgk trả lời câu hỏi + GV: quan sát và trợ giúp các cặp. * Bước 3: Báo cáo, thảo luận: + HS: Lắng nghe, ghi chú, một HS phát biểu lại các tính chất. + Các nhóm nhận xét, bổ sung cho nhau. * Bước 4: Kết luận, nhận định: GV chính xác hóa và gọi 1 học sinh nhắc lại kiến thức Bài 1: Hãy cho biết chương trình dưới đây đưa ra màn hình nội dung gì? Bài 2: Viết chương trình đọc vào 7 số thực tương ứng là nhiệt độ lần lượt từ thứ hai đến chủ nhật trong tuần tới, đưa ra màn hình các thông tin sau: Các ngày có nhiệt độ dưới 10 độ Nhiệt độ thấp nhất, cao nhất trong 7 ngày Bài 3: Viết chương trình nhập vào số nguyên dương n và n số nguyên dương tương ứng là chiều cao của n bạn. Khi xếp hàng các bạn sẽ đứng theo thứ tự tăng dần theo chiều cao. Em hãy đưa ra màn hình dãy đã sắp xếp để thấy thứ tự xếp hàng của n bạn n=int(input("Nhập vào số nguyên dương n= ")) ls=[] print("Nhập vào chiều cao của",n,"bạn:") for x in range(1,n+1): a=float(input()) ls.append(a) print("Dãy đã sắp xếp theo thứ tự tăng dần của chiều cao ") ls.sort() print(ls) C. HOẠT ĐỘNG LUYỆN TẬP a. Mục tiêu: Củng cố, luyện tập kiến thức vừa học. b. Nội dung: HS đọc SGK làm các bài tập. c. Sản phẩm: Bài làm của học sinh, kĩ năng giải quyết nhiệm vụ học tập. d. Tổ chức thực hiện: GV yêu cầu HS: D. HOẠT ĐỘNG VẬN DỤNG a. Mục tiêu: Vận dụng các kiến thức vừa học quyết các vấn đề học tập và thực tiễn. b. Nội dung: HS sử dụng SGK và vận dụng kiến thức để trả lời câu hỏi. c. Sản phẩm: HS vận dụng các kiến thức vào giải quyết các nhiệm vụ đặt ra. d. Tổ chức thực hiện: Viết chương trình nhập dãy N số nguyên (N<=200). In giá trị của phần tử cuối và đầu của dãy số. * HƯỚNG DẪN VỀ NHÀ: - Ôn lại bài học hôm nay; - Chuẩn bị trước cho tiết sau. * RÚT KINH NGHIỆM ..................................................................................................................................... .....................
Tài liệu đính kèm:
- giao_an_tin_hoc_lop_11_bai_13_kieu_danh_sach_list_truong_thp.docx