Lập trình Python cơ bản

Lập trình Python cơ bản

Kiểu dữ liệu chuỗi trong Python - Phần 5 Kiểu dữ liệu chuỗi trong Python - Phần 5 Kiểu dữ liệu chuỗi trong Python - Phần 5 Kiểu dữ liệu chuỗi trong Python - Phần 5 Kiểu dữ liệu chuỗi trong Python - Phần 5 5/5 (113 reviews)

Kiểu dữ liệu chuỗi trong Python - Phần 5

Đã đăng 2017-10-24 02:17:52 bởi Kteam
26 bình luận 9560 lượt xem
Kiểu dữ liệu chuỗi trong Python - Phần 5 5 /5 stars (4 reviews)
 

Dẫn nhập

Trong bài trước, Kteam đã giới thiệu một vài các PHƯƠNG THỨC CHUỖI TRONG PYTHON.

Ở bài này, chúng ta sẽ tiếp tục tìm hiểu thêm một số phương thức của KIỂU DỮ LIỆU CHUỖI trong Python


Nội dung

Để đọc hiểu bài này tốt nhất bạn cần:

Trong bài học này, chúng ta sẽ cùng tìm hiểu các vấn đề:

  • Các phương thức tách chuỗi
  • Các phương thức tiện ích
  • Các phương thức xác thực

Các phương thức tách chuỗi

Phương thức split

Cú pháp:

<chuỗi>.split(sep=None, maxsplit=-1)

Công dụng: Trả về một list (kiểu dữ liệu sẽ được Kteam giới thiệu ở bài KIỂU DỮ LIỆU LIST) bằng cách chia các phần tử bằng kí tự sep.

  • Nếu sep mặc định bằng None thì sẽ dùng kí tự khoảng trắng.
  • Nếu maxsplit được mặc định bằng -1, Python sẽ không bị giới hạn việc tách, còn không, Python sẽ tách với số lần được cung cấp thông qua maxsplit.
>>> 'How Kteam K9'.split()
['How', 'Kteam', 'K9']
>>> 'How Kteam K9'.split(maxsplit=1)
['How', 'Kteam K9']
>>> 'How--Kteam--K9'.split('--')
['How', 'Kteam', 'K9']
>>> 'How&Kteam&K9'.split('&')
['How', 'Kteam', 'K9']

Phương thức rsplit

Cú pháp:

<chuỗi>.split(sep=None, maxsplit=-1)

Công dụng: cũng hoàn toàn như phương thức split, có điều là việc tách từ bên phải sang trái

>>> 'How kteam EDUCATION'.rsplit()
['How', 'kteam', 'EDUCATION']
>>> 'How kteam EDUCATION'.rsplit(maxsplit=1)
['How kteam', 'EDUCATION']

Phương thức partition

Cú pháp:

<chuỗi>.partition(sep)

Công dụng: Trả về một tuple với 3 phần tử. Các phần tử đó lần lượt là chuỗi trước chuỗi sep, sep và  chuỗi sau sep.

  • Trong trường hợp không tìm thấy sep trong chuỗi, mặc định trả về giá trị đầu tiên là chuỗi ban đầu và 2 giá trị kế tiếp là chuỗi rỗng.
>>> 'How kteam vs I hate python team vs Education'.partition('vs')
('How kteam ', 'vs', ' I hate python team vs Education')
>>> 'How kteam vs I hate python team vs Education'.partition('VS')
('How kteam vs I hate python team vs Education', '', '')

Phương thức rpartition

Cú pháp:

<chuỗi>.rpartition(sep)

Công dụng: Cách phân chia giống như phương thức partition nhưng lại chia từ phải qua trái. Và với sep không có trong chuỗi thì sẽ trả về 2 giá trị đầu tiên là chuỗi rỗng và cuối cùng là chuỗi ban đầu

>>> 'How kteam vs I hate python team vs free Education'.rpartition('vs')
('How kteam vs I hate python team ', 'vs', ' free Education')
>>> 'How kteam vs I hate python team vs free Education'.rpartition('VS')
('', '', 'How kteam vs I hate python team vs free Education')

Các phương thức tiện ích

Phương thức count

Cú pháp:

<chuỗi>.count(sub, [start, [end]])

Công dụng: Trả về một số nguyên, chính là số lần xuất hiện của sub trong chuỗi. Còn start end là số kĩ thuật slicing (lưu ý không hề có bước).

>>> 'kkkkk'.count('k')
5
>>> 'kkkkk'.count('kk')
2
>>> 'kkkkk'.count('k', 3)
2
>>> 'kkkkk'.count('k', 3, 4)
1

Phương thức startswith

Cú pháp:

<chuỗi>.startswith(prefix[, start[, end]])

