Bạn muốn thêm một giá trị vào chuỗi Python? Bạn không cần tìm xa hơn toán tử %s. Toán tử này cho phép bạn định dạng một giá trị bên trong chuỗi. Cú pháp %s tinh tế hơn toán tử nối mà bạn có thể đã quen.
Trong hướng dẫn này, chúng ta nói về ý nghĩa của ký hiệu %s và cách nó hoạt động. Chạy qua một ví dụ của toán tử này để giúp bạn học cách sử dụng trong mã.
Toán tử %s là gì?
Toán tử %s thêm một chuỗi vào bên trong chuỗi khác.
Ở đây, chúng ta viết một chương trình tính tốc độ trung bình một chiếc xe đi để đến đích. Để tính thông tin này, sử dụng công thức:
speed = distance / time
Bắt đầu bằng cách yêu cầu người dùng khoảng cách họ đi, thời gian đến đích, và họ đi đâu:
distance = input("How far did you travel (in miles)? ")
time = input("How long did it take you to reach your destination (in hours)? ")
where = input("Where were you going? ")
Tiếp theo, tính tốc độ trung bình người dùng di chuyển:
speed = round(float(distance) / float(time), 2)
Chúng ta đã chuyển giá trị "distance" và "time" thành số thực để thực hiện phép tính học. Chúng ta cũng làm tròn kết quả tính tốc độ đến hai chữ số thập phân.
Bây giờ đã tính được giá trị này, chúng ta thông báo cho người dùng trong console Python về tốc độ trung bình. Để làm điều này, sử dụng định dạng chuỗi:
print("On your journey to %s, you drove at an average speed of %s miles per hour." % (where, speed))
Có ba phần trong cú pháp %s của chúng ta:
- Toán tử %s là nơi giá trị chuỗi được thêm vào.
- % (where, speed) là nơi chúng ta chỉ định giá trị nào nên được thêm vào chuỗi.
Số lượng giá trị bạn muốn thêm vào chuỗi phải bằng số lượng được chỉ định trong ngoặc đơn sau toán tử % ở cuối chuỗi. Nếu không, bạn sẽ gặp lỗi TypeError: not enough arguments for format string.
Trong mã của chúng ta, chúng ta thêm hai giá trị vào chuỗi. Chúng ta dùng toán tử %s hai lần và có hai giá trị trong ngoặc đơn sau dấu % ở cuối chuỗi.
Chạy chương trình:
How far did you travel? 63 How long did it take you to reach your destination? 2 Where were you going? London On your journey to London, you drove at an average speed of 31.5 miles per hour.
Mã tính thành công tốc độ trung bình.
Toán tử %s tự động chuyển đổi giá trị thành chuỗi. Điều này có nghĩa là chúng ta không phải thay đổi kiểu dữ liệu liên kết với "speed" khi định dạng giá trị.
Cú pháp định dạng chuỗi %
Có nhiều hơn chỉ toán tử %s trong cú pháp định dạng chuỗi %. Bạn cũng có thể dùng cú pháp % để định dạng số trong chuỗi.
Để tìm hiểu thêm về định dạng số bằng cú pháp % formatting, hãy đọc tài liệu Python về định dạng chuỗi. Chúng ta cũng đã viết hướng dẫn về cách làm tròn giá trị đến hai chữ số thập phân dùng toán tử %.
Phương pháp định dạng chuỗi mới hơn
Với sự ra mắt cú pháp format() trong Python 2.6, toán tử định dạng chuỗi % đã mất sự ưa chuộng của nhiều lập trình viên.
Điều này là do cú pháp định dạng được cho là mạnh mẽ hơn. Thêm vào đó, cú pháp format() không quá khó sử dụng. Xét câu lệnh sau:
print("On your journey to {}, you drove at an average speed of {} miles per hour.".format(where, speed))
Câu lệnh này in cùng thông báo chúng ta tạo ra từ trước. Chúng ta dùng cú pháp .format() để thêm giá trị "where" và "speed" vào chuỗi.
Cú pháp .format() cho phép bạn làm những việc như đặt tên cho mỗi giá trị bạn muốn thêm vào chuỗi. Các tính năng này không được cung cấp bởi cú pháp %s.
Trong Python 3, f-string được giới thiệu như một phương án thay thế khác cho cú pháp %. F-string là cách dễ dàng để nhúng giá trị hoặc biểu thức vào chuỗi bằng chữ chuỗi (string literals). Bạn có thể tìm hiểu thêm về f-string trong bài viết về Python 3 f-strings.
Kết luận
Toán tử %s cho phép bạn thêm giá trị vào chuỗi Python. %s biểu thị bạn muốn thêm giá trị chuỗi vào chuỗi. Toán tử % có thể dùng với các cấu hình khác, như %d, để định dạng các kiểu giá trị khác nhau.
Trong các phiên bản Python hiện đại, cú pháp % đã ít được sử dụng rộng rãi hơn so với f-string và phương thức format().
Bây giờ bạn đã trang bị kiến thức cần thiết để sử dụng toán tử %s trong mã như một nhà phát triển Python chuyên nghiệp!