Tin học 10 – Bài 24. Xâu kí tự

1. Xâu là một dãy các kí tự

Khái niệm: Xâu kí tự (gọi tắt là xâu) là một dãy các kí tự.

Cách tạo xâu:

Python
s = "Thời khoá biểu"
xau = 'Hoa học trò'
Cau_tho = """ Mình về mình có nhớ ta
Mười lăm năm ấy thiết tha mặn nồng"""

Cấu trúc xâu: Tương tự như danh sách, có thể truy cập từng kí tự của xâu thông qua chỉ số (index), bắt đầu từ 0.

Python
s = "Thời khoá biểu"
print(len(s)) # Output: 14
print(s[0]) # Output: T
print(s[10]) # Output: b

Sự khác biệt giữa xâu và danh sách: Không thể thay đổi kí tự của xâu sau khi đã tạo.

Python
d = ["a","b","c"]
d[0] = "A" # Hợp lệ

s = "abc"
# s[0] = "A" # Lỗi

Lưu ý:

  • Python không có kiểu dữ liệu kí tự riêng. Một kí tự đơn giản là xâu có độ dài bằng 1.
  • Xâu rỗng: xau_rong = ""
  • Xâu kí tự trong Python là dãy các kí tự Unicode.

2. Lệnh duyệt kí tự của xâu

a. Hai cách duyệt xâu

Duyệt theo chỉ số (sử dụng range()):

Python
s = "Thời khoá biểu"
for i in range(len(s)):
    print(s[i], end=" ") # Output: T h ờ i   k h o á   b i ể u

Duyệt theo kí tự:

Python
s = "Thời khoá biểu"
for ch in s:
    print(ch, end=" ") # Output: T h ờ i   k h o á   b i ể u

Toán tử in: Kiểm tra một xâu có phải là xâu con của xâu khác không.

Python
print("a" in "abcd") # Output: True
print("abc" in "abcd") # Output: True

b. Câu hỏi và bài tập củng cố

Câu 1. Sau khi thực hiện các lệnh sau, biến skq sẽ có giá trị bao nhiêu?

Python
s = "81723"
skq = ""
for ch in s:
    if int(ch) % 2 != 0:
        skq = skq + ch
print(skq) # Output: 173

Câu 2. Cho s1 = "abc"s2 = "ababcabca".
Các biểu thức logic sau cho kết quả là đúng hay sai?

a) s1 in s2 (Đúng)

b) s1 + s1 in s2 (Đúng)

c) "abcabca" in s2 (Đúng)

d) "abc123" in s2 (Sai)

Thực hành

Nhiệm vụ 1

Viết chương trình nhập số tự nhiên n là số học sinh, sau đó nhập họ và tên học sinh. Lưu họ và tên học sinh vào một danh sách. In danh sách ra màn hình, mỗi họ tên trên một dòng.

Python
n = int(input("Nhập số học sinh trong lớp: "))
ds_lop = []
for i in range(n):
    hoten = input("Nhập họ tên học sinh thứ " + str(i+1)+": ")
    ds_lop.append(hoten)
print("Danh sách lớp học:")
for i in range(n):
    print(ds_lop[i])

Nhiệm vụ 2

Nhập một xâu kí tự S từ bàn phím rồi kiểm tra xem xâu S có chứa xâu con “10” không.

Duyệt kí tự của xâu theo chỉ số:

Python
S = input("Nhập xâu kí tự bất kì: ")
kq = False
for i in range(len(S)-1):
    if S[i] == "1" and S[i+1] == "0":
        kq = True
        break
if kq:
    print("Xâu gốc có chứa xâu '10'")
else:
    print("Xâu gốc không chứa xâu '10'")

Luyện tập

1. Cho xâu S, viết đoạn lệnh trích ra xâu con của S bao gồm ba kí tự đầu tiên của S.

Python
S = input("Nhập xâu S: ")
S1 = S[0] + S[1] + S[2]
print(S1)

2. Viết chương trình kiểm tra xâu S có chứa chữ số không. Thông báo “S có chứa chữ số” hoặc “S không chứa chữ số nào”.

Python
s = input("Nhập xâu S: ")
kq = False
for ch in s:
    if ch in "0123456789":
        kq = True
        break
if kq:
    print("S có chứa chữ số.")
else:
    print("S không chứa chữ số nào.")

Vận dụng

1. Cho hai xâu s1, s2. Viết đoạn chương trình chèn xâu s1 vào giữa s2, tại vị trí len(s2) // 2. In kết quả ra màn hình.

Python
s1 = input("Nhập xâu thứ nhất: ")
s2 = input("Nhập xâu thứ hai: ")
d = len(s2) // 2
s = ""
for i in range(d):
    s = s + s2[i]
