Tin học 10 Kết nối tri thức Bài 22: Kiểu dữ liệu danh sách

1. KIỂU DỮ LIỆU DANH SÁCH

Kiểu dữ liệu danh sách trong Python được khởi tạo như sau:

<tên list> = [<v1>, <v2>,…,<vn>]

Trong đó: các giá trị <Vk> có thể có kiểu dữ liệu khác nhau (số nguyên, số thực, xâu kí tự....).
ly-thuyet-tin-hoc-10-sach-ket-noi-tri-thuc-bai22

- Chỉ số của danh sách bắt đầu từ 0 đến len() - 1, trong đó len () là lệnh
tính độ dài danh sách.

Ví dụ về len():



- Để xóa một phần tử của danh sách, ta dùng lệnh del.

- Truy cập hoặc thay đổi giá trị của từng phần tử thông qua chỉ số:

<danh sách> [<chỉ số>]
Ví dụ 2:





- Cách tạo danh sách rỗng (có độ dài 0) và các phép toán ghép danh sách (phép +)

 Bài tập củng cố

1. Cho danh sách A = [1, 0, "One", 9, 15, "Two", True, False]. Hãy cho biết giá trị các phần tử:
a) A[0]

b) A[2]
c) A[7]

 d) A[len(A)]

Gợi ý trả lời SGK Tin học 10 KNTT

ĐÁP ÁN: Hiện
1. a) 1 b) "One" c) False d) Lỗi chỉ số

2. Giả sử A là một danh sách các số, mỗi lệnh sau thực hiện công việc gì?
a) A = A + [10]

b) del A[0]
c) A = [100] + A

d) A = A[1]*25


Gợi ý trả lời SGK Tin học 10 KNTT

ĐÁP ÁN: Hiện
a) Bổ sung phần tử 10 vào cuối danh sách A.
b) Xóa phần tử đầu tiên của danh sách A.
c) Bổ sung số 100 vào đầu danh sách A.
d) Thiết lập biến A mới là tích của 25 với giá trị phần tử thứ hai của danh sách A. Tức danh sách A mới là 0

2. DUYỆT CÁC PHẦN TỬ CỦA DANH SÁCH

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

Hoặc



Hoặc Ta có danh sách A=[5,7,"10A3",8.5,-6,9,-10]. 
Muốn in ra 10A3  8.5  -6  9  Ta dùng lệnh:


 Bài tập củng cố



Gợi ý trả lời SGK Tin học 10 KNTT

ĐÁP ÁN: Hiện
a)Tính tổng các số dương trong danh sách A.
b) Đếm số các số dương trong danh sách A.



Gợi ý trả lời SGK Tin học 10 KNTT

ĐÁP ÁN: Hiện
A=[1,5,7,4,18,20]
for i in range(len(A)):
    if A[i]%2==0:
        print(A[i],end=" ")
        

3. Cho dãy số nguyên A. Viết chương trình tính In ra và tổng các số lẻ trong danh sách

Gợi ý trả lời SGK Tin học 10 KNTT

ĐÁP ÁN: Hiện
A=[1,5,7,4,18,20]
S=0
for i in range(len(A)):
    if A[i]%2!=0:
        print(A[i],end=" ")
        # Tính tổng thì mỗi lần lặp + A[i]
        S=S+A[i] 
print()
print("Tổng số lẻ trong danh sách: ",S)


4. Cho dãy số nguyên A. Viết chương trình in ra và đếm các số lẻ trong danh sách

Gợi ý trả lời SGK Tin học 10 KNTT

ĐÁP ÁN: Hiện
A=[1,5,7,4,18,20]
c=0
for i in range(len(A)):
    if A[i]%2!=0:
        print(A[i],end=" ")
        c=c+1 #Đếm thì mỗi lần lặp tăng 1
print()
print("số lượng số lẻ trong danh sách: ",c)


3. THÊM PHẦN TỬ VÀO DANH SÁCH

