String là một trong những kiểu dữ liệu cơ bản trong Python. Python string là tổ hợp bất kỳ số lượng ký tự nào gồm chữ cái, chữ số, ký tự đặc biệt. Hướng dẫn này trình bày cách tạo, thao tác, định dạng string.
Tạo String mới trong Python
Khai báo chuỗi ký tự trong ngoặc đơn, kép hoặc ba ngoặc (cho đa dòng).
double_quotes = "My name is John!"
single_quotes = 'My name is John!'
multi_line_string = '''1. My name is John!
2. I am a programmer'''
String Indexing (Chỉ mục chuỗi)
Mỗi ký tự có index integer. Index 0 tại ký tự đầu, tăng dần.
myPet = "Dog not a cat"
myPet[0] # 'D'
myPet[5] # 'o'
myPet[7] # ' ' (space)
myPet[12] # 't'
# myPet[15] # IndexError
Truy cập vượt quá index cuối -> IndexError.
Index âm: -1 là ký tự cuối, giảm dần về phía trước.
myPet = "Dog not a cat"
myPet[-1] # 't'
myPet[-6] # ' '
myPet[-8] # 'o'
myPet[-13] # 'D'
String Slicing (Cắt chuỗi)
Trích xuất substring bằng cách chỉ định start:end (end exclusive).
myPet = "Dog not a cat"
myPet[5:7] # 'ot'
myPet[1:12] # 'og not a ca'
Bỏ qua start -> cắt từ đầu. Bỏ qua end -> cắt đến cuối (kể cả ký tự cuối).
myPet = "Dog not a cat"
myPet[:7] # 'Dog not'
myPet[10:] # 'cat'
myPet[:] # 'Dog not a cat' (copy toàn bộ)
Cũng dùng được index âm cho slicing.
myPet[10:-1] # 'ca'
Độ dài chuỗi
Dùng len().
myPet = "Dog not a cat"
len(myPet) # 13
Duyệt qua String
Dùng for loop.
name = "John"
for char in name:
print(char) # 'J', 'o', 'h', 'n'
String Concatenation (Nối chuỗi)
Nhiều cách nối chuỗi trong Python.
1. Toán tử +:
str1 = 'Hello'
str2 = 'World'
concat_str = str1 + str2 # 'HelloWorld'
concat_str = str1 + ' ' + str2 # 'Hello World'
2. Toán tử * (nhân chuỗi):
concat_str = str1 * 3 # 'HelloHelloHello'
3. Method join():
arr = [str1, str2]
concat_str = (' ').join(arr) # 'Hello World'
concat_str = (',').join(arr) # 'Hello,World'
Nối String và Int
Không dùng + trực tiếp (TypeError). Chuyển int sang str trước:
name = "John "
age = 35
print(name + str(age)) # John 35
Tách chuỗi (Split)
Dùng split() tách string thành list.
string = "My name is John"
split_arr = string.split(' ') # ['My', 'name', 'is', 'John']
string = "John, Rose, Jack, Mary"
split_arr = string.split(', ') # ['John', 'Rose', 'Jack', 'Mary']
Strip - Loại bỏ khoảng trắng
strip() xóa khoảng trắng đầu và cuối chuỗi (không xóa giữa).
string = " Hello, World "
stripper_str = string.strip() # 'Hello, World'
Hai biến thể: lstrip() (trái), rstrip() (phải).
lsplit_str = string.lstrip() # 'Hello, World '
rsplit_str = string.rstrip() # ' Hello, World'
Hữu ích khi đọc user input có thể chứa khoảng trắng thừa.
Định dạng String (Formatting)
Dùng format() với placeholder {}.
"Hello, {}".format('John') # 'Hello, John'
Nhiều placeholder: thay thế theo thứ tự hoặc positional index.
"I have a {}, {}, and a {}".format('dog', 'cat', 'rabbit')
# 'I have a dog, cat, and a rabbit'
"I have a {1}, {0}, and a {2}".format('dog', 'cat', 'rabbit')
# 'I have a cat, dog, and a rabbit'
Dùng keyword argument:
print("{friend} is my friend and {enemy} is my enemy".format(friend="John", enemy="Jack"))
# 'John is my friend and Jack is my enemy'
Các ứng dụng khác của format():
arr = [3, 5]
'I have {0[0]} dogs and {0[1]} cats'.format(arr) # 'I have 3 dogs and 5 cats'
# Chuyển đổi cơ số
"int: {0:d}; hex: {0:x}; oct: {0:o}; bin: {0:b}".format(42)
# 'int: 42; hex: 2a; oct: 52; bin: 101010'
Chuyển chuỗi thành chữ thường
string = "Hello, World!"
string.lower() # 'hello, world!'
Chuyển chuỗi thành chữ hoa
string = "Hello, World!"
string.upper() # 'HELLO, WORLD!'
Kết luận
Hy vọng hướng dẫn này giúp bạn làm quen với Python strings và các method thao tác chuỗi.
Tham khảo: Python string documentation.