KHOA CÔNG NGHỆ THÔNG TIN
LỚP : ĐHTin3ANĐ
BỘ MÔN PHÁT TRIỂM MÃ NGUỒN MỞ
Giảng viên : Phạm Minh Thái
Đề tài : Trình bày dữ liệu kiểu chuỗi lấy ví dụ minh họa
Nhóm 6 : ĐHtin3ANĐ Page 1
BỘ CÔNG THƯƠNG
TRƯỜNG ĐẠI HỌC
KINH TẾ KỸ THUẬT CÔNG NGHIỆP
UNIVERSITY OF ECONOMIC TECHNICAL INDUSTRIES
2
Nhóm 6 :
1. Nguyễn Thị Anh
2. Hoàng Thị Đượn
3. Lê Việt Hòa
4. Phạm Thị Minh Thoan
5. Nguyễn Thị Ánh Tuyết
Danh sách phân công công việc nhóm 6 :
Hòa : Khái niệm và cách khai báo chuỗi
Đượm : Phép truy cập vào các phần tử của chuỗi
Anh : Phép cộng chuỗi và so sánh chuỗi
Thoan : Các hàm trong chuỗi
Tuyết : Toán tử in , lát cắt ,tổng hợp bài làm slide .
Nhóm 6 Lớp ĐHTink3
2
Mục lục
1. Khái niệm chuỗi
2. Các cách khai báo chuỗi
3. Các thao tác trên chuỗi
3.1. Phép truy nhập vào phần tử của chuỗi
3.2. Phép cộng chuỗi
3.3. Phép so sánh chuỗi
4. Các hàm và thủ tục trên chuỗi
4.1. Hàm len
4.2. Hàm count
4.3. Hàm replace
4.4. Hàm split
4.5. Hàm upper
4.6. Hàm find
4.7. Toán tử in
5. Lát cắt
5.1. Lát cắt trong chuỗi
5.2. Chuỗi không thể bị thay đổi
Nhóm 6 Lớp ĐHTink3
2
1 Khái niện chuỗi
Ngoài số, Python còn làm việc được với chuỗi .
Chuỗi là một danh sách có thứ tự hợp thành từ những kí tự riêng rẽ
2 Khai báo chuỗi
Chuỗi có thể được đặt trong dấu nháy đơn, đôi:
>>> 'Nhóm 6 Lớp Tin k3'
'Nhóm 6 Lớp Tin k3'
>>> "Nhóm 6 Lớp Tin k3"
'Nhóm 6 Lớp Tin k3'
Để sử dụng dấu nháy kép trong chuỗi ta khai báo như sau
>>> '"Nhóm 6 " Lớp Tin k3'
'"Nhóm 6 " Lớp Tin k3'
>>> "\"xin chào ,\" nhóm 6 tin k3"
'"xin chào ," nhóm 6 tin k3'
Các chuỗi có thể phủ nhiều dòng theo nhiều cách. Các dòng tiếp tục có
thể được dùng, với một dấu suỵt huyền là ký tự cuối cùng trên một dòng cho
biết rằng dòng kế là sự nối tiếp của dòng này:
>>>nhom6="Nguyễn Thị Ánh Tuyết \n\
Nguyễn Thị Anh \n\
Lê Việt Hòa\n\
Hoàng Thị Đượm\n\
Phạm Thị Minh Thoan."
>>> print(nhom6)
Ví dụ này sẽ in ra:
Nguyễn Thị Ánh Tuyết
Nguyễn Thị Anh
Lê Việt Hòa
Hoàng Thị Đượm
Phạm Thị Minh Thoan.
Nhóm 6 Lớp ĐHTink3
2
Hoặc, các chuỗi có thể được vây quanh trong một cặp nháy ba: """ hoặc '''. Cuỗi
mỗi dòng không cần thêm dấu suỵt huyền khi dùng nháy ba, và chúng sẽ có mặt
trong chuỗi.
>>> nhom6="""Nguyễn Thị Ánh Tuyết
Nguyễn Thị Anh
Lê Việt Hòa
Hoàng Thị Đượm
Phạm Thị Minh Thoan."""
Kết quả in ra là
>>> print(nhom6)
Nguyễn Thị Ánh Tuyết
Nguyễn Thị Anh
Lê Việt Hòa
Hoàng Thị Đượm
Phạm Thị Minh Thoan.
Trình thông dịch in ra kết quả của các tác vụ chuỗi theo cùng cách như khi
chúng được nhập vào: trong dấu nháy, và với các ký tự dấu nháy hay đặc biệt
khác được thoát nghĩa (escape) bằng dấu suỵt huyền, để hiện giá trị thực. Chuỗi
được kèm trong dấu nháy đôi nếu chuỗi chứa một dấu nháy đơn và không chứa
dấu nháy đôi, ngoài ra nó sẽ được chứa trong các dấu nháy đơn. (Câu
lệnh print , được giải thích sau, có thể dùng để viết các chuỗi không có dấu nháy
hoặc thoát nghĩa.)
Nhóm 6 Lớp ĐHTink3
2
3 Các thao tác trên string
3.1 Phép truy nhập vào các phần tử của chuỗi
Bạn có thể truy cập đến từng kí tự một bằng cách dùng toán tử là cặp
ngoặc vuông:
>>> chuoi = 'NguyenThiAnhTuyet'
>>> letter = chuoi[1]
Câu lệnh thứ hai nhằm chọn ra chữ cái có thứ tự 1 của chuoi và gán nó
cho letter.
Biểu thức nằm ở trong cặp ngoặc vuông được gọi là chỉ số. Chỉ số biểu thị
cho kí tự mà bạn đang cần trong chuỗi .
Nhưng đối với bạn kết quả thu được có thể không như mong đợi:
>>> print (letter)
g
Với hầu hết chúng ta thì chữ cái thứ nhất của ' NguyenThiAnhTuyet
' là N chứ không phải g. Nhưng với nhà khoa học máy tính, chỉ số là độ dời đi
so với vị trí đầu của chuỗi; và chữ cái đầu tiên thì có độ dời bằng 0.
>>> letter = chuoi[0]
>>> print letter
N
Như vậy N là chữ cái thứ 0 của ' NguyenThiAnhTuyet ', g là chữ cái thứ 1,
và u là chữ cái thứ 2.
3.2 Phép cộng chuỗi
Các chuỗi có thể được nối với nhau với toán tử + , và được lặp lại với *:
>>> word = 'Tin' + 'k3'
>>> word
'Tink3'
>>> '<' + word*5 + '>'
Kết quả
'<Tink3 Tink3 Tink3 Tink3 Tink3 >'
Hoặc
>>> chuoi = 'NguyenThiAnhTuyet'
>>> word = 'Tin k3'
Nhóm 6 Lớp ĐHTink3
2
>>> print(chuoi+word)
Kết quả
NguyenThiAnhTuyetTin k3
Hai chuỗi trực tiếp kế nhau được tự động nối với nhau
3.3 Phép so sánh chuỗi
Chuỗi có thể dùng các biểu thức quan hệ để so sánh
Khi so sánh 2 chuỗi các ký tự trong hai chuỗi được so sánh từng cặp một từ trái
qua phải theo giá trị của bảng mã ASCII
Nếu 2 chuỗi có số ký tự giống nhau nhưng độ dài khác nhau thì chuỗi nào có độ
dài nhỏ hơn thì được gọi là chuỗi bé hơn
Hai chuỗi được gọi là bằng nhau nếu chúng giống nhau hoàn toàn
>>> a="Tuyet"
>>> b="thoan"
>>> print(a==b)
False
>>> print(b<a)
False
>>> print(a<b)
True
4 . Một số hàm và thủ tục trên string
4.1. Hàm len
Cú pháp :
len(chuỗi)
Công dụng : len là một hàm có sẵn để trả lại số kí tự trong một chuỗi
Ví dụ
>>> chuoi = 'NguyenThiAnhTuyet'
>>> letter = len(chuoi)
>>>print(letter)
18
4.2 Hàm count
Nhóm 6 Lớp ĐHTink3
2
Cú pháp : chuỗi.count(‘ký tự cần đếm’)
Công dụng : đếm số lần xuất hiện của một ký tự trong chuỗi
Ví dụ :
>>> chuoi = 'NguyenThiAnhTuyet'
>>> print(chuoi.count('y'))
2
4.3 Hàm Replace
Cú pháp : chuỗi.replace('ký tự cần thay thế','ký tự được thay thế'))
Công dụng : Thay thế 1 ký tự bất kỳ trong chuỗi
>>> word = 'Tin k3'
>>> print(word.replace('k','K'))
Tin K3
4.4 Hàm split
Cú pháp chuỗi.split(‘ký tự để cắt’)
Cộng dụng : cắt chuỗi thành các chuỗi con nhỏ hơn để sử dụng
Ví dụ :
>>> chuoi= 'Nhóm 6 Lớp Tin k3'
>>> a=chuoi.split(' ')
>>> a
['Nhóm', '6', 'Lớp', 'Tin', 'k3']
>>> a[0]
'Nhóm'
>>> a[3]
'Tin'
>>> a[4]
'k3'
>>> print(a[0]+a[3]+a[4])
NhómTink3
4.5 Hàm upper
Cú pháp : chuỗi.upper()
Công dụng : phương thức upper nhận một chuỗi và trả lại một chuỗi mới trong
đó tất cả các chữ cái đều được viết in:
>>> chuoi= 'Nhóm 6 Lớp Tin k3'
>>> chuoi_moi=chuoi.upper()
>>> print(chuoi_moi)
NHÓM 6 LỚP TIN K3
Nhóm 6 Lớp ĐHTink3
2
Dạng này của kí hiệu dấu chấm có nêu ra tên của phương thức, upper, và tên
của chuỗi mà ta áp dụng phương thức, chuoi. Cặp ngoặc tròn bỏ trống chỉ ra
rằng phương thức này không nhận tham biến.
4.6 Hàm find
Cú pháp : chuỗi.find('ký tự')
Công dụng : xuất ra vị trí ký tự đầu tiên tìm được trong chuỗi
Loại 2 : chuỗi.find('ký tự',chỉ số)
Công dụng : xuất ra vị trí ký tự đầu tiên tìm được trong chuỗi bắt đầu tìm kiếm
từ chỉ số được nhập vào
Loại 3 : chuỗi.find('ký tự',chỉ số1,chỉ số 2)
Công dụng : xuất ra vị trí ký tự đầu tiên tìm được trong chuỗi bắt đầu tìm kiếm
từ chỉ số 1 và kết thúc ở chỉ số 2
Chú ý : Nếu không tìm được ký tự thì kết quả là -1
Ví dụ :
>>> chuoi = 'NguyenThiAnhTuyet'
>>> tim=chuoi.find('u')
>>> print(tim)
2
>>> tim=chuoi.find('uy',4)
>>> print(tim)
13
>>> tim=chuoi.find('T',1,4)
>>> print(tim)
-1
>>> tim=chuoi.find('T',5,10)
>>> print(tim)
6
4.7 Toán tử in
Cú pháp chuoi1 in chuoi2
Công dụng : nhận vào hai chuỗi và trả lại True nếu chuỗi thứ nhất là một chuỗi
con của chuỗi thứ hai:
>>> 't'in'thoan'
True
>>> 'e'in'thoan'
Nhóm 6 Lớp ĐHTink3
2
False
5 Lát cắt
5.1 Lát cắt trong chuỗi
Một đoạn trong chuỗi được gọi là lát cắt. Việc chọn một lát cắt cũng giống
như chọn một kí tự:
>>> s='Hello Tink3'
>>> print (s[0:5])
Hello
>>> print(s[6:11])
Tink3
Toán tử [n:m] trả lại phần của chuỗi tính từ kí tự thứ n cho đến kí tự thứ m,
trong đó bao gồm kí tự thứ n và không kể kí tự thứ m. Điều này nghe được hợp
lý lắm, nhưng nó sẽ giúp bạn hình dung được vị trí của chỉ số là ở giữa các kí
tự, như trong sơ đồ sau:
+ + + + + +
| h | e | l | l | o |
+ + + + + +
0 1 2 3 4 5
-5 -4 -3 -2 -1
Nếu bạn bỏ qua chỉ số thứ nhất (trước dấu hai chấm) thì lát cắt sẽ bắt đầu
ở ngay điểm đầu của chuỗi. Nếu bạn bỏ qua chỉ số thứ hai thì lát cắt sẽ kết thúc
ở điểm cuối của chuỗi:
>>> s='hello'
>>> print(s[:3])
hel
>>> print(s[3:])
lo
>>>
Nếu chỉ số thứ nhất lớn hơn hoặc bằng chỉ số thứ hai thì kết quả thu được
sẽ là một chuỗi trống
>>> s='hello'
>>> print(s[3:3])
Nhóm 6 Lớp ĐHTink3
2
Một chuỗi trống không chứa kí tự nào và có độ dài bằng 0, nhưng các đặc
điểm khác của nó thì cũng tương tự như một chuỗi bất kì.
5.2 Chuỗi không thể bị thay đổi
Bạn có thể muốn dùng toán tử [] bên vế trái của một lệnh gán, với ý định
thay đổi một kí tự trong chuỗi. Chẳng hạn:
>>> s[0]='j'
Traceback (most recent call last):
File "<pyshell#8>", line 1, in <module>
s[0]='j'
TypeError: 'str' object does not support item assignment
Đối tượng (“object”) ở trong trường hợp này chính là chuỗi, còn phần tử
(“item”) là kí tự mà bạn muốn gán. Tạm thời bây giờ ta coi đối tượng cũng
giống như một giá trị, nhưng sẽ định nghĩa lại sau. Một phần tử là một trong số
các giá trị có trong chuỗi.
Lí do gây ra lỗi là ở chỗ các chuỗi đều không thể thay đổi, có nghĩa rằng
bạn không thể thay đổi một chuỗi hiện có. Việc tốt nhất mà bạn có thể làm được
là tạo ra một chuỗi mới như một biến thể của chuỗi ban đầu:
>>> s='hello'
>>> new_s='hoi '+s[3:]
>>> print(new_s)
hoi lo
Ví dụ này ghép nối một chữ cái mới ở vị trí thứ nhất với lát cát của s. Nó không
có ảnh hưởng gì đến chuỗi ban đầu.
Một lát cắt của chuỗi có thể nhận một chỉ số thứ ba để chỉ định “kích cỡ
của bước”; nghĩa là số khoảng cách giữa các kí tự kế tiếp. Một bước bằng 2
nghĩa là cách một kí tự lấy một; bước 3 nghĩa là cách hai kí tự mới lấy một,
v.v…
Một bước bằng -1 sẽ duyệt toàn bộ của từ theo hướng ngược lại, vì vậy lát
cắt [::-1] cho ta một chuỗi lộn ngược lại.
>>> chuoi = 'NguyenThiAnhTuyet'
>>> chuoi[0::3]
'NyTATe'
>>> chuoi[::-1]
'teyuThnAihTneyugN’
Nhóm 6 Lớp ĐHTink3