Đáp án và lời giải
Giải SBT Tin 10 KNTT Bài 23. Một số lệnh làm việc với dữ liệu danh sách có đáp án
Câu 1
Hướng dẫn chấm do TopStudy biên soạn, mang tính gợi ý
Câu 2
Hướng dẫn chấm do TopStudy biên soạn, mang tính gợi ý
Câu 3
Hướng dẫn chấm do TopStudy biên soạn, mang tính gợi ý
Câu 4
Hướng dẫn chấm do TopStudy biên soạn, mang tính gợi ý
Câu 5
Hướng dẫn chấm do TopStudy biên soạn, mang tính gợi ý
e) False.

Câu 6
Hướng dẫn chấm do TopStudy biên soạn, mang tính gợi ý
Các câu lệnh đó có thể viết như sau:
dem = 0
for k in A:
if k > 0:
dem = dem + 1
print("Số các phần tử lớn hơn 0 của A = ", dem)
Câu 7
Hướng dẫn chấm do TopStudy biên soạn, mang tính gợi ý
Các câu lệnh đó có thể viết như sau:
B = []
for k in A:
if k % 2 == 0:
B.append(k)
print("Danh sách các số chẵn có trong A là: ", B)
Câu 8
Hướng dẫn chấm do TopStudy biên soạn, mang tính gợi ý
Chương trình có thể viết như sau:
# Dãy Fibonacci
Fibonacci = [0, 1]
n = int(input("Nhập số tự nhiên n >= 2: "))
i = 2
while i <= n:
Fibonacci.append(Fibonacci[i -1] + Fibonacci[i - 2])
i = i + 1
print (Fibonacci)
Câu 9
Hướng dẫn chấm do TopStudy biên soạn, mang tính gợi ý
Chương trình có thể viết như sau:
# Mã hoá
ban_ro = ['M', 'Y', ' ', 'N', 'A', 'M', 'E', ':', ' ', 'L', 'O', 'N', 'G']
# Ví dụ minh hoạ bản rõ
khoa = int(input(' Nhập số tự nhiên k < 5: '))
ban_ma = []
for kitu in ban_ro:
ban_ma.append(chr(ord(kitu) + khoa))
print(ban_ma)

Câu 10
Hướng dẫn chấm do TopStudy biên soạn, mang tính gợi ý
Tham khảo chương trình mã hoá ở Câu 23.5, chương trình giải mã có thể viết như sau:
# Giải mã
ban_ma = ['Q', ']', '', 'P', 'S', 'R', 'K'] # Bản mã nhận được trong câu 23.5 với k = 4
khoa = int(input(' Nhập số tự nhiên k < 5: '))
ban_ro = []
for kitu in ban_ma:
ban_ro.append(chr(ord(kitu) - khoa))
print(ban_ro)

Câu 11
Hướng dẫn chấm do TopStudy biên soạn, mang tính gợi ý
Các câu lệnh đó có thể viết như sau:
for k in A:
if k < 0:
A.remove(k)
print("Danh sách các số >= 0 của A = ", A)
Câu 12
Hướng dẫn chấm do TopStudy biên soạn, mang tính gợi ý
Chương trình có thể viết như sau:
A = [1, 2, -5, 5, 8, -8]
i = 0
while i < len(A):
if A[i] < 0:
A.insert(i + 1,"Số âm")
break
i = i + 1
print(A)

Lưu ý: Hãy suy nghĩ tại sao khi tìm thấy phần tử < 0 ở vị trí i thì lại dùng câu lệnh A.insert(i + 1, "Số âm") mà không phải là A.insert(i, "Số âm").
Câu 13
Hướng dẫn chấm do TopStudy biên soạn, mang tính gợi ý
Vì phải xác định thứ tự trong danh sách nếu tìm thấy tên địa danh nên em cần duyệt danh sách đã cho theo chỉ số tương ứng của từng phần tử.
Chương trình có thể viết như sau:
dia_danh = ["Hồ Gươm", "Hạ Long", "Mù Cang Chải", "Lũng Cú", "Hội An", "Nha Trang", "Mũi Né", "Bến Nhà Rồng", "Phú Quốc", "Mũi Cà Mau"]
i = 0
ten = input("Địa danh cần tìm: ")
da_co = False
while i < len(dia_danh):
if ten == dia_danh[i]:
da_co = True
thu_tu_diadanh = i + 1
break
i = i + 1
if da_co == False:
dia_danh.append(ten)
print("Địa danh ", ten, " chưa có. Đã được thêm vào danh sách")
else:
print("Địa danh ", ten, "đã có ở vị trí thứ ", thu_tu_diadanh, " trong danh sách")

Lưu ý: Có thể thêm câu lệnh print(dia danh) vào cuối cùng để in ra toàn bộ danh sách.
Câu 14
Hướng dẫn chấm do TopStudy biên soạn, mang tính gợi ý
Chương trình có thể được viết như sau:
# Xoá địa danh trùng lặp
dia_danh=["Hồ Gươm", "Hồ Gươm","Hồ Gươm", "Hạ Long", "Hồ Gươm", "Mù Cang Chải", "Hồ Gươm", "Mù Cang Chải", "Mù Cang Chải", "Mù Cang Chải"]
i = 0
while i < len (dia_danh):
ten = dia_danh[i]
j = i + 1
while j < len (dia_danh):
tentieptheo = dia_danh[j]
if ten == tentieptheo:
dia_danh.remove(tentieptheo)
else:
j = j + 1
i = i + 1
print(dia_danh)
