Khởi động
Trả lời câu hỏi mở đầu trang 115 SGK Tin học 10
Trong bài trước chúng ta đã biết dùng lệnh append để thêm phần tử vào cuối một danh sách.
Vậy Python có lệnh nào dùng để:
- Xóa nhanh một danh sách
- Chèn thêm một phần tử vào đầu hay giữa danh sách?
- Kiểm tra một phần tử có nằm trong một danh sách không?
Phương pháp giải:
Dựa vào lý thuyết trong bài 23
Lời giải chi tiết:
- Xóa nhanh một danh sách: clear()
- Chèn phần tử x vào vị trí k của danh sách: insert(k,x)
- Kiểm tra một phần tử có nằm trong một danh sách không: Câu lệnh dùng toán tử in. Nếu có trả lại True, nếu không thì trả về False.
Hoạt động 1
Trả lời câu hỏi Hoạt động 1 trang 115 SGK Tin học 10
Quan sát ví dụ sau để biết cách dùng toán tử in để duyệt một danh sách.
Phương pháp giải:
Quan sát ví dụ
Lời giải chi tiết:
- Toán tử in dùng để kiểm tra một phần tử có nằm trong danh sách đã cho không. Kết quả trả lại True hoặc False: <giá trị> in
- Có thể duyệt nhanh từng phần tử của danh sách bằng toán tử in và lệnh for mà không cần sử dụng range
? mục 1
Trả lời câu hỏi mục 1 trang 116 SGK Tin học 10
1. 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
Phương pháp giải:
Toán tử in dùng để kiểm tra một phần tử có nằm trong danh sách đã cho không. Kết quả trả lại True hoặc False: <giá trị> in
Lời giải chi tiết:
a) False
b) True
2. Hãy giải thích ý nghĩa của từ khoá in trong câu lệnh sau:
Phương pháp giải:
Có thể duyệt lần lượt các phần tử của danh sách bằng lệnh for kết hợp với vùng giá trị của lệnh range()
Lời giải chi tiết:
Khi thực hiện lệnh này, biến i lần lượt nhận các giá trị từ 0, 1, …, 8, 9
Hoạt động 2
Trả lời câu hỏi Hoạt động 2 trang 116 SGK Tin học 10
Tìm hiểu một số lệnh làm việc với danh sách
Quan sát ví dụ sau để tìm hiểu một số lệnh làm việc với dữ liệu kiểu danh sách.
Phương pháp giải:
Quan sát ví dụ để tìm hiểu
Lời giải chi tiết:
append(x): Bổ sung phần tử x vào cuối danh sách
insert(k, x): chèn phần tử x vào vị trí k của danh sách
clear(): Xóa toàn bộ dữ liệu của danh sách
remove(x): Xóa phần tử x từ danh sách
? mục 2
Trả lời câu hỏi mục 2 trang 117 SGK Tin học 10
1. Khi nào thì lệnh A.append(1) và A. insert(0,1) có tác dụng giống nhau?
Phương pháp giải:
append(x): Bổ sung phần tử x vào cuối danh sách
insert(k, x): chèn phần tử x vào vị trí k của danh sách
Lời giải chi tiết:
Lệnh A.append(1) và A. insert(0,1) có tác dụng giống nhau khi trước đó A rỗng, chưa có phần tử nào.
2. Danh sách A trước và sau lệnh insert( ) là [1, 4, 10, 0] và [1, 4, 10, 5, 0]. Lệnh đã dùng là gì?
Phương pháp giải:
insert(k, x): chèn phần tử x vào vị trí k của danh sách
Lời giải chi tiết:
Lệnh đã dùng insert(3,5)
Luyện tập
Trả lời câu hỏi Luyện tập trang 118 SGK Tin học 10
1. Cho dãy số [1, 2, 2, 3, 4, 5, 5]. Viết lệnh thực hiện:
a) Chèn số 1 vào ngay sau giá trị 1 của dãy
b) Chèn số 3 và số 4 vào danh sách để dãy có số 3 và số 4 liền nhau hai lần
Phương pháp giải:
insert(k, x): chèn phần tử x vào vị trí k của danh sách
Lời giải chi tiết:
a) Chèn số 1 vào ngay sau giá trị 1 của dãy: A.insert(1,1)
b) Chèn số 3 và số 4 vào danh sách để dãy có số 3 và số 4 liền nhau hai lần: A.insert(3,4), A.insert(5,4)
2. Cho trước dãy số A. Viết chương trình thực hiện công việc sau:
- Xóa đi một phần tử ở chính giữa dãy nếu số phần tử của dãy là số lẻ.
- Xóa đi hai phần tử ở chính giữa của dãy nếu số phần tử là số chẵn.
Phương pháp giải:
Dựa vào kiến thức đã học để viết chương trình
A = [11, 50, 26, 87, 59]
C = len(A)
if C%2 != 0:
A. remove (A[C//2])
else:
A. remove (A[C//2])
C = C - 1
A. remove(A[C//2])
print (A)
Vận dụng
Trả lời câu hỏi Vận dụng trang 118 SGK Tin học 10
1. Viết chương trình nhập n từ bàn phím, tạo và in ra màn hình dãy số A bao gồm n số tự nhiên chẵn đầu tiên.
Phương pháp giải:
Dựa vào kiến thức đã học để viết chương trình
Lời giải chi tiết:
A = []
n = int(input("Nhập số tự nhiên n:"))
if n<1:
n = int(input("Nhập lại số tự nhiên n:"))
for i in range (0,n):
A.append(i*2)
print ("Dãy số A là:", A)
2. Dãy số Fibonacci được xác định như sau:
F0 = 0
F1 = 1
Fn = Fn−1 + Fn−2 (với n≥2).
Viết chương trình nhập n từ bàn phím, tạo và in ra màn hình dãy số A bao gồm n số hạng đầu của dãy Fibonacci.
Phương pháp giải:
Dựa vào kiến thức đã học để viết chương trình
Lời giải chi tiết:
n=int(input("Nhập số tự nhiên n: "))
if n<1:
n=int(input("Nhập lại số tự nhiên n: "))
if n == 1 or n == 2:
if n == 1:
A = [0]
else:
A = [0,1]
else:
A = [0,1]
for i in range (n-2):
A.append(A[i]+A[i+1])
print("Dãy số A là:", A)