- Python có một số lệnh dành riêng (phương thức) cho dữ liệu kiểu danh sách. Cú pháp các lệnh đó như sau:
<danh sách>.<phương thức>
- Lệnh thêm phần tử vào cuối danh sách là

<danh sách>.append()

 Bài tập củng cố

1. Sau khi thêm một phần tử vào danh sách A bằng lệnh append() thì độ dài danh sách A thay đổi như thế nào?


Gợi ý trả lời SGK Tin học 10 KNTT

ĐÁP ÁN: Hiện
1. Độ dài danh sách A sẽ tăng lên một đơn vị.

2. Danh sách A sẽ như thế nào sau các lệnh sau?



Gợi ý trả lời SGK Tin học 10 KNTT

ĐÁP ÁN: Hiện
[2, 10, 1, 0, 100]

THỰC HÀNH

Bài tập mẫu ngoài SGK:
Nhập  số n từ bàn phím. Sau đó, nhập danh sách n là là các số nguyên và in danh sách đó ra.
Ví dụ:
Nhập số tự nhiên n= 4
Nhập A[1]= 5
Nhập A[2]= 7
Nhập A[3]= -4
Nhập A[4]= 8
Danh sách bạn vừa nhập là
5 7 -4 8

A=[]
n=int(input("Nhập số tự nhiên n= "))
for i in range(n):
    so=int(input("Nhập A["+str(i+1)+"]= "))
    A.append(so)
print("Danh sách bạn vừa nhập là")
for i in range(n):
    print(A[i],end=" ");
    

Khởi tạo, nhập dữ liệu, thêm phần tử cho danh sách

Nhiệm vụ 1. Nhập số n từ bàn phím, sau đó nhập danh sách n tên các bạn lớp em và in ra danh sách các tên đó, mỗi tên trên một dòng.
Hướng dẫn. Chương trình yêu cầu nhập số tự nhiên n, sau đó nhập từng tên trong danh sách, dùng phương thức append() để đưa dần vào danh sách.

Chú ý. Vì vùng giá trị của lệnh range(n) bắt đầu từ 0 nên trong thông báo nhập cần viết là str(i+1) để bắt đầu từ 1.

Nhiệm vụ 2. Nhập một dãy số từ bàn phím. Tính tổng, trung bình của dãy và in dãy số trên một hàng ngang.
Hướng dẫn. Tương tự nhiệm vụ 1, chỉ khác là nhập số nguyên nên dùng lệnh int() để chuyển đổi dữ liệu.
Chương trình có thể như sau:

Viết chương trình. Nhập một dãy số từ bàn phím rồi in ra dãy số vừa nhập. Sau đó, in ra các số chẵn  trong dãy. Tính tổng các số chẵn đó và đếm xem trong dãy có bao nhiêu số chẵn.
Ví dụ: Nhập số tự nhiên n= 6 
Nhập A[1]= 4 
Nhập A[2]= 3 
Nhập A[3]= 5 
Nhập A[4]= 8
 Nhập A[5]= 9 
Nhập A[6]= 10 
Danh sách bạn vừa nhập là 
4 3 5 8 9 10 4 8 10 
 Tổng chẵn : 22 
Số lượng số chẵn trong dãy là: 3

Gợi ý trả lời SGK Tin học 10 KNTT

ĐÁP ÁN: Hiện
A=[]
Tong=0
Dem=0
n=int(input("Nhập số tự nhiên n= "))
for i in range(n):
    num=int(input("Nhập A["+str(i+1)+"]= "))
    A.append(num)
print("Danh sách bạn vừa nhập là")
for i in range(n):
    print(A[i],end=" ");
for i in range(n):
    if A[i]%2==0:
        print(A[i],end=" ")
        Tong=Tong+A[i]
        Dem=Dem+1
print()
print("Tổng số chẵn: ",Tong)
print("Số lượng số chẵn trong dãy là: ",Dem)


LUYỆN TẬP

