Tin học lớp 10 Bài 24: Xâu kí tự
A. Lý thuyết Tin học 10 Bài 24: Xâu kí tự
1. Xâu là một dãy các kí tự
– Xâu kí tự trong Python là dãy các kí tự Unicode.
– Xâu có thể được coi là danh sách các kí tự nhưng không thay đổi từng kí tự của xâu.
– Truy cập từng kí tự của xâu qua chỉ số, chỉ số từ 0 đến độ dài len() -1
– Ví dụ 1: Xâu kí tự và cách truy cập đến từng kí tự của xâu
– Ví dụ 2:
– Python không cho phép thay đổi từng kí tự của một xâu (khác với danh sách).
– Python không có kiểu dữ kiệu kí tự.
– Xâu rỗng được định nghĩa: empty = ” “
2. Lệnh duyệt kí tự của xâu
– Có thể duyệt các kí tự của xâu bằng lệnh for tương tự như với danh sách. S1 in S2 trả lại giá trị True nếu S1 là xâu con của S2. Có 2 cách duyệt:
+ Cách thứ nhất, biến i lần lượt chạy theo chỉ số của xâu kí tự, từ 0 đến len(s) – 1. Kí tự tại chỉ số là s[i].
+ Cách thứ hai duyệt theo từng kí tự của xâu s. Biến ch sẽ được gán lần lượt các kí tự của xâu s từ đầu đến cuối.
– Chú ý: Từ khóa in, tùy trường hợp cụ thể, hoặc là toán tử lôgic dùng để kiểm tra giá trị có mặt hay không trong một vùng giá trị/danh sách/xâu, hoặc để chọn lần lượt từng phần tử trong một vùng giá trị/danh sách/xâu.
Thực hành: Các lệnh cơ bản làm việc với xâu kí tự
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ọc 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.
Hướng dẫn
Chương trình có thể như sau:
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.
Hướng dẫn
– Cách 1: Nếu xâu S chứa xâu con “10” thì sẽ có chỉ số k mà S[k] = “1” và S[k+1]=“0”
– Cách 2: Dùng toán tử in để kiểm tra xâu “10” có là xâu con của S.
B. Bài tập trắc nghiệm Tin học 10 Bài 24: Xâu kí tự
Câu 1. Biểu thức sau cho kết quả đúng hay sai?
S1 = “12345”
S2 = “3e4r45”
S3 = “45”
S3 in S1
S3 in S2
A. True, False.
B. True, True.
C. False, False.
D. False, True.
Hướng dẫn giải
Đáp án đúng là: B
Cả hai chuỗi S1, S2 đều chứa S3 nên hai biểu thức đúng.
Câu 2. Kết quả của chương trình sau nếu s = “python1221” là gì?
s = input(“Nhập xâu kí tự bất kì:”)
kq = False
for i in range(len(s)-1):
if s[i] == “2” and s[i+1] == “1”:
kq = True
break
print(kq)
A. True.
B. False.
C. Chương trình bị lỗi.
D. Vòng lặp vô hạn.
Hướng dẫn giải
Đáp án đúng là: A
Chuỗi s chứa “21” nên kq = True.
Câu 3. Chương trình sau cho kết quả là bao nhiêu?
name = “Codelearn”
print(name[0])
A. “C”.
B. “o”.
C. “c”.
D. Câu lệnh bị lỗi.
Hướng dẫn giải
Đáp án đúng là: A
Kí tự có chỉ số 0 đứng ở vị trí đầu tiên trong xâu name.
Câu 4. Kết quả của chương trình sau là bao nhiêu?
>>> s = “0123145”
>>> s[0] = ‘8’
>>> print(s[0])
A. ‘8’.
B. ‘0’.
C. ‘1’.
D. Chương trình bị lỗi.
Hướng dẫn giải
Đáp án đúng là: D
Khác với danh sách, không thể thay đổi từng kí tự của xâu.
Câu 5. Trong Python, xâu nào chương trình sẽ báo lỗi.
A. ‘This is a string in Python’
message = “This is also a string”.
B. ‘”Beautiful is better than ugly.”. Said Tim Peters’
C. Không có xâu bị lỗi.
D. ‘It\’s also a valid string’
Hướng dẫn giải
Đáp án đúng là: C
Cả ba xâu đều đúng, có thể sử dụng “” trong ‘’ hoặc sử dụng kí hiệu “\” trong xâu.
Câu 6. Trong Python, câu lệnh nào dùng để tính độ dài của xâu s?
A. len(s).
B. length(s).
C. s.len().
D. s. length().
Hướng dẫn giải
Đáp án đúng là: A
Lệnh len() tính độ dài của xâu kí tự với cấu trúc len(list).
Câu 7. Có bao nhiêu xâu kí tự nào hợp lệ?
1) “123_@##”
2) “hoa hau”
3) “346h7g84jd”
4) python
5) “01028475”
6) 123456
A. 5.
B. 6.
C. 4.
D. 3
Hướng dẫn giải
Đáp án đúng là: C
Các xâu hợp lệ: 1, 2, 3, 5
Xâu kí tự trong Python là dãy các kí tự Unicode và được đặt trong cặp dấu nháy đơn hoặc nháy kép.
Câu 8. Xâu “1234%^^%TFRESDRG” có độ dài bằng bao nhiêu?
A. 16.
B. 17.
C. 18.
D. 15.
Hướng dẫn giải
Đáp án đúng là: A
Đếm số kí tự trong cặp dấu nháy kép.
Câu 9. Phát biểu nào sau đây là sai?
A. Có thể truy cập từng kí tự của xâu thông qua chỉ số.
B. Chỉ số bắt đầu từ 0.
C. Có thể thay đổi từng kí tự của một xâu.
D. Python không có kiểu dữ liệu kí tự.
Hướng dẫn giải
Đáp án đúng là: C
Khác với danh sách, không thể thay đổi từng kí tự trong xâu.
Câu 10. Sau khi thực hiện lệnh sau, biến s sẽ có kết quả là:
s1 =”3986443″
s2 = “”
for ch in s1:
if int(ch) % 2 == 0:
s2 = s2 + ch
print(s2)
A. 3986443.
B. 8644.
C. 39864.
D. 443.
Hướng dẫn giải
Đáp án đúng là:B
Chương trình hiển thị chuỗi gồm các chữ số chẵn trong s1.
Câu 11. Kết quả của chương trình sau là bao nhiêu?
>>> s = “abcdefg”
>>> print(s[2])
A. ‘c’.
B. ‘b’.
C. ‘a’.
D. ‘d’
Hướng dẫn giải
Đáp án đúng là: A
Kí tự có chỉ số 2 nằm ở vị trí thứ 3 trong chuỗi là ‘c’.
Câu 12. Chương trình trên giải quyết bài toán gì?
s = “”
for i in range(10):
s = s + str(i)
print(s)
A. In một chuỗi kí tự từ 0 tới 10.
B. In một chuỗi kí tự từ 0 tới 9.
C. In một chuỗi kí tự từ 1 tới 10.
D. In một chuỗi kí tự từ 1 đến 9.
Hướng dẫn giải
Đáp án đúng là: B
Biến i chạy từ 0 đến 9 trong range(10).
Câu 13. Cho s = “123456abcdefg”, s1 = “124”, s2 = “235”, s3 = “ab”, s4 = “56” + s3
Có bao nhiêu biểu thức lôgic sau đúng?
1) s1 in s.
2) s2 in s.
3) s3 in s.
4) s4 in s.
A. 1.
B. 2.
C. 3.
D. 4.
Hướng dẫn giải
Đáp án đúng là: B
Biểu thức đúng là: 3, 4.
Câu 14. Chương trình sau giải quyết bài toán gì?
n = input(“Nhập n”)
s = “”
for i in range(n):
if i % 2 == 0:
s. append(i)
print(s)
A. In ra một chuỗi các số từ 0 tới n.
B. Chương trình bị lỗi.
C. In ra một chuỗi các số lẻ từ 0 đến n.
D. In ra một chuỗi các số chẵn từ 0 đến n – 1.
Hướng dẫn giải
Đáp án đúng là: B
Do i có kiểu số nguyên nên không thể thêm vào chuỗi s được.
Câu 15. Chuỗi sau được in ra mấy lần?
s = “abcdefghi”
for i in range(10):
if i % 4 == 0:
print(s)
A. 0.
B. 1.
C. 2.
D. 3.
Hướng dẫn giải
Đáp án đúng là: D
In ra 3 lần chuỗi s tương ứng với biến i bằng 0, 4, 8.
Xem thêm các bài tóm tắt lý thuyết Tin học lớp 10 Kết nối tri thức hay, chi tiết khác:
Lý thuyết Tin học 10 Bài 23: Một số lệnh làm việc với dữ liệu danh sách
Lý thuyết Tin học 10 Bài 24: Xâu kí tự
Lý thuyết Tin học 10 Bài 25: Một số lệnh làm việc với xâu kí tự
Lý thuyết Tin học 10 Bài 26: Hàm trong Python
Lý thuyết Tin học 10 Bài 27: Tham số của hàm