Nội suy chuỗi Python

Trong bài này chúng ta sẽ tìm hiểu về phép nội suy chuỗi python. Python hỗ trợ nhiều cách để định dạng chuỗi văn bản và những cách này bao gồm% -formatting, sys.format (), string.Template và f-string.

Nội suy chuỗi là một quá trình thay thế các giá trị của các biến thành các trình giữ chỗ trong một chuỗi. Ví dụ: nếu bạn có một mẫu để chào một người như "Xin chào (Tên người), rất vui được gặp bạn!", Bạn muốn thay thế trình giữ chỗ cho tên người bằng tên thực. Quá trình này được gọi là nội suy chuỗi.

chuỗi f

Python 3.6 đã thêm phương pháp nội suy chuỗi mới được gọi là nội suy chuỗi theo nghĩa đen và giới thiệu một tiền tố theo nghĩa đen mới f. Cách định dạng chuỗi mới này rất mạnh mẽ và dễ sử dụng. Nó cung cấp quyền truy cập vào các biểu thức Python được nhúng bên trong các hằng số chuỗi.

Ví dụ 1:

 name = 'World' program = 'Python' print(f'Hello (name)! This is (program)')

Khi chúng tôi chạy chương trình trên, kết quả đầu ra sẽ là

Chào thế giới! Đây là Python

Trong ví dụ trên, tiền tố nghĩa đen fyêu cầu Python khôi phục giá trị của hai chuỗi tên biến và chương trình bên trong dấu ngoặc nhọn (). Vì vậy, khi chúng printta nhận được kết quả đầu ra ở trên.

Phép nội suy chuỗi mới này rất mạnh mẽ vì chúng ta có thể nhúng các biểu thức Python tùy ý mà chúng ta thậm chí có thể thực hiện số học nội tuyến với nó.

Ví dụ 2:

 a = 12 b = 3 print(f'12 multiply 3 is (a * b).')

Khi chúng tôi chạy chương trình trên, kết quả đầu ra sẽ là

 12 nhân 3 là 36.

Trong chương trình trên, chúng tôi đã thực hiện số học nội tuyến mà chỉ có thể thực hiện được với phương pháp này.

%-format

Các chuỗi trong Python có một hoạt động tích hợp độc đáo có thể được truy cập bằng %toán tử. Sử dụng %chúng ta có thể thực hiện nội suy chuỗi đơn giản rất dễ dàng.

Ví dụ 3:

 print("%s %s" %('Hello','World',))

Khi chúng tôi chạy chương trình trên, kết quả đầu ra sẽ là

 Chào thế giới

Trong ví dụ trên, chúng tôi đã sử dụng hai mã %sđịnh dạng chuỗi và hai chuỗi HelloWorldtrong dấu ngoặc đơn (). Chúng tôi có Hello Worldđầu ra. %sbộ định dạng chuỗi cho Python biết nơi thay thế giá trị.

Cú pháp định dạng chuỗi thay đổi một chút, nếu chúng ta muốn thực hiện nhiều thay thế trong một chuỗi duy nhất và vì %toán tử chỉ nhận một đối số, chúng ta cần bao bọc phía bên phải trong một bộ như được hiển thị trong ví dụ bên dưới.

Ví dụ 4:

 name = 'world' program ='python' print('Hello %s! This is %s.'%(name,program))

Khi chúng tôi chạy chương trình trên, kết quả đầu ra sẽ là

Chào thế giới! Đây là trăn.

Trong ví dụ trên, chúng tôi đã sử dụng hai tên biến chuỗi và chương trình. Chúng tôi bao gồm cả hai biến trong ngoặc đơn ().

Cũng có thể tham chiếu đến các thay thế biến theo tên trong chuỗi định dạng của chúng tôi, nếu chúng tôi chuyển một ánh xạ tới %toán tử:

Ví dụ 5:

 name = 'world' program ='python' print(‘Hello %(name)s! This is %(program)s.’%(name,program))

Khi chúng tôi chạy chương trình trên, kết quả đầu ra sẽ là

Chào thế giới! Đây là trăn.

Điều này làm cho các chuỗi định dạng của chúng tôi dễ bảo trì hơn và dễ sửa đổi hơn trong tương lai. Chúng ta không phải lo lắng về thứ tự của các giá trị mà chúng ta đang truyền với thứ tự của các giá trị được tham chiếu trong chuỗi định dạng.

Str.format ()

Trong định dạng chuỗi này, chúng tôi sử dụng format()hàm trên một đối tượng chuỗi và dấu ngoặc nhọn (), đối tượng chuỗi trong format()hàm được thay thế cho dấu ngoặc nhọn (). Chúng ta có thể sử dụng format()hàm để thực hiện định dạng vị trí đơn giản, giống như %định dạng.

Ví dụ 6:

 name = 'world' print('Hello, ()'.format(name))

Khi chúng tôi chạy chương trình trên, kết quả đầu ra sẽ là

 Chào thế giới

Trong ví dụ này, chúng tôi sử dụng dấu ngoặc nhọn ()format()hàm để truyền đối tượng tên. Chúng tôi lấy giá trị của tên thay cho dấu ngoặc nhọn ()ở đầu ra.

Chúng tôi có thể tham khảo các thay thế có thể thay thế của chúng tôi theo tên và sử dụng chúng theo bất kỳ thứ tự nào chúng tôi muốn. Đây là một tính năng khá mạnh mẽ vì nó cho phép sắp xếp lại thứ tự hiển thị mà không thay đổi các đối số được truyền vào hàm định dạng.

Ví dụ 7:

 name = 'world' program ='python' print('Hello (name)!This is(program).'.format(name=name,program=program))

Khi chúng tôi chạy chương trình trên, kết quả đầu ra sẽ là

 Xin chào thế giới! Đây là trăn.

In this example we specified the variable substitutions place using the name of variable and pass the variable in format().

Template Strings

Template Strings is simpler and less powerful mechanism of string interpolation. We need to import Template class from Python’s built-in string module to use it.

Example 8:

 from string import Template name = 'world' program ='python' new = Template('Hello $name! This is $program.') print(new.substitute(name= name,program=program))

When we run the above program, the output will be

 Hello world! This is python.

In this example we import Template class from built-in string module and made a template which we used to pass two variable.

Key Points to Remember:

  1. %-format method is very old method for interpolation and is not recommended to use as it decrease the code readability.
  2. In str.format() method we pass the string object to the format() function for string interpolation.
  3. Trong phương pháp mẫu, chúng tôi tạo mẫu bằng cách nhập lớp mẫu từ mô-đun chuỗi tích hợp sẵn.
  4. Phương pháp nội suy chuỗi chữ là phương pháp nội suy mạnh, dễ sử dụng và tăng khả năng đọc mã.

thú vị bài viết...