1. Viết lệnh xóa phần tử cuối cùng bằng lệnh del

Gợi ý trả lời SGK Tin học 10 KNTT

ĐÁP ÁN: Hiện
Lệnh xoá phần tử cuối cùng của danh sách A bằng lệnh del: del A[len(A)-1]

2. Có thể thêm một phần từ vào đầu danh sách được không? Nếu có thì nêu cách thực hiện

Gợi ý trả lời SGK Tin học 10 KNTT

ĐÁP ÁN: Hiện
Có thể thực hiện lệnh sau để bổ sung phần tử x vào đầu của danh sách A.
A = [x] + A.

VẬN DỤNG

Cho dãy số A. Viết chương trình tìm giá trị và chỉ số của phần tử lớn nhất của A. Tương tự bài toán tìm phần tử nhỏ nhất.
Cách 1:

Gợi ý trả lời SGK Tin học 10 KNTT

ĐÁP ÁN: Hiện
A=[1,0,10,9,-1,14,7,8]
csmax=0
Max=A[0]
for k in range(len(A)):
    if A[k]>Max:
        Max=A[k]
        csmax=k
print("Phần tử lớn nhất là",Max,"Tại vị trí ",csmax)


Cách 2

Gợi ý trả lời SGK Tin học 10 KNTT

ĐÁP ÁN: Hiện
A=[1,0,10,9,-1,14,7,8]
cs=0
Max=A[0]
for k in range(len(A)):
    if A[k]>Max:
        Max=A[k]
        csmax=cs
    cs=cs+1
print("Phần tử lớn nhất là",Max,"Tại vị trí ",csmax)


CÙNG CHUYÊN MỤC:

Chủ đề 1: Máy tính và xã hội tri thức
Lý thuyết: Bài 1-Thông tin và dữ liệu
Lý thuyết: Bài 2-Vai trò của thiết bị thông minh và tin học đối với xã hội
Chủ đề 2: Mạng máy tính và Internet
Lý thuyết: Bài 8-Mạng máy tính trong cuộc sống hiện đại
Lý thuyết: Bài 9-An toàn trên không gian mạng
Chủ đề 3: Đạo đức, pháp luật và văn hóa trong môi trường số
Lý thuyết: Bài 11-Ứng dụng trên môi trường số. Nghĩa vụ tôn trọng bản quyền
Chủ đề 5: Giải quyết vấn đề với sự trợ giúp của máy tính
Lý thuyết: Bài 16-Ngôn ngữ lập trình bậc cao và Python
Lý thuyết: Bài 17-Biến và lệnh gán
Lý thuyết: Bài 18-Các lệnh vào ra đơn giản
Lý thuyết: Bài 19-Câu lệnh điều kiện if
Lý thuyết: Bài 20-Câu lệnh lặp for
Lý thuyết: Bài 21-Câu lệnh lặp while
Lý thuyết: Bài 22-Kiểu dữ liệu danh sách
Lý thuyết: Bài 23-Một số lệnh làm việc với dữ liệu danh sách
Lý thuyết: Bài 24-Xâu kí tự
Lý thuyết: Bài 25-Một số lệnh làm việc với xâu kí tự
Lý thuyết: Bài 26-Hàm trong Python
Lý thuyết: Bài 27-Tham số của hàm
Lý thuyết: Bài 28-Phạm vi của biến
Lý thuyết: Bài 29-Nhận biết lỗi chương trình
Lý thuyết: Bài 30-Kiểm thử và gỡ lỗi chương trình
Lý thuyết: Bài 31-Thực hành viết chương trình đơn giản
Lý thuyết: Bài 32-Ôn tập lập trình Python
Chủ đề 6: Hướng nghiệp với Tin học
Lý thuyết: Bài 33-Nghề thiết kế đồ hoạ máy tính
Lý thuyết: Bài 34-Nghề phát triển phần mềm

Next Post Previous Post
No Comment
Add Comment
comment url