Chuỗi ký tự (String) trong Python

Cũng như hầu hết các ngôn ngữ lập trình khác, String (chuỗi ký tự) là một kiểu dữ liệu (data type) quan trọng và phổ biến trong Python (được sử dụng trong hầu như tất cả các ứng dụng/ phần mềm). Trong bài hôm nay, chúng ta sẽ cùng tìm hiểu về String và cách sử dụng kiểu dữ liệu này trong Python.

Tham gia cộng đồng học tập Bumbii trên Discord

  • Chia sẻ, hỏi đáp, bàn luận các vấn đề học tập.
  • Gặp gỡ các anh chị, thầy cô có nhiều năm kinh nghiệm.
  • Cập nhật các kiến thức, tài liệu mới nhất.

Tham gia ngay!

1. Cách khai báo hoặc tạo ra một String trong Python

Một String là một chuỗi các ký tự (bao gồm cả khoảng trắng và các ký tự đặc biệt). Trong Python, String sẽ được đặt trong dấu nháy đơn hoặc dấu nháy kép. Dưới đây là ví dụ cho các String hợp lệ trong Python:

# Declare strings using single quotes or double quotes
single_quotes_string = 'Hello, Bumbii - single quotes!'
print(single_quotes_string)

double_quotes_string = "Hello, Bumbii! - double quotes"
print(double_quotes_string)

Trong trường hợp chuỗi ký tự có chứa dấu nháy đơn thì ta có thể dùng dấu nháy kép để bao (wrap) chuỗi lại để đảm bảo dấu nháy đơn vẫn được hiển thị đúng. Và ngược lại nếu chuỗi ký tự có chứa dấu nháy kép thì ta có thể wrap nó bằng dấu nháy đơn.

# Strings contain single quotes or double quotes
string_has_single_quotes = "Hello, 'Bumbii'"
print(string_has_single_quotes)

string_has_double_quotes = 'Hello, "Bumbii"'
print(string_has_double_quotes)

Tuy nhiên, trong các dự án thực tế, để code được đồng nhất thì chúng ta thường thống nhất trong team sẽ dùng hoặc dấu nháy đơn hoặc dấu nháy kép, tránh việc không thống nhất sẽ làm cho code không được đẹp. Để thỏa mãn yêu cầu này, chúng ta sẽ dùng ký tự backslash (\) để báo cho Python biết là dấu nháy (đơn hoặc kép) là một phần của chuỗi ký tự chúng ta đang khai báo.

# Use back slash to escape the quotes
string_using_back_slash_single_quotes = 'Hello, \'Bumbii\''
print(string_using_back_slash_single_quotes) # Hello, 'Bumbii'

string_using_back_slash_double_quotes = "Hello, \'Bumbii\'"
print(string_using_back_slash_double_quotes) #Hello, 'Bumbii'

Như vậy Python sẽ xem backslash (\) là một ký tự đặc biệt và bỏ qua (escape) ký tự này. Nhưng nếu trong trường hợp chuỗi ký tự có chứa backslash và chúng ta vẫn muốn giữ ký tự này thì sao? Chẳng hạn đường dẫn đến một thư mục trong máy sẽ chứa ký tự backslash này: D:\data\python

Để giải quyết vấn đề này, Python cho phép chúng ta khai báo “raw string” bằng cách thêm ký tự r liền trước dấu nháy (đơn hoặc kép).

# Use raw string 
a_raw_string_single_quotes = r'D:\data\python'
print(a_raw_string_single_quotes) # D:\data\python

a_raw_string_double_quotes = r"D:\data\python"
print(a_raw_string_double_quotes) # D:\data\python

Python cũng cung cấp cho chúng ta một kỹ thuật để có thể khai báo String với nhiều dòng (ví dụ: một bài thơ gồm nhiều dòng). Để khai báo String loại này, chúng ta có thể dùng triple-quotes (3 dấu nháy mở (đơn hoặc kép đều được) và 3 dấu nháy đóng):

multiple_lines_string_single_quotes = '''
Why do programmers prefer dark mode? 
Because light attracts bugs!
    Thanks!
'''
print(multiple_lines_string_single_quotes)

multiple_lines_string_double_quotes = """
Why do programmers prefer dark mode? 
Because light attracts bugs!
    Thanks!
"""
print(multiple_lines_string_single_quotes)

Cả 2 cách trên đều sẽ in ra màn hình console kết quả như sau:

Why do programmers prefer dark mode?
Because light attracts bugs!
    Thanks!

2. Sử dụng biến (variable) trong String

Trong rất nhiều trường hợp, chúng ta cần khai báo một String mà trong String này có chứa các biến (các giá trị chưa biết trước, giá trị chỉ xác định tại thời điểm chạy chương trình). Một ví dụ đơn giản là chương trình in ra tuổi của một người sau khi người đó nhập vào năm sinh:

You are X years old.

Có nhiều cách để giải quyết vấn đề này, tuy nhiên trong giới hạn của bài viết này, chúng ta chỉ dùng một kỹ thuật đơn giản (các kỹ thuật khác sẽ được trình bày trong một bài viết khác): dùng f-string (chỉ hỗ trợ từ Python 3.6). Để sử dụng f-string, chúng ta thêm f vào phía trước String và wrap các biến trong dấu ngoặc móc {}

year_of_birth = 1988
age = 2024 - year_of_birth
message = f"Your year of birth is {year_of_birth}. You are {age} years old"
print(message)

3. Nối (concatenate) các Strings với nhau trong Python

Trong Python, bạn có thể dùng nhiều kỹ thuật khác nhau để nối hai hoặc nhiều String lại với nhau như: dùng toán tử +, dùng hàm join(), hàm format() hoặc f-strings. Để xem chi tiết về việc nối chuỗi trong Python, mời các bạn tham khảo bài viết Các kỹ thuật nối chuỗi ký tự trong Python.

4. Tính chiều dài của String

Python cung cấp hàm len() để tìm chiều dài của String.

# 4. Get the length of a string
greeting = "Hello Bumbii!"
length = len(greeting)
print(length) # 13

Các code ví dụ trong bài viết các bạn có thể xem trên Github.

Tham gia cộng đồng học tập Bumbii trên Discord

  • Chia sẻ, hỏi đáp, bàn luận các vấn đề học tập.
  • Gặp gỡ các anh chị, thầy cô có nhiều năm kinh nghiệm.
  • Cập nhật các kiến thức, tài liệu mới nhất.

Tham gia ngay!

5 1 đánh giá
Article Rating
Theo dõi
Thông báo của
guest

1 Bình luận
Cũ nhất
Mới nhất Được bỏ phiếu nhiều nhất
Phản hồi nội tuyến
Xem tất cả bình luận
Đăng
Đăng
2 tháng trước

ghê vậy sao!

1
0
Cùng chia sẻ bình luận của bạn nào!x