Khởi động
Đáp án câu hỏi khởi động trang 123
Bài toán tìm kiếm xâu con trong một xâu là một trong những bài toán tin học được ứng dụng nhiều trong thực tế. Công cụ tìm kiếm thông tin trên Internet hay lệnh tìm kiếm trong soạn thảo văn bản được xây dựng trên cơ sở bài toán tìm xâu con.
Cho xâu c = “Trường Sơn” và xâu m = “Bước chân trên dải Trường Sơn”. Em hãy cho biết xâu c có là xâu con của xâu m không? Nếu có thì tìm vị trí của xâu c trong xâu m.
Dựa vào kiến thức đã học
Xâu c là xâu con của xâu m.
Vị trí của xâu c trong xâu m: 19
Hoạt động 1 Hoạt động 1
Đáp án câu hỏi Hoạt động 1 trang 123
Quan sát các ví dụ sau để tìm hiểu cách kiểm tra xâu con và tìm kiếm vị trí xâu con trong xâu kí tự.
Quan sát các ví dụ
- Dùng toán tử in để kiểm tra một xâu có là xâu con của xâu khác không.
<xâu 1> in <xâu 2>
- Lệnh find() tìm vị trí xuất hiện của một xâu trong một xâu khác.
<xâu mẹ>.find(<xâu con> , start)
? mục 1
Hướng dẫn giải câu hỏi mục 1 trang 124
1. Biểu thức logic sau là đúng hay sai?
Toán tử in dùng để kiểm tra một xâu có là xâu con của xâu khác không:
<xâu 1> in <xâu 2>
Biểu thức trên sai vì xâu “010” không nằm trong xâu “001100”
2. Lệnh sau trả lại giá trị là gì?
Lệnh find() trả về vị trí của xâu con trong xâu mẹ
Kết quả: 4
Lệnh sẽ tìm vị trí xâu ”ab” từ vị trí 4
Hoạt động 2
Trả lời câu hỏi Hoạt động 2 trang 124
Quan sát các ví dụ sau để biết cách sử dụng một số lệnh thường dùng với xâu kí tự như: split(), join().
Quan sát các ví dụ
split(): tách xâu thành các từ và đưa vào một danh sách. Cú pháp lệnh split() là: <xâu mẹ>.split(<kí tự cách>)
join(): nối các phần tử của một danh sách thành một xâu. Cú pháp lệnh join() là: ”kí tự nối”.join()
? mục 2
Trả lời câu hỏi mục 2 trang 125
Cho xâu kí tự: "gà,vịt,chó,lợn,ngựa,cá”. Em hãy trình bày cách làm để xóa các dấu ",” và thay thế bằng dấu ” ” trong xâu này.
Python có các lệnh để xử lý xâu là split() dùng để tách xâu thành danh sách và lệnh join() dùng để nối danh sách các xâu thành một xâu
>>> s = "gà,vịt,chó,lợn,ngựa,cá”
>>> s = ” ".join(s.split(",”))
Luyện tập
Hướng dẫn giải câu hỏi Luyện tập trang 126 :
1. Viết chương trình nhập nhiều số (số nguyên hoặc số thực) từ bàn phím, các số cách nhau bởi dấu cách. Sau đó in ra màn hình tổng các số đã nhập.
Advertisements (Quảng cáo)
Dữ liệu nhập vào là một xâu. Dùng lệnh split() để tách thành danh sách. Chuyển các phần tử của danh sách này thành số và tính tổng.
s=input("Nhập dãy các số cách nhau bởi dấu cách: ")
A=s.split()
n=[]
for x in A:
n.append(float(x))
S=0
for i in n:
S=S+i
print(S)
2. Viết chương trình nhập họ tên đầy đủ của người dùng, sau đó in thông báo tên và họ đệm của người đó.
Dựa vào kiến thức đã học để viết chương trình
s=input("Nhập họ tên: ")
A=s.split(” ")
print("Tên: ", A[len(A)-1])
print("Tên đệm: ", A[len(A)-2])
Vận dụng
Trả lời câu hỏi Vận dụng trang 122
1. Viết chương trình nhập hai số tự nhiên từ bàn phím, cách nhau bởi dấu cách và đưa ra kết quả UCLN của hai số này.
Dựa vào kiến thức đã học để viết chương trình
s=input("Nhập hai số tự nhiên cách nhau bởi dấu cách: ")
A=s.split(” ")
a=int(A[0])
b=int(A[1])
r = a % b
while r != 0:
a = b
b = r
r = a % b
print("ƯCLN của a và b là: ",b)
2. Viết chương trình nhập số tự nhiên n rồi nhập n họ tên học sinh. Sau đó yêu cầu nhập một tên và thông báo số bạn có cùng tên trong lớp.
Dựa vào kiến thức đã học để viết chương trình
n=int(input("Nhập số tự nhiên n: "))
A=[]
t=0
for i in range(0,n):
A.append(input("Nhập họ tên: "))
s=input("Nhập một tên: ")
for i in range(0,n):
B=A[i].split()
if s == B[len(B)-1]:
t=t+1
print("Vậy trong lớp có số bạn cùng tên đó là: ",t)