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ố.
![](https://s1.o7planning.com/web-rs/web-image/vi/arf-1095774-vi.webp)
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ớ.
![](https://s1.o7planning.com/web-rs/web-image/vi/arf-1095789-vi.webp)
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:
- So sánh và sắp xếp trong Python
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).
![](https://s1.o7planning.com/web-rs/web-image/vi/arf-1095820-vi.webp)
Các toán tử với string sẽ tạo ra string mới trên bộ nhớ (memory).
![](https://s1.o7planning.com/web-rs/web-image/vi/arf-1095826-vi.webp)
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. |
Các hướng dẫn lập trình Python
- Tra cứu tài liệu Python
- Các lệnh rẽ nhánh trong Python
- Hướng dẫn và ví dụ Python Function
- Lớp và đối tượng trong Python
- Thừa kế và đa hình trong Python
- Hướng dẫn và ví dụ Python Dictionary
- Hướng dẫn và ví dụ Python Lists
- Hướng dẫn và ví dụ Python Tuples
- Hướng dẫn sử dụng Date Time trong Python
- Kết nối cơ sở dữ liệu MySQL trong Python sử dụng PyMySQL
- Hướng dẫn xử lý ngoại lệ trong Python
- Hướng dẫn và ví dụ String trong Python
- Giới thiệu về Python
- Cài đặt Python trên Windows
- Cài đặt Python trên Ubuntu
- Cài đặt PyDev cho Eclipse
- Quy ước và các phiên bản ngữ pháp trong Python
- Hướng dẫn lập trình Python cho người mới bắt đầu
- Vòng lặp trong Python
Show More