Bài 25. Một số lệnh làm việc với xâu kí tự SGK Tin học 7 Kết nối tri thứcQuan 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ự.
Lựa chọn câu để xem lời giải nhanh hơn
Khởi động Trả lời câu hỏi khởi động trang 123 SGK Tin học 10 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. Phương pháp giải: Dựa vào kiến thức đã học Lời giải chi tiết: 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 Trả lời câu hỏi Hoạt động 1 trang 123 SGK Tin học 10 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ự. Phương pháp giải: Quan sát các ví dụ Lời giải chi tiết: - 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 Trả lời câu hỏi mục 1 trang 124 SGK Tin học 10 1. Biểu thức logic sau là đúng hay sai?
Phương pháp giải: 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> Lời giải chi tiết: 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ì?
Phương pháp giải: Lệnh find() trả về vị trí của xâu con trong xâu mẹ Lời giải chi tiết: 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 SGK Tin học 10 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(). Phương pháp giải: Quan sát các ví dụ Lời giải chi tiết: 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 SGK Tin học 10 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. Phương pháp giải: 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 Lời giải chi tiết: >>> s = "gà,vịt,chó,lợn,ngựa,cá" >>> s = " ".join(s.split(",")) Luyện tập Trả lời câu hỏi Luyện tập trang 126 SGK Tin học 10: 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. Phương pháp giải: 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. Lời giải chi tiết: 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 đó. 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: 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 SGK Tin học 10 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. 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: 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. 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: ")) 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)
|