Công dụng: Trả về  giá trị True nếu chuỗi đó bắt đầu bằng chuỗi prefix. Ngược lại là False.

  • Hai yếu tố start, end tượng trưng cho việc slicing (không có bước) để kiểm tra với chuỗi slicing đó.
>>> 'how kteam free education'.startswith('ho')
True
>>> 'how kteam free education'.startswith('ha')
False
>>> 'how kteam free education'.startswith('ho', 4)
False

Phương thức endswith

Cú pháp:

<chuỗi>.endswith(prefix[, start[, end]])

 

Công dụng: Trả về  giá trị True nếu chuỗi đó kết thúc bằng chuỗi prefix. Ngược lại là Flase.

  • Hai yếu tố start end tượng trưng cho việc slicing (không có bước) để kiểm tra với chuỗi slicing đó.
>>> 'how kteam free education'.endswith('n')
True
>>> 'how kteam free education'.endswith('ho')
False
>>> 'how kteam free education'.endswith('n', 0, 9)
False

Phương thức find

Cú pháp:

<chuỗi>.find(sub[, start[, end]])

Công dụng: Trả về một số nguyên, là vị trí đầu tiên của sub khi dò từ trái sang phải trong chuỗi. Nếu sub không có trong chuỗi, kết quả sẽ là -1. Vẫn như các phương thức khác, start end đại diện cho slicing và ta sẽ tìm trong chuỗi slicing này.

>>> 'howkteam'.find('h')
0
>>> 'howkteam'.find('k')
3
>>> 'howkteam'.find('l')
-1
>>> 'howkteam'.find('h', 2)
-1

Phương thức rfind

Cú pháp:

<chuỗi>.rfind(sub[, start[, end]])

Công dụng: Tương tự phương thức find nhưng tìm từ phải sang trái

>>> 'howkteamhow'.rfind('h')
8

Phương thức index

Cú pháp:

<chuỗi>.index(sub[, start[, end]])

Công dụng: Tương tự phương thức find. Nhưng khác biệt là sẽ có lỗi ValueError nếu không tìm thấy chuỗi sub trong chuỗi ban đầu

>>> 'abcd'.index('z')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: substring not found

Phương thức rindex

Cú pháp: 

<chuỗi>.rindex(sub[, start[, end]])

Công dụng: Tương tự phương thức rindex. Và cũng khác ở điểm là sẽ có ValueError nếu không tìm thấy chuỗi sub trong chuỗi ban đầu

>>> 'abcd'.rindex('z')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: substring not found

Các phương thức xác thực

Phương thức islower

Cú pháp:

<chuỗi>.islower()

Công dụng: Trả về True nếu tất cả các kí tự trong chuỗi đều là viết thường. Ngược lại là False

>>> 'python'.islower()
True
>>> 'pythoN'.islower()
False

Phương thức isupper

Cú pháp:

<chuỗi>.isupper()

Công dụng: Trả về True nếu tất cả các kí tự trong chuỗi đều là viết hoa. Ngược lại là False

>>> 'HOWKTEAM'.isupper()
True
>>> 'HowKteam'.isupper()
False

Phương thức istitle

Cú pháp:

<chuỗi>.istitle()

Công dụng: Trả về True nếu chuỗi đó là một dạng title. Ngược lại là False

>>> 'Free Education'.istitle()
True
>>> 'FrEe Education'.istitle()
False

Phương thức  isdigit

Cú pháp:

<chuỗi>.isdigit()

Công dụng: Trả về True nếu tất cả các kí tự trong chuỗi đều là những con số từ 0 đến 9

Lưu ý: Phương thức này gần giống với isnumeric. Nhưng vì liên quan nhiều đến toán nên Kteam sẽ không giới thiệu về phương thức isnumeric và cũng không so sánh sự khác nhau giữa hai phương thức.

>>> '0123'.isdigit()
True
>>> '123'.isdigit()
True
>>> '-123'.isdigit()
False

Phương thức isspace

Cú pháp:

<chuỗi>.isspace()

Công dụng: Trả về True nếu tất cả các kí tự trong chuỗi đều là kí tự khoảng trắng

>>> '      '.isspace()
True
>>> '   d  '.isspace()
False

Câu hỏi củng cố

Với chuỗi s bên dưới 

>>> s = 'aaaAAaaaooaaneu mot Ngay naO Doaaaaaaa'

Hãy dùng các phương thức để có được chuỗi s sau đây

>>> s
'Neu Mot Ngay Nao Do'

Hãy cố gắng làm càng ít dòng code càng tốt.

Đáp án của phần này sẽ được trình bày ở bài tiếp theo. Tuy nhiên, Kteam khuyến khích bạn tự trả lời các câu hỏi để củng cố kiến thức cũng như thực hành một cách tốt nhất!   


