Giải Tin học 10 – Bài 25. Một số lệnh làm việc với xâu kí tự – KNTT

1. Xâu con và lệnh tìm vị trí xâu con

Câu 1. Biểu thức logic sau đây đúng hay sai?
>>>”010″ in “001100”

Câu 2. Lệnh sau trả lại giá trị gì?
>>>”ababababab”.find(“ab”, 4)

Hướng dẫn giải:

Câu 1: False

Câu 2: Lệnh trả về giá trị 4

2. Một số lệnh thường dùng với xâu kí tự

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.

Hướng dẫn giải:

Cách 1: Sử dụng split và join để tách và nối

s = "gà,vịt,chó,lợn,ngựa,cá"
sline = s.split(",")
skq = " ".join(sline)
print(skq)

Cách 2: Sử dụng replace để thay thế

s = "gà,vịt,chó,lợn,ngựa,cá"
s = s.replace(","," ")
print(s)

Luyện tập

Câu 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.

Câu 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 đó.

Hướng dẫn giải:

Câu 1: Chương trình viết theo 2 cách

Cách 1: Sử dụng hàm map

A = list(map(float,input("Mời nhập dãy các số: ").split()))
s = 0
for x in A: s = s + x
print("Tổng cần tính là",s)

Cách 2: Không sử dụng hàm map

dayso = input("Mời nhập dãy các số: ")
A = list(dayso.split())
s = 0
for x in A: s = s + float(x)
print("Tổng cần tính là",s)

Câu 2: Chương trình tách họ và tên

s = input("Mời nhập họ và tên: ")
#Tách các chữ của họ và tên thành danh sách
sline = s.split()
m = len(sline) - 1
#Tên chính là phần tử cuối cùng
ten = sline[m]
#Phải xóa phần tử cuối cùng bằng pop để đúng vị trí m
sline.pop(m)
#Nối lại họ đệm
hodem = " ".join(sline)
print("Họ đệm:",hodem)
print("Tên:",ten)

Vận dụng

Câu 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ả là ƯCLN của hai số này.

Câu 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.

Hướng dẫn giải:

Câu 1: Chương trình như sau

m, n = map(int,input(“Mời nhập 2 số nguyên dương: “).split())
while m != n:
	if m>n: m -= n
	else: n -= m
print(“Ước chung lớn nhất là:”,m)

Câu 2: Chương trình như sau

n = int(input("Mời nhập số học sinh: "))
A = []
#Nhập danh sách họ tên học sinh trong lớp
for i in range(n):
    hoten = input("Mời nhập họ tên học sinh thứ " + str(i+1) + ": ")
    A.append(hoten)
ten = input("Mời nhập tên tìm kiếm: ")
#Đếm xem có học sinh cùng tên vừa nhập tìm kiếm
dem = 0
for ht in A:
    htline = ht.split()
    if htline[len(htline)-1] == ten:
        dem = dem + 1
print("Có",dem,"học sinh cùng tên",ten,"trong lớp")

Xem thêm Bài 26. Hàm trong Python

admin

Trả lời

Email của bạn sẽ không được hiển thị công khai.