0
0
Lập trình
Flame Kris
Flame Krisbacodekiller

Định dạng chuỗi trong Python: Từ cơ bản đến F-Strings

Đăng vào 13 giờ trước

• 5 phút đọc

Giới thiệu

Bạn đã thành thạo việc truy cập các phần chính xác của dữ liệu bằng slicing. Bây giờ, hãy cùng tìm hiểu cách kết hợp dữ liệu đó thành văn bản rõ ràng và động. Dù bạn đang tạo báo cáo, tin nhắn người dùng hay ghi lại đầu ra, định dạng chuỗi là chìa khóa để biến dữ liệu thô thành thông tin có thể đọc được.

Python đã phát triển nhiều cách để định dạng chuỗi, mỗi cách đều mạnh mẽ hơn cách trước. Chúng ta sẽ tập trung vào phương pháp hiện đại và được khuyến nghị nhất: f-strings.

1. Các phương pháp cũ: Một cái nhìn nhanh

Để có bối cảnh, điều này sẽ giúp bạn biết các phương pháp cũ mà bạn có thể gặp trong mã nguồn kế thừa.

Đoạn ghép chuỗi (Cách cơ bản nhưng rườm rà):

python Copy
name = "Alice"
age = 30
message = "Hello, " + name + ". Bạn đã " + str(age) + " tuổi."
print(message)  # Kết quả: Hello, Alice. Bạn đã 30 tuổi.

Cách này nhanh chóng trở nên khó khăn và dễ mắc lỗi.

Phương thức .format() (Cách linh hoạt):

python Copy
name = "Bob"
score = 95.5
message = "Hello, {}. Điểm của bạn là {:.1f}%.".format(name, score)
print(message)  # Kết quả: Hello, Bob. Điểm của bạn là 95.5%.

Cách này dễ đọc hơn so với đoạn ghép và cho phép định dạng (như :.1f cho một chữ số thập phân).

2. F-Strings: Cách hiện đại trong Python (Python 3.6+)

F-strings (chuỗi định dạng) là cách nhanh nhất, dễ đọc nhất và ngắn gọn nhất để định dạng chuỗi. Chỉ cần thêm tiền tố f hoặc F vào chuỗi của bạn và nhúng các biểu thức và biến trực tiếp bên trong dấu ngoặc nhọn {}.

Cú pháp cơ bản:

python Copy
name = "Charlie"
age = 25
message = f"Hello, {name}. Bạn đã {age} tuổi."
print(message)  # Kết quả: Hello, Charlie. Bạn đã 25 tuổi.

3. Sức mạnh của F-Strings: Biểu thức và định dạng

Sức mạnh thực sự của f-strings là bạn có thể đặt bất kỳ biểu thức Python hợp lệ nào bên trong dấu ngoặc nhọn.

Sử dụng biểu thức:

python Copy
price = 19.99
quantity = 3
total = f"Tổng cộng: ${price * quantity:.2f}"  # Tính toán và định dạng trong một bước
print(total)  # Kết quả: Tổng cộng: $59.97

Định dạng số:

Bạn có thể sử dụng các thông số định dạng bên trong dấu ngoặc nhọn để kiểm soát đầu ra.

python Copy
import math

number = 1234.5678

print(f"Làm tròn đến 2 chữ số thập phân: {number:.2f}")    # Kết quả: 1234.57
print(f"Phần trăm: {0.255:.1%}")                        # Kết quả: 25.5%
print(f"Hex: {255:#x}")                                   # Kết quả: 0xff
print(f"Pi: {math.pi:.3f}")                             # Kết quả: 3.142

4. Căn chỉnh và Đệm

F-strings cho phép bạn kiểm soát chính xác cách căn chỉnh và chiều rộng của văn bản, điều này rất lý tưởng để tạo ra các bảng hoặc báo cáo sạch sẽ.

python Copy
names = ["Alice", "Bob", "Charlie"]
scores = [95, 87, 100]

for name, score in zip(names, scores):
    # Căn trái tên trong 10 ký tự, căn phải điểm trong 5 ký tự
    print(f"{name:<10} | {score:>5}")

# Kết quả:
# Alice      |    95
# Bob        |    87
# Charlie    |   100
  • :<10 căn trái trong một trường rộng 10 ký tự.
  • :>5 căn phải trong một trường rộng 5 ký tự.
  • :^10 sẽ căn giữa văn bản.

5. Mẹo chuyên nghiệp: Gỡ lỗi và chuỗi nhiều dòng

F-strings có một số tính năng tuyệt vời giúp cuộc sống dễ dàng hơn.

Gỡ lỗi với =:

Thông số = in cả biểu thức và giá trị của nó, giúp bạn tiết kiệm thời gian cho việc gỡ lỗi.

python Copy
x = 10
y = 25
print(f"{x=}, {y=}, {x + y=}")  # Kết quả: x=10, y=25, x+y=35

F-Strings nhiều dòng:

Bạn có thể tạo các khối văn bản phức tạp được định dạng bằng cách sử dụng dấu ba nháy.

python Copy
name = "Báo cáo Dữ liệu"
value = 100
report = f"""
Báo cáo: {name}
===============
Giá trị: {value:>10}
Trạng thái: {'OK' if value > 50 else 'Kiểm tra'}
"""
print(report)

6. F-Strings và Slicing: Một sự kết hợp mạnh mẽ

Kết hợp kỹ năng slicing mới của bạn với f-strings để trình bày dữ liệu một cách mạnh mẽ.

python Copy
data = [10, 20, 30, 40, 50, 60, 70, 80, 90, 100]

# Hiển thị 3 mục đầu tiên và 3 mục cuối cùng một cách dễ đọc
summary = f"Dữ liệu bắt đầu với {data[:3]} và kết thúc với {data[-3:]}."
print(summary)
# Kết quả: Dữ liệu bắt đầu với [10, 20, 30] và kết thúc với [80, 90, 100].

Những điểm chính và Thực tiễn tốt nhất

  • Sử dụng f-strings cho gần như tất cả các định dạng chuỗi trong Python hiện đại (3.6+). Chúng là phương pháp dễ đọc và hiệu quả nhất.
  • Bạn có thể nhúng biểu thức, cuộc gọi hàm và tính toán trực tiếp bên trong {}.
  • Sử dụng các thông số định dạng (như :.2f) để kiểm soát định dạng số, căn chỉnh và đệm.
  • Sử dụng thông số = cho việc gỡ lỗi nhanh chóng và dễ dàng.
  • F-strings kết hợp mạnh mẽ với các kỹ năng khác, chẳng hạn như slicing, để tạo ra các tóm tắt động của dữ liệu của bạn.

Kết luận

Việc làm chủ f-strings sẽ giúp mã của bạn sạch hơn, chuyên nghiệp hơn và dễ dàng gỡ lỗi hơn. Đây là mảnh ghép cuối cùng trong việc biến dữ liệu thô thành đầu ra có ý nghĩa.

Tiếp theo: Bây giờ mà chúng ta có thể khéo léo thao tác và trình bày dữ liệu, hãy cùng tìm hiểu cách lưu trữ nó cho lần sau. Chúng ta sẽ khám phá Xử lý tệp trong Python: Đọc và ghi dữ liệu để lưu trữ kết quả của bạn qua nhiều lần chạy chương trình.

Aaron Rose là kỹ sư phần mềm và nhà văn công nghệ tại tech-reader.blog và là tác giả của Think Like a Genius.

Gợi ý câu hỏi phỏng vấn
Không có dữ liệu

Không có dữ liệu

Bài viết được đề xuất
Bài viết cùng tác giả

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào