Tải bản đầy đủ (.pptx) (21 trang)

Giáo án powerpoint python 11_Bài 12: kiểu xâu

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (985.03 KB, 21 trang )

DỮ LIỆU KIỂU XÂU
(2 tiết)


I. Dữ liệu kiểu xâu
Xét bài tốn dịch từ ngơn ngữ tiếng Anh sang ngôn ngữ tiếng Việt
Input: ?
Output: ?


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ấ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


2) Cách tạo một biến kiểu xâu
Cách 1: Dùng lệnh gán:
Ví dụ: E = “I am a robot”
Cách 2:
<Tên biến> = input()
Ví dụ:
s = input(“Nhập vào 1 xâu từ bàn phím)



II. Các thao tác xử lý xâu

1)
a)
b)

Các phép toán
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
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:




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)






Ví dụ: “Tin học” < “Tốn học”
Xâu A và B có độ dài khác nhau và B là phần đầu của A thì A lớn hơn B
Ví dụ “Tin học” > “Tin”
Hai xâu bằng nhau nếu chúng giống hoàn toàn



d)

Phép tố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


2. Đánh chỉ số và các thao tác với chỉ số trong xâu

a)
b)

Đánh chỉ số các kí tự trong xâu: bắt đầu từ 0 đến độ dài xâu - 1
Tham chiếu tới phần tử xâu:
tên_xâu[chỉ số]

c)

Sao chép xâu:
tên_xâu[vị trí bắt đầu:vị trí dừng]

Tạo một xâu mới là đoạn con của xâu gốc từ vị trí bắt đầu đến vị trí dừng - 1



Ví dụ

H

o

à

n

g

0

1

2

3

4

S = “Hồng Thanh Tâm”
S[1] = “o”
s = S[6:11] = “Thanh”

5

T


h

a

n

h

6

7

8

9

10

11

T

â

m

12

13


14


3. Một số hàm, thủ tục trên xâu

a)
b)

Hàm len(): trả về độ dài xâu
Hàm str(): chuyển đổi dữ liệu ở dạng số sang dạng xâu

Ví dụ:
str(21) => “21”; str(34.21) => “34.21”

c)

Hàm int(), float(): tương ứng chuyển đổi dữ liệu ở dạng xâu sang dạng số nguyên hay số
thực

Ví dụ:
int(12) =>12; int(12.56) => 12
float(12.56) => 12.56; float(12) => 12.0


d) Hàm lower(): chuyển xâu thành in thường
Ví dụ:
S=“ABC”
Print(S.lower()) # “abc”
e) Hàm upper(): chuyển xâu thành in hoa
S=“abc”

Print(S.upper()) # “ABC”
f) Hàm split(): tách xâu thành các xâu con cách nhau bởi dấu cách
S=“lop6a lop6b”
Print(S.split()) # hai xâu con nhận được là “lop6a” và “lop6b”


BÀI TẬP
Bài 1: Chương trình dưới đây đưa ra màn hình nội dung gì?


Bài 2
Cho biết chương trình sau thực hiện cơng việc gì?


Bà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ụ:



Bài 4
Tên tệp thường gồm hai phần: phần tên và phần mở rộng, ngăn cách nhau bởi dấu chấm (.). Các
file mã nguồn của Python có phần mở rộng là “py”. Em hãy viết chương trình nhập vào một xâu
là một tên tệp và kiểm tra xem tên tệp đó có phải là tên tệp của file mã nguồn của Python khơng?
Nếu có ghi ra “YES”, ngược lại ghi ra “NO”
Ví 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


Input


Output

checkName.py

YES

Hello.py

YES

introPython.doc

NO

studentList.xls

NO



Bà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?


Cá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


Cá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à:
• Vậy có chương trình như sau

(75//70)*300+(75%70)*300/70



×