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 đến len(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ếu s1 là xâu con của s2.
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