6.Chuỗi trong Python

Trong Python mọi thứ đều là đối tượng và chuỗi cũng là một đối tượng. Chuỗi trong Python có thể được tạo đơn giản bằng cách đặt các ký tự trong dấu ngoặc kép hoặc ngoặc đơn.

Ví dụ:

var = "Hello World!"

Trong bài này, chúng ta sẽ tìm hiểu về:

  • Truy cập các giá trị trong chuỗi

  • Các toán tử làm việc với chuỗi

  • Một số ví dụ khác

  • Thay thế chuỗi

  • Thay đổi chữ hoa và chữ thường trong chuỗi

  • Kết hợp chuỗi

  • Đảo ngược chuỗi

  • Phân tách chuỗi

Truy cập các giá trị trong chuỗi

Python không hỗ trợ kiểu dữ liệu là một ký tự, chúng được coi là các chuỗi có độ dài bằng một, hay cũng được coi là một chuỗi con.

Chúng ta sử dụng dấu ngoặc vuông cùng với chỉ số hoặc chỉ mục để cắt một chuỗi và từ đó thu được một chuỗi con.

var1 = "Guru99!"
var2 = "Software Testing"
print("var1[0]:",var1[0])
print("var2[1:5]:",var2[1:5])

Các toán tử làm việc với chuỗi

Có rất nhiều các toán tử làm việc với chuỗi khác nhau có thể được sử dụng để kết hợp hai chuỗi riêng biệt.

Giả sử nếu a = guru và b = 99 thì a + b = "guru99". Tương tự, nếu bạn sử dụng a*2, ta sẽ thu được "GuruGuru". Các toán tử làm việc với chuỗi khác cũng tương tự như vậy.

Toán tử

Chức năng

Ví dụ

 

[]

Cắt- nó đưa ra chữ cái từ chỉ số đã cho

a[1] sẽ trả về chữ "u" từ chữ Guru như vậy (0 = G, 1 = u, 2 = r và 3 = u)

x="Guru"

print(x[1])

[:]

Cắt theo phạm vi – trả về chuỗi ký tự từ phạm vi đã cho

x[1:3] sẽ trả về "ur" từ chữ Guru. Cần nhớ rằng, chữ G ở vị trí 0 sẽ không được trả về, thay vào đó, nó sẽ trả về hai chữ cái đằng sau là ur.

x="Guru"

print(x[1:3])

in

Kiểm tra tồn tại-trả về đúng nếu chữ cái tồn tại trong chuỗi cho trước.

u có tồn tại trong từ Guru và vì vậy, kết quả trả về là 1 (True-Đúng)

x="Guru"

print("u" in x)

not in

Kiểm tra tồn tại-trả về đúng chữ cái không tồn tại trong chuỗi cho trước.

I không tồn tại trong từ Guru vì thế kết quả trả về là 1.

x="Guru"

print("l" not in x)

r/R

Chuỗi dạng thô sẽ triệt tiêu các ký tự thoát – escape characters.

Lệnh in r’\n’ sẽ in ra \n và lệnh in R’\n’ sẽ in ra \n.

 

% - dùng để định dạng chuỗi

%r – Chèn chuỗi kiểu mẫu đại diện cho đối tượng (nghĩa là repr(o))

%s- Chèn chuỗi đại diện cho đối tượng (nghĩa là str(o))

%d- định dạng để hiển thị một số.

Đầu ra của đoạn mã bên cạnh sẽ là “guru 99”.

 

name = 'guru'

number = 99

print('%s %d' % (name,number))

+

Kết hợp hai chuỗi

Kết hợp các chuỗi và trả về kết quả

x="Guru"

y="99"

print(x+y)

*

Lặp lại chuỗi

Ký tự sẽ được in ra hai lần.

x="Guru"

y="99"

print(x*2)

Một số ví dụ khác

Bạn có thể cập nhật chuỗi trong Python bằng cách gán lại một biến cho một chuỗi khác. Giá trị mới có thể giống với giá trị cũ hoặc là một chuỗi mới hoàn toàn khác.

x = "Hello World!"
print(x[:6])
print(x[0:6] + "Guru99")

Lưu ý : - Phép cắt “: 6” hoặc “0: 6” trả về cùng kết quả.

Thay thế chuỗi

Phương thức thay thế replace() trả về một bản sao của chuỗi trong đó các giá trị của chuỗi cũ đã được thay thế bằng giá trị mới.

oldstring = 'I like Guru99'
newstring = oldstring.replace('like', 'love')
print(newstring)

Thay đổi chữ hoa và chữ thường trong chuỗi

Trong Python, bạn có thể thay đổi chuỗi thành chữ hoa bằng cách dùng hàm upper().

string="python at guru99"
# Chuyen chuoi sang chu hoa va in ra chuoi
print(string.upper())

Tương tự như vậy, bạn có thể thực hiện việc viết hoa chữ cái đầu tiên:

string="python at guru99"
print(string.capitalize())

Bạn cũng có thể chuyển đổi chuỗi thành chữ thường

string="PYTHON AT GURU99"
print(string.lower())

Kết hợp chuỗi

Hàm nối join là một cách linh hoạt để kết hợp chuỗi. Với hàm join, bạn có thể thêm bất kỳ ký tự nào vào chuỗi.

Ví dụ: nếu bạn muốn thêm dấu hai chấm (:) sau toàn bộ các ký tự trong chuỗi "Python", bạn có thể sử dụng đoạn mã sau đây.

print(":".join("Python"))

Đảo ngược chuỗi