Kết luận

Qua bài viết này, bạn đã biết được các PHƯƠNG THỨC CHUỖI, và phần nào đó có các kiến thức tốt về KIỂU DỮ LIỆU CHUỖI.

Ở bài viết sau, Kteam sẽ giới thiệu với các bạn KIỂU DỮ LIỆU LIST TRONG PYTHON.

Cảm ơn bạn đã theo dõi bài viết. Hãy để lại bình luận hoặc góp ý của mình để phát triển bài viết tốt hơn. Đừng quên “Luyện tập – Thử thách – Không ngại khó”.

 



Tài liệu 

Nhằm phục vụ mục đích học tập Offline của cộng đồng, Kteam hỗ trợ tính năng lưu trữ nội dung bài học KIỂU DỮ LIỆU CHUỖI TRONG PYTHON – Phần 5 dưới dạng file PDF trong link bên dưới.

Ngoài ra, bạn cũng có thể tìm thấy các tài liệu được đóng góp từ cộng đồng ở mục TÀI LIỆU trên thư viện Howkteam.com

Đừng quên like hoặc +1 Google để ủng hộ Kteam và tác giả nhé! 


Thảo luận

Nếu bạn có bất kỳ khó khăn hay thắc mắc gì về khóa học, đừng ngần ngại đặt câu hỏi trong phần BÌNH LUẬN bên dưới hoặc trong mục HỎI & ĐÁP trên thư viện Howkteam.com để nhận được sự hỗ trợ từ cộng đồng. 

 

Chia sẻ:
Thảo luận Hỏi và đáp Báo lỗi bài viết
Hủy bỏ   hoặc  
Kiểu dữ liệu chuỗi trong Python - Phần 5
huudeptraivl 2018-12-16 00:29:19

s = 'aaaAAaaaooaaneu mot Ngay naO Doaaaaaaa'
print(s.lower().lstrip("ao").rstrip("a").title())

0 bình chọn
Reply
Kiểu dữ liệu chuỗi trong Python - Phần 5
thuyhoang1422014 2018-11-30 16:29:12

f = 'aaaAAaaaooaaneu mot Ngay naO Doaaaaaaa'
g = f.strip('aAo')
g += 'o'
print(g.title())

 

e làm v đc chưa ạ?

0 bình chọn
Reply
Kiểu dữ liệu chuỗi trong Python - Phần 5
NKHANG 2018-11-04 10:43:58

A = 'aaaAAaaaooaaneu mot Ngay naO Doaaaaaaa'
print(A[A.find('n'):A.rfind('o')+1].title())

ctrl+B

Neu Mot Ngay Nao Do
[Finished in 0.1s]

0 bình chọn
Reply
Kiểu dữ liệu chuỗi trong Python - Phần 5
MinhNT 2018-10-30 10:19:12

Dap an cua minh hiz

>>> s = 'aaaAAaaaooaaneu mot Ngay naO Doaaaaaaa'

>>>resual =s.lstrip('aAo').strip('a').title()

>>>print(s+'\n',resual)

0 bình chọn
Reply
Kiểu dữ liệu chuỗi trong Python - Phần 5
Hai Bp 2018-09-30 09:02:07

s = 'aaaAAaaaooaaneu mot Ngay naO Doaaaaaaa'

print(s[s.find('n'):1+s.rindex('o')].title())

0 bình chọn
Reply
Kiểu dữ liệu chuỗi trong Python - Phần 5
Quang Frank 2018-09-23 22:19:02

s = 'aaaAAaaaooaaneu mot Ngay naO Doaaaaaaa'
print(s[12:31].title())

0 bình chọn
Reply
Kiểu dữ liệu chuỗi trong Python - Phần 5
nghiadan2312 2018-09-12 08:11:34

a = 'aaaAAaaaooaaneu mot Ngay naO Doaaaaaaa'
u = a[12:-7]
b = u.lower()
print(b.title()) 

0 bình chọn
Reply
Kiểu dữ liệu chuỗi trong Python - Phần 5
Sagi-Viz 2018-09-11 13:19:34

s = 'aaaAAaaaooaaneu mot Ngay naO Doaaaaaaa'
fix = s.lower().replace('aa','').replace('oo','').replace('oa','o').title()

print(s)
print(fix)

0 bình chọn
Reply
View all 1 comments
Kteam - Howkteam Free Education
MinhNT 2018-10-30 10:06:02
ban co the bo lower() di, vi trong title da xu ly duoc
0 bình chọn
Reply
Kiểu dữ liệu chuỗi trong Python - Phần 5
thaovuong20493 2018-08-22 20:33:02

s = 'aaaAAaaaooaaneu mot Ngay naO Doaaaaaaa'
x=s.partition('neu mot Ngay naO Do')
y=x[1]
z=y.lower()
k=z.title()
print(k)

