Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Làm chủ Python Strings: Các phép toán thiết yếu & Best Practices

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.