Bằng cách sử dụng chức năng đảo ngược, bạn có thể đảo ngược chuỗi. Ví dụ: chúng ta có chuỗi "12345" và sau đó ta có thể áp dụng hàm đảo ngược chuỗi như trong đoạn mã dưới đây:

string="12345"
print(''.join(reversed(string)))

Phân tách chuỗi

Phân tách chuỗi là một chức năng khác có thể được áp dụng trong Python, giả sử với chuỗi "guru99 Career guru99". Ở đây, chúng ta sẽ phân tách chuỗi bằng lệnh word.split:

word="guru99 career guru99"
print(word.split(' '))

Kết quả:

['guru99', 'career', 'guru99']

Để hiểu rõ hơn, chúng ta sẽ tìm hiểu thêm một ví dụ về cách phân tách chuỗi.Trong ví dụ sau, chúng ta sẽ thay thế dấu cách (‘ ’) bằng ký tự ‘r’, và như vậy chuỗi sẽ được phân tách ở bất kỳ vị trí nào xuất hiện ký tự ‘r’.

word="guru99 career guru99"
print(word.split('r'))

Lưu ý quan trọng:

Trong Python, chuỗi không thể bị thay đổi.

Đoạn mã:

greeting = "Hello, world!"
greeting[0] = 'J'            # ERROR!
print(greeting)

Đoạn mã trên có lỗi ở dòng thứ 2, Do trong python, chuỗi không thể bị thay đổi nên greeting[0] = 'J' không hoạt động và trả về thông báo lỗi 'TypeError: 'str' object does not support item assignment' (greeting[0] đang có giá trị là 'H')

Xét tiếp đoạn mã sau đây:

x = "Guru99"
x.replace("Guru99","Python")
print(x)

vẫn sẽ trả lại Guru99. Điều này là do x.replace ("Guru99", "Python") trả về một bản sao của x sau khi đã được thay thế, bản sao này có giá trị là "Python", nhưng x không bị thay đổi và vẫn giữ giá trị là "Guru99".

Bạn sẽ cần sử dụng đoạn mã sau để thay đổi giá trị của biến x

x = "Guru99"
x = x.replace("Guru99","Python")
print(x)

Các đoạn mã trên đều sử dụng Python 3, nếu bạn muốn chạy với Python 2, hãy sử dụng đoạn mã sau:

Ví dụ sử dụng Python 2

#Accessing Values in Strings
var1 = "Guru99!"
var2 = "Software Testing"
print "var1[0]:",var1[0]
print "var2[1:5]:",var2[1:5]

#Some more examples
x = "Hello World!"
print x[:6]
print x[0:6] + "Guru99"

#Python String replace() Method
oldstring = 'I like Guru99'
newstring = oldstring.replace('like', 'love')
print newstring

#Changing upper and lower case strings
string="python at guru99"
print string.upper()
string="python at guru99"
print string.capitalize()
string="PYTHON AT GURU99"
print string.lower()

#Using "join" function for the string
print":".join("Python")

#Reversing String
string="12345"
print''.join(reversed(string))

#Split Strings
word="guru99 career guru99"
print word.split(' ')
word="guru99 career guru99"
print word.split('r')
x = "Guru99"
x.replace("Guru99","Python")
print x
x = "Guru99"
x = x.replace("Guru99","Python")
print x

Python đã hỗ trợ hàm .format để thay cho %d, %s và các ký hiệu tương tự như vậy cho việc định dạng chuỗi. Việc sử dụng hàm format() đơn giản hơn dùng %d, %s ... Vì nó có thể được dùng cho nhiều loại dữ liệu khác nhau.

Đoạn mã

name = 'guru'
number = 99
print('%s %d' % (name,number))

Tương đương với 

name = 'guru'
number = 99
print('{} {}'.format(name, number))

Tóm tắt

Vì Python là ngôn ngữ lập trình hướng đối tượng, nên nhiều hàm có thể được áp dụng cho các đối tượng khác nhau. Một tính năng đáng chú ý của Python đó là các câu lệnh được duy trì thụt lề giúp việc đọc mã nguồn dễ dàng hơn.

  • Truy cập các giá trị thông qua việc cắt (slice)- dấu ngoặc vuông được sử dụng cùng với chỉ số hoặc chỉ mục để cắt một chuỗi và từ đó thu được một chuỗi con.

    • Trong khi cắt, nếu bạn khai báo phạm vi là [1:5], thì giá trị thực tế được trả về sẽ nằm trong khoảng từ 1 tới 4

  • Bạn có thể cập nhật chuỗi trong Python bằng cách gán lại  chuỗi khác cho biến đó.

  • Phương thức thay thế replace() trả về một bản sao của chuỗi trong đó các giá trị cũ được thay thế bằng các giá trị mới.

    • Cú pháp cho phương thức replace: oldstring.replace ("giá trị cần thay đổi", "giá trị được sử dụng để thay đổi")

  • Các toán tử chuỗi như [], [:], in, not in, v.v. có thể được áp dụng để nối chuỗi, trả về hay chèn các ký tự cụ thể vào chuỗi hoặc để kiểm tra xem một ký tự nào đó có tồn tại trong chuỗi hay không.

  • Các phép toán làm việc với chuỗi khác bao gồm:

    • Thay đổi chữ hoa và chữ thường

    • Hàm join cho phép kết hợp bất kỳ ký tự nào với chuỗi

    • Đảo ngược chuỗi

    • Phân tách chuỗi

** Nếu bạn muốn viết các nội dung đặt biệt thì hãy làm theo hướng dẫn sau

Xem thêm 10 bình luận
Viết blog mới của bạn
Báo lỗi trang
Đang tải