Hướng dẫn và ví dụ String trong Python

1- Python String

Chuỗi (string) là một kiểu (type) thông dụng nhất trong Python, và bạn thường xuyên phải làm việc với chúng. Chú ý rằng trong Python không có kiểu ký tự (character), ký tự đơn giản được coi là một string có độ dài 1.

Có 2 cách để khai báo một string viết trên 1 dòng ( line ), đó là sử dụng dấu nháy đơn hoặc dấu nháy kép .


str1 = "Hello Python"
str2 = 'Hello Python'

str3 = "I'm from Vietnam"

str4 = 'This is a "Cat"! '

Nếu bạn muốn viết string trên nhiều dòng, sử dụng cặp 3 dấu nháy đơn.


str = """Hello World
     Hello Python"""

2- Truy cập các giá trị trong string

Python không hỗ trợ kiểu ký tự (Character type), ký tự được coi là một string với độ dài 1. Các ký tự trong string được đánh chỉ số bắt đầu từ 0. Bạn có thể truy cập vào các chuỗi con (substring) thông qua chỉ số.


stringExample. py


mystr = "This is text"

# --> h
print ("mystr[1] = ", mystr[1])

# --> is is t
print ("mystr[2,9] = ", mystr[2:9])

# --> s is text
print ("mystr[3:] = ", mystr[3:])

3- String là bất biến (immuable)

String là kiểu dữ liệu đặc biệt trong Python, và nó là bất biến (immuable). Mỗi string được có một địa chỉ lưu trữ trên bộ nhớ (memory). Tất cả các thao tác với string đều tạo ra một đối tượng khác. Chẳng hạn như việc bạn muốn nối (concatenate) một string vào một string khác, hành động này tạo ra một string khác trên bộ nhớ.


Toán tử = = và is

Python sử dụng toán tử == để so sánh giá trị của 2 đối tượng. Và sử dụng toán tử “is” để so sánh vị trí trên bộ nhớ (Memory).

compareObject. py


class Person(object):
    def __init__(self, name, age):
        self.name = name
        self.age = age
    # Ghi đè phương thức __eq__
    def __eq__(self, other):
        return self.name == other.name and self.age == other.age

jack1 = Person('Jack', 23)
jack2 = Person('Jack', 23)

# Gọi tới phương thức __eq__
print ("jack1 == jack2 ?", jack1 == jack2) # True
print ("jack1 is jack2 ?", jack1 is jack2) # False

Xem thêm:

  • TODO Link ?

String là kiểu dữ liệu đặc biệt và sử dụng thường xuyên trong ứng dụng Python. Và vì vậy nó có một số đặc điểm sau:

  • Nếu bạn khai báo 2 biến kiểu string có giá trị như nhau, chúng sẽ cùng trỏ đến một string thực sự trên bộ nhớ (memory).


Các toán tử với string sẽ tạo ra string mới trên bộ nhớ ( memory ) .

compareString. py


str1 = "Hello Python"
str2 = "Hello Python"
str3 = "Hello " + "Python"

print ("str1 == str2? ", str1 == str2) # --> True 
print ("str1 is str2? ", str1 is str2) # --> True  
print ("str1 == str3? ", str1  == str3) # --> True 
print ("str1 is str3? ", str1 is str3) # --> False

4- Các ký tự thoát (Escape Characters)

Các ký tự thoát (Escape characters) là các ký tự đặc biệt trong Python. Nó là các ký tự không thể in ấn (non-printable). Tuy nhiên bạn muốn nó xuất hiện trong string của bạn. Bạn cần một ký hiệu để thông báo với Python. Chẳng hạn “\n” là ký tự xuống dòng (newline).

escapeCharacterExample. py


# Hai ký tự TAB ngăn cách giữa "Hello World" và "Hello Python".
mystr = "Hello World\t\tHello Python" 

print (mystr) 
# Hai ký tự xuống dòng ngăn cách giữa "Hello World" và "Hello Python".
mystr = "Hello World\n\nHello Python" 
print (mystr)

Output :


Hello World       Hello Python
Hello World

Hello Python
Ký hiệu với dấu xoẹt Mã trong hệ cơ số 16 Mô tả
\a 0x07 Bell or alert
\b 0x08 Backspace
\cx   Control-x
\C-x   Control-x
\e 0x1b Escape
\f 0x0c Formfeed
\M-\C-x   Meta-Control-x
\n 0x0a Newline
\nnn   Octal notation, where n is in the range 0.7
\r 0x0d Carriage return
\s 0x20 Space
\t 0x09 Tab
\v 0x0b Vertical tab
\x   Character x
\xnn   Hexadecimal notation, where n is in the range 0.9, a.f, or A.F

5- Các toán tử cho string

Trong Python, có một số toán tử đặc biệt dưới đây:

Toán tử Mô tả Ví dụ
+ Nối (concatenate) 2 string, tạo thành một string mới. “Hello” +”Python” ==> “Hello Python”
* Tạo một string mới bằng cách nối (concatenate) nhiều lần bản copy của cùng môt string. “Hello”*2 ==> “HelloHello”
[] Trả về ký tự tại vị trí cho bởi chỉ số. a = “Hello”
a[1] ==> “e”
[ : ] Trả về một chuỗi con chứa các ký tự cho bởi phạm vi (range) a = “Hello”
a[1:4] ==> “ell”
a[1: ] ==> “ello”
in Trả về True nếu ký tự tồn tại trong string đã cho. a = “Hello”
‘H’ in a ==> True
not in Trả về True nếu ký tự không tồn tại trong string đã cho. a = “Hello”
‘M’ not in a ==> True
r/R Chuỗi thô (Raw String) – Ngăn chặn ý nghĩa thực tế của các ký tự thoát (Escape character). Cú pháp cho chuỗi thô giống hệt với chuỗi thông thường ngoại trừ “toán tử chuỗi thô”, chữ “r” đứng trước dấu ngoặc kép. “R” có thể là chữ thường (r) hoặc chữ hoa (R) và phải được đặt ngay trước dấu trích dẫn đầu tiên. print (r’\n\t’) ==> \n\t
print (R’\n\t’) ==> \n\t
% Định dạng string Xem tại phần dưới.

6- Các phương thức

  • TODO