Dữ liệu kiểu xâuXét bài toán dịch từ ngôn ngữ tiếng Anh sang ngôn ngữ tiếng ViệtInput:?. 1 Khái niệm- Xâu là dãy các kí tự trong bảng mã Unicode và được đặt trong cặp dấu nháy đơn hoặc d
Trang 1DỮ LIỆU KIỂU XÂU
(2 tiết)
Trang 2I Dữ liệu kiểu xâu
Xét bài toán dịch từ ngôn ngữ tiếng Anh sang ngôn ngữ tiếng ViệtInput: ?
Output: ?
Trang 31) Khái niệm
- Xâu là dãy các kí tự trong bảng mã Unicode và được đặt trong cặp dấu nháy đơn hoặc dấu nháy kép
- Mỗi kí tự được gọi là một phần tử của xâu
- Số lượng kí tự trong xâu được gọi là độ dài của xâu
- Xâu có độ dài bằng 0 là xâu rỗng
b) Ví dụ:
- Xâu “I am a robot” có độ dài 12
- Xâu “Tôi là người máy” có độ dài 16
Trang 42) Cách tạo một biến kiểu xâu
Trang 5II Các thao tác xử lý xâu
1) Các phép toán
a) Phép ghép xâu: kí hiệu là dấu (+) dùng để ghép nhiều xâu thành 1 xâu
b) Phép nhân xâu (*) tạo ra một xâu lặp đi lặp lại xâu gốc với số lần nhân
Ví dụ: “Tâm tin” * 3 => “Tâm tinTâm tinTâm tin”
c) Phép so sánh: ==, != (khác), <, >, >=,<= được thực hiện theo quy tắc:
Trang 6• Xâu A > xâu B nếu kí tự đầu tiên khác nhau giữa chúng kể từ trái sang phải trong xâu A có
mã lớn hơn (trong bảng mã Unicode 16 bit)
Trang 7d) Phép toán in: cho biết xâu thứ nhất có xuất hiện trong xâu thứ 2 hay không? Có là True,
ngược lại là False
Ví dụ:
“học” in “Tin học” =>True
“họcTin” in “Tin học” * 3 =>True
“TIN” in “Tin học” =>False
Trang 82 Đánh chỉ số và các thao tác với chỉ số trong xâu
a) Đánh chỉ số các kí tự trong xâu: bắt đầu từ 0 đến độ dài xâu - 1
b) Tham chiếu tới phần tử xâu:
Trang 103 Một số hàm, thủ tục trên xâu
a) Hàm len(): trả về độ dài xâu
b) Hàm str(): chuyển đổi dữ liệu ở dạng số sang dạng xâu
Trang 11d) Hàm lower(): chuyển xâu thành in thường
Trang 12BÀI TẬP
Bài 1: Chương trình dưới đây đưa ra màn hình nội dung gì?
Trang 13Bài 2
Cho biết chương trình sau thực hiện công việc gì?
Trang 14Bài 3
Viết chương trình nhập một xâu và viết xâu đó theo chiều dọc
Ví dụ:
Trang 16Ví dụ: “checkName.py”, “Hello.py” là tên tệp của file mã nguồn của Python, “introPython.doc”,
“studentList.xls” thì không phải
Trang 19Bài 5
Một nhà mạng quy định độ dài của một tin nhắn cơ sở là 70 kí tự (bảng mã Unicode 16 bit) và có giá cước là 300 VND Em hãy viết một chương trình nhập vào một xâu là một tin nhắn gồm các kí tự thuộc bảng mã Unicode 16 bit mà em muốn gửi bạn và cho biết tin nhắn đó khi gửi đi sẽ mất phí là bao nhiêu?
Trang 20Cách 1: Cách hiểu như sau
• Nếu 1 tin nhắn có độ dài tối đa 70 hết 300 VND
• Nếu tin nhắn dài 75 kí tự ta có 2 tin hết 600 VND
• Vậy có chương trình như sau
Trang 21Cách 2: Cách hiểu như sau
• Nếu 1 tin nhắn có độ dài tối đa 70 hết 300 VND
• Nếu tin nhắn dài 75 kí tự ta có 2 tin hết số tiền là:
(75//70)*300+(75%70)*300/70
• Vậy có chương trình như sau