s = s + s1
for i in range(d, len(s2)):
    s = s + s2[i]
print(s)

2. Viết chương trình nhập số học sinh và họ tên học sinh. Sau đó đếm xem trong danh sách có bao nhiêu bạn tên là “Hương”

Python
n = int(input("Nhập số học sinh: "))
A = []
for k in range(n):
    s = input("Nhập tên học sinh thứ " + str(k+1) + " :")
    A.append(s)
ten = input("Nhập tên học sinh cần tìm: ")
count = 0
for s in A:
    if ten in s:
        count = count + 1
if count == 0:
    print("Lớp không có bạn", ten)
else:
    print("Lớp có", count, "bạn tên", ten)

Câu hỏi trắc nghiệm Tin học 10 Bài 24: Xâu ký tự

Thời gian làm bài: 30 phút
Đáp án chỉ hiển thị sau khi hoàn thành bài làm
Câu hỏi sẽ được hiển thị ngẫu nhiên
Vui lòng nhập họ và tên để bắt đầu làm bài

NB

Hàm nào sau đây được sử dụng để xác định độ dài của một xâu ký tự trong Python?

NB

Xâu ký tự trong Python được đặt trong dấu nào?

”TH”

”Cho

trả về ký tự nào?” a=”H” b=”e” c=”l” d=”o” correct=”b”]

TH

Điều gì xảy ra khi bạn cố gắng truy cập một ký tự ngoài phạm vi chỉ số của một xâu?

”VD”

”Cho

” b=”s[::2]” c=”s[1:5]” d=”s[4::-1]” correct=”a”]

NB

Trong Python, xâu ký tự thuộc kiểu dữ liệu nào?

TH

Phương thức nào sau đây được sử dụng để chuyển đổi một xâu thành chữ hoa?

TH

Cho xâu s =

VD

VD

NB

Toán tử nào sau đây được sử dụng để nối hai xâu ký tự trong Python?

TH

”VD”

”Cho

= "J"
print(s)
Kết quả là gì?” a=”Jello” b=”Hello” c=”Lỗi vì xâu không thể thay đổi” d=”None” correct=”c”]

NB

Phát biểu nào sau đây là đúng về xâu ký tự trong Python?

TH

Phương thức nào sau đây được sử dụng để thay thế một phần của xâu bằng một xâu khác?

”VD”

”Cho

” b=”s[5:10]” c=”s[6:11]” d=”s[-5:]” correct=”c”]

NB

Xâu rỗng được biểu diễn như thế nào trong Python?

”TH”

”Cho

trả về ký tự nào?” a=”P” b=”n” c=”o” d=”t” correct=”n”]

VD

VD

Một học sinh viết chương trình để kiểm tra xem một xâu có phải là palindrome (đọc xuôi ngược như nhau) hay không.

NB

TH Phương thức s.reverse() có thể được sử dụng để đảo ngược một xâu.

VD

VD So sánh hai xâu bằng toán tử == sẽ kiểm tra xem chúng có cùng địa chỉ bộ nhớ hay không.

Một hệ thống yêu cầu người dùng nhập mật khẩu và kiểm tra tính hợp lệ của mật khẩu.

NB Độ dài của mật khẩu có thể được kiểm tra bằng hàm len().

TH Phương thức s.islower() kiểm tra xem xâu có chứa ít nhất một ký tự viết thường hay không.

TH Để đảm bảo tính bảo mật, mật khẩu nên được lưu trữ dưới dạng văn bản thuần túy.

VD Hàm s.find() có thể được sử dụng để kiểm tra xem mật khẩu có chứa ký tự đặc biệt hay không.

Một chương trình xử lý văn bản cần đếm số lượng từ trong một đoạn văn bản.

NB Phương thức s.count() có thể được sử dụng để đếm số lượng từ trong một xâu.

TH Phương thức s.split() có thể được sử dụng để tách một xâu thành một danh sách các từ.

TH Khoảng trắng ở đầu và cuối xâu có thể ảnh hưởng đến kết quả đếm từ.

VD Nếu một xâu chỉ chứa khoảng trắng, s.split() sẽ trả về một xâu rỗng.

Một ứng dụng yêu cầu người dùng nhập tên và định dạng tên theo chuẩn.

NB Phương thức s.capitalize() chuyển ký tự đầu tiên của xâu thành chữ hoa.

TH Phương thức s.title() chuyển chữ cái đầu của mỗi từ thành chữ hoa.

VD

VD Các phương thức định dạng xâu không thể xử lý tên có dấu tiếng Việt.

Bảng xếp hạng

Chưa có kết quả nào.

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *