BÀI 24: XÂU KÝ TỰ TRONG PYTHON
1. Yêu cầu cần đạt
- Hiểu được xâu kí tự là kiểu dữ liệu cơ bản của Python.
- Biết và thực hiện được lệnh
for
để xử lý xâu kí tự.
2. Nội dung bài học
2.1. Xâu là một dãy ký tự
Ví dụ 1: Xâu ký tự và cách truy cập từng ký tự
s = "Python"
print(s[0]) # P
print(s[1]) # y
- Một xâu ký tự là một dãy các ký tự Unicode.
- Có thể truy cập từng ký tự của xâu bằng chỉ số (bắt đầu từ 0).
Ví dụ 2: Sự khác biệt giữa xâu và danh sách
s = "Python"
s[0] = "J" # Báo lỗi vì xâu là kiểu dữ liệu bất biến (immutable)
- Python không cho phép thay đổi từng ký tự của xâu, khác với danh sách.
- Không có kiểu dữ liệu ký tự riêng biệt, ký tự chính là một xâu có độ dài 1.
- Xâu rỗng được định nghĩa bằng
empty = ""
.
Ghi nhớ:
- Xâu có thể coi là danh sách các ký tự nhưng không thể thay đổi trực tiếp.
- Truy cập từng ký tự bằng chỉ số từ
0
đếnlen(s) - 1
.
2.2. Lệnh duyệt ký tự của xâu
Cách 1: Duyệt theo chỉ số
s = "Hello"
for i in range(len(s)):
print(s[i], end=" ")
# Kết quả: H e l l o
Cách 2: Duyệt trực tiếp từng ký tự
s = "Hello"
for ch in s:
print(ch, end=" ")
# Kết quả: H e l l o
Toán tử in
với xâu
print("a" in "abcd") # True
print("abc" in "abcd") # True
in
có thể dùng để kiểm tra xem một xâu con có tồn tại trong xâu cha hay không.s1 in s2
trả vềTrue
nếus1
là xâu con củas2
.
3. Củng cố - Vận dụng
Câu hỏi thực hành
Câu 1: Kết quả của biến skq
sau khi thực hiện đoạn mã sau là gì?
s = "81723"
skq = ""
for ch in s:
if int(ch) % 2 != 0:
skq = skq + ch
print(skq) # Kết quả: "173"
Câu 2: Xác định kết quả của các biểu thức logic
s1 = "abc"
s2 = "ababcabca"
print(s1 in s2) # True
print(s1 + s1 in s2) # True
print("abcabca" in s2) # True
print("abc123" in s2) # False
4. Thực hành
Nhiệm vụ 1: Nhập danh sách họ và tên học sinh
n = int(input("Nhập số học sinh: "))
danh_sach = []
for _ in range(n):
ten = input("Nhập họ và tên: ")
danh_sach.append(ten)
print("Danh sách học sinh:")
for ten in danh_sach:
print(ten)
Nhiệm vụ 2: Kiểm tra xâu con "10" trong xâu S
Cách 1: Duyệt ký tự theo chỉ số
S = input("Nhập xâu: ")
found = False
for i in range(len(S) - 1):
if S[i] == "1" and S[i + 1] == "0":
found = True
break
print("Có chứa '10'" if found else "Không chứa '10'")
Cách 2: Sử dụng toán tử in
S = input("Nhập xâu: ")
if "10" in S:
print("Có chứa '10'")
else:
print("Không chứa '10'")
5 - TRẮC NGHIỆM
Chủ đề:
Tin Học 10