TopStudy

Đá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

Về trang đề

Câu 1

Hướng dẫn chấm do TopStudy biên soạn, mang tính gợi ý

a) True.

Câu 2

Hướng dẫn chấm do TopStudy biên soạn, mang tính gợi ý

b) False

Câu 3

Hướng dẫn chấm do TopStudy biên soạn, mang tính gợi ý

c) False.

Câu 4

Hướng dẫn chấm do TopStudy biên soạn, mang tính gợi ý

d) True.

Câu 5

Hướng dẫn chấm do TopStudy biên soạn, mang tính gợi ý

e) False.

Hình minh hoạ

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)

Hình minh hoạ

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', ']', '′,′R′,′E′,′Q′,′I′,′>′,′', 'R', 'E', 'Q', 'I', '>', '', '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)

Hình minh hoạ

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)

Hình minh hoạ

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")

Hình minh hoạ

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)

Hình minh hoạ