0 bình chọn
Reply
Kiểu dữ liệu chuỗi trong Python - Phần 5
alforever 2018-08-10 13:10:46

s = 'aaaAAaaaooaaneu mot Ngay naO Doaaaaaaa'
print((s.strip('aAo')+ 'o').title())

0 bình chọn
Reply
View all 1 comments
Kteam - Howkteam Free Education
MinhNT 2018-10-30 09:59:03
cach lam nay tot nhat
0 bình chọn
Reply
Kiểu dữ liệu chuỗi trong Python - Phần 5
buiphucdai.hp 2018-06-03 12:58:19

Mình làm thế này ạ.

s = 'aaaAAaaaooaaneu mot Ngay naO Doaaaaaaa'
a = s.replace('aaaAAaaaooaaneu mot Ngay naO Doaaaaaaa','Neu Mot Ngay Nao Do')
s = a
print(s)

0 bình chọn
Reply
View all 1 comments
Kteam - Howkteam Free Education
thanghiepdiendo 2018-07-04 16:43:28
ha ha
0 bình chọn
Reply
Kiểu dữ liệu chuỗi trong Python - Phần 5
nghiaryeo 2018-03-09 16:51:07

s = 'aaaAAaaaooaaneu mot Ngay naO Doaaaaaaa'
print(s[12:len(s)-7].title())

0 bình chọn
Reply
Kiểu dữ liệu chuỗi trong Python - Phần 5
huynhphuoctan00840 2018-03-01 12:21:51

cho mình hỏi trong ví dụ partion nếu mình muốn ra kết quả thế này thì code làm sao v : ('How kteam ', 'vs', ' I hate python team', 'vs', ' Education')

0 bình chọn
Reply
View all 2 comments
Kteam - Howkteam Free Education
nobleboyh 2018-03-02 10:24:07
a = 'How kteamvsI hate python teamvsEducation' b = a.partition('vs') c = ((b[0],b[1]) &#43; b[2].partition('vs')) print(c)
0 bình chọn
Reply
Kteam - Howkteam Free Education
NKHANG 2018-11-04 11:45:46
a = 'How kteamvsI hate python teamvsEducation'.partition('vs') b = a[2].partition('vs') print(a[0:2]&#43;b[0:3])
0 bình chọn
Reply
Kiểu dữ liệu chuỗi trong Python - Phần 5
rooney204 2018-03-01 11:23:16
s = 'aaaAAaaaooaaneu mot Ngay naO Doaaaaaaa'.lstrip('aoA').strip('a').title()
0 bình chọn
Reply
Kiểu dữ liệu chuỗi trong Python - Phần 5
duythai16 2018-02-26 12:48:53

Thế này có ổn ko nhỉ

s= (s[s.find('n'):s.rfind("o")+1]).title()

0 bình chọn
Reply
Kiểu dữ liệu chuỗi trong Python - Phần 5
nobleboyh 2018-02-25 15:24:31

Cách của mình: 

s = s[s.find('neu'):s.find('aaaaa')].title()

 

1 bình chọn
Reply
View all 1 comments
Kteam - Howkteam Free Education
lysonthach 2018-06-07 13:48:46
hay vậy
0 bình chọn
Reply
Kiểu dữ liệu chuỗi trong Python - Phần 5
luanMTA 2018-02-12 12:09:36

s='aaaAAaaaooaaneu mot Ngay naO Doaaaaaa'
a=s.lstrip('oAa').rstrip('a').title()
print(a)

như này được không mọi người

0 bình chọn
Reply
Kiểu dữ liệu chuỗi trong Python - Phần 5
honggiahieu 2018-01-12 11:13:42

s.lstrip('aAo').rstrip('a').replace('0','o',-1).title()

0 bình chọn
Reply
Kiểu dữ liệu chuỗi trong Python - Phần 5
Pép Si 2018-01-09 16:07:06

Cách này được không ạ: 

s = 'aaaAAaaaooaaneu mot Ngay naO Doaaaaaaa'
k = ((s.partition('n')[1] + s.partition('n')[2]).rpartition('o')[0] + (s.partition('n')[1] + s.partition('n')[2]).rpartition('o')[1]).title()
print (k)

0 bình chọn
Reply
View all 1 comments
Kteam - Howkteam Free Education
khuongduying 2018-01-10 09:34:58
Cách của tui :)) s = 'aaaAAaaaooaaneu mot Ngay naO Doaaaaaaa' a=s.strip('aAo') print(a.title()&#43;'o')
0 bình chọn
Reply
Hủy bỏ   hoặc  
Hủy bỏ   hoặc  

Chiến dịch

Kteam - Howkteam Free Education