Bài 12: kiểu xâu python

 

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:
= 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], , >=, 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

 

 

 

 

Tin học 11 Bài 12: Kiểu xâu

Để học tốt Tin học lớp 11, nội dung bài học là trả lời câu hỏi, giải bài tập Tin học 11 Bài 12: Kiểu xâu hay nhất, ngắn gọn. Bên cạnh đó là tóm tắt lý thuyết ngắn gọn và bộ câu hỏi trắc nghiệm Tin 11 Bài 12 có đáp án.

Xâu: Là một dãy kí tự trong bảng mã ASCII. 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 .

Quảng cáo

   - Xâu có độ dài bằng 0 gọi là xâu rỗng.

   - Tham chiếu tới phần tử trong xâu được xác định thông qua chỉ số của phần tử trong xâu.

1. Khai báo

Để khai báo dữ liệu kiểu xâu ta sử dụng tên dành riêng string, tiếp theo là dộ dài lớn nhất của xâu[không vượt quá 255 kí tự đặt trong dấu ngoặc [ và ] ]

Cú pháp:

Quảng cáo

	Var:string[độ dài lớn nhất của xâu];
	Hoặc
	Var :string;

Ví dụ:

	Var ten:string[26];
	Var chuthich:string;

2. Các thao tác xử lí xâu:

a] Phép ghép xâu, kí hiệu là dấu [+], được sử dụng để ghép nhiều xâu thành một. Có thể thực hiện ghép xâu đối với hằng và biến xâu.

Ví dụ:

Quảng cáo

'Tin hoc'+ '11' sẽ cho xâu có kết quả là 'Tin hoc 11'.

b] Các phép so sánh như bằng [=], khác [], nhỏ hơn [length[b] then write[a] else write[b]; readkey; end.

Kết quả:

Ví dụ 2: Viết chương trình nhập hai xâu từ bàn phím và kiểm tra kí tự đầu tiên của xâu thứ nhất có trùng

Với kí tự cuối cùng của xâu thứ hai không.

program vd2;
uses crt;
var
	a,b:string;
begin
	clrscr;
	write['nhap xau thu nhat:'];
	readln[a];
	write['nhap xau thu hai :'];
	readln[b];
	if a[1]=b[length[b]]
	then writeln['Trung nhau']
	else
	writeln['Khac nhau'];
	readkey;
end.

Kết quả:

Ví dụ 3:

Viết chương trình nhập xâu từ bàn phím rồi in nó theo thứ tự ngược lại.

program vd2;
uses crt;
var
	a:string;
	i:integer;
begin
	clrscr;
	write['nhap xau:'];
	readln[a];
	write['xau dao nguoc la:'];
	for i:=length[a] downto 1 do
	write[a[i]];
	readkey;
end.

Ví dụ 4:

Viết chương trình nhập vào từ bàn phím và đưa ra màn hình xâu thu được từ nó sau khi loại bỏ hết các dấu cách.

program vd2;
uses crt;
var
	a,b:string;
	i:integer;
begin
	clrscr;
	write['nhap xau:'];
	readln[a];
	b:='';
	for i:=1 to length[a] do
	if a[i]' '
	then
	b:=b+a[i];
	write['xau sau khi bo dau cach la',b];
	readkey;
end.

Kết quả:

Ví dụ 5:

Viết chương trình nhập vào từ bàn phím xâu kí tự s1, tạo xâu s2 gồm tất cả các chữ số có trong xâu s1 [giữ nguyên thứ tự xuất hiện của chúng ] và đưa kết quả ra màn hình.

program vd2;
uses crt;
var
	a,b:string;
	i:integer;
begin
	clrscr;
	write['nhap xau:'];
	readln[a];
	b:='';
	for i:=1 to length[a] do
	if ['0'=a[i]]
	then
	b:=b+a[i];
	write[b];
	readkey;
end.

 

Bài Viết Liên Quan

Chủ Đề