R% và s% làm gì trong python?

Tiền tố r trên chuỗi là viết tắt của “raw strings”

Các chuỗi tiêu chuẩn sử dụng dấu gạch chéo ngược cho các ký tự thoát

  • “\n” là một dòng mới, không phải dấu gạch chéo ngược-n

  • “\t” là một tab, không phải dấu gạch chéo ngược-t

  • “\u03C0” là chữ cái Hy Lạp pi, π, không phải dấu gạch chéo ngược-u-zero-ba-c-zero

và kể từ đó trở đi. Nếu bạn muốn sử dụng dấu gạch chéo ngược trong tên đường dẫn Windows, bạn

cần phải thoát khỏi chúng bằng cách nhân đôi

wbkName = '\\AA\\chart.xlsx'

Ngoài ra, bạn có thể sử dụng chuỗi thô, tắt hầu hết tất cả

của quá trình xử lý ký tự thoát

wbkName = r'\AA\chart.xlsx'

hoặc cuối cùng, và đây thường là cách được đề xuất, bạn chỉ cần sử dụng

dấu gạch chéo về phía trước, vì Windows cũng sẽ chấp nhận chúng

wbkName = '/AA/chart.xlsx'

In ra một chuỗi cố định như “Xin chào thế giới” rất đơn giản, nhưng thường không có giá trị lắm. Các chương trình Python hữu ích sử dụng phép nội suy chuỗi — nghĩa là chúng bao gồm các giá trị của một hoặc nhiều biến trong đầu ra của chúng

Định dạng chuỗi là cách tiếp cận tiêu chuẩn để in ra các chuỗi chứa các giá trị từ một chương trình một cách an toàn và thuận tiện. Trong bài viết này, chúng tôi khám phá định dạng chuỗi Python và hiển thị các ví dụ về cách nó được thực hiện trong các chương trình Python

Định dạng chuỗi là gì?

Định dạng chuỗi liên quan đến việc lấy một tập hợp các biến và sử dụng một biểu thức, định dạng chúng thành một chuỗi được cung cấp có chứa các trình giữ chỗ cho các biến đó. Python sử dụng hai kiểu định dạng chuỗi khác nhau. kiểu Python 2 cũ hơn dựa trên toán tử modulo (%) và kiểu Python 3 mới hơn sử dụng dấu ngoặc nhọn và dấu hai chấm

Định dạng chuỗi tiêu chuẩn của Python sử dụng toán tử modulo (dấu phần trăm) làm ký hiệu đặc biệt để biểu thị các loại định dạng khác nhau. Có mức độ tương đồng cao giữa toán tử % và hàm chuỗi định dạng printf trong ngôn ngữ lập trình C

Đây là một ví dụ về định dạng chuỗi Python

R% và s% làm gì trong python?
R% và s% làm gì trong python?

Các giá trị %d và %s ở đây đóng vai trò là từ khóa để chỉ ra vị trí cần đặt các biến sau toán tử %

Bây giờ chúng ta sẽ đề cập đến cách sử dụng các từ xác định đối số, chẳng hạn như %s và %d từ ví dụ trên. Mặc dù chúng tôi sẽ tập trung cụ thể vào việc chuyển đổi chuỗi và số, nhưng bạn sẽ cần đọc hướng dẫn chính thức của Python về định dạng để có thêm thông tin chuyên sâu về các toán tử modulo chuỗi và các loại chuyển đổi

Các phương pháp hay nhất để sử dụng %s và %d trong Python

Các chỉ định chuyển đổi như %s và %d xuất hiện trong chuỗi định dạng dưới dạng "phần giữ chỗ" cùng với văn bản thông thường. Các chỉ định này chỉ ra cách hoạt động sẽ định dạng các giá trị được chèn.  

Bây giờ, hãy xem lại ví dụ đầu tiên mà chúng ta đã xem xét, lần này tập trung vào các chỉ định chuyển đổi trong chuỗi định dạng — trong trường hợp này là %d và %s

R% và s% làm gì trong python?
R% và s% làm gì trong python?

Khi kiểm tra dòng đầu tiên, bạn sẽ nhận thấy rằng %d trong chuỗi định dạng tương ứng với một số trong bộ dữ liệu, trong khi các từ xác định %s sau đây tương ứng với các giá trị chuỗi trong bộ dữ liệu. Các câu lệnh như %s và %d được gọi là các loại chuyển đổi hoặc các dấu hiệu cho phép toán tử biết loại giá trị mong đợi trong bộ dữ liệu.  

While a conversion specifier’s basic structure looks like %, it can also contain any of the components referred to as flags, width and precision:

R% và s% làm gì trong python?
R% và s% làm gì trong python?

Các thành phần này cho phép kiểm soát tốt hơn việc hiển thị các loại chuyển đổi nhất định, nhưng vẫn là tùy chọn. Chỉ ký hiệu modulo và loại chuyển đổi là bắt buộc. Mặc dù có thể tìm thấy các chi tiết về nhiều loại chuyển đổi khác nhau trong hướng dẫn Real Python này, nhưng chúng tôi sẽ chỉ tập trung vào hai loại chuyển đổi phổ biến. %s và %d

Cách sử dụng %s

Có ba loại định dạng trong Python liên quan đến chuỗi. Trong khi s, r và một đầu ra chuỗi tạo ra bằng cách sử dụng các hàm tích hợp str(), repr() và ascii() tương ứng, thì s cho đến nay được gọi nhiều nhất. Trên thực tế, hầu như bạn sẽ luôn sử dụng python s khi chèn một chuỗi

R% và s% làm gì trong python?
R% và s% làm gì trong python?

Về cơ bản, %s yêu cầu trình định dạng gọi hàm str() trên đối số để thực hiện str(arg) về cơ bản

Khi sử dụng nhiều thay thế — chuỗi hoặc cách khác — trong một bộ, điều quan trọng cần nhớ là vị trí của các chuỗi trong bộ sẽ ảnh hưởng đến vị trí chúng sẽ được chèn vào. Ví dụ: nếu chúng ta chuyển đổi xung quanh các chuỗi trong bộ mẫu của mình, chúng ta sẽ nhận được đầu ra không có ý nghĩa

R% và s% làm gì trong python?
R% và s% làm gì trong python?

Bạn cũng có thể lưu một chuỗi vào một biến và sử dụng tên biến đó trong bộ

R% và s% làm gì trong python?
R% và s% làm gì trong python?

Lưu ý cách không có tuple trong ví dụ trên; . Nhớ lại rằng toán tử modulo chỉ nhận một đối số. Nó thường ở dạng một bộ, nhưng nếu bạn chỉ có một phép thay thế, thì biến đơn lẻ đó có thể đóng vai trò là đối số

Cách sử dụng %d

Khi bạn cần chuyển đổi một số, rất có thể bạn sẽ sử dụng %d. Chữ thập phân. Cũng như chuỗi, có một số loại biểu thị số. d, i và u tương đương về chức năng. Tất cả chúng đều chuyển đổi đối số đã chỉ định thành biểu diễn chuỗi của giá trị số hoặc thập phân, giúp bạn không phải truyền str(int(arg))

R% và s% làm gì trong python?
R% và s% làm gì trong python?

Trong ba loại, hầu như bạn sẽ luôn sử dụng %d để truyền số dưới dạng chuỗi trong định dạng chuỗi Python. Sự khác biệt kỹ thuật giữa %s và %d đơn giản là %d gọi int() trên đối số trước khi gọi str()

Tất nhiên, bạn không thể gọi int()  trên một chuỗi hoặc bất kỳ thứ gì khác ngoài một số. Vì vậy, nếu bạn sử dụng nhiều loại trong hoạt động của mình nhưng trộn lẫn thứ tự của bộ dữ liệu, thì bạn sẽ tạo ra một ngoại lệ

R% và s% làm gì trong python?
R% và s% làm gì trong python?

Điều này sẽ không in 'Hawaii đã đi đến 7 con dê', nhưng thay vào đó sẽ dẫn đến lỗi. Điều này là do Python nhận ra rằng 'Hawaii' không phải là một số

Các tình huống sử dụng khác cho %s và %d

Bây giờ, hãy xem xét các chuyển đổi phức tạp hơn cho cả %s và %d bằng cách sử dụng từ điển

Hãy nhớ thứ tự trong bộ quan trọng như thế nào khi chuyển một số giá trị vào chuỗi định dạng của bạn? . Nếu muốn sử dụng từ điển để theo dõi các biến, bạn có thể chuyển ánh xạ tới toán tử làm đối số của nó và sử dụng thay thế biến theo tên trong chuỗi định dạng của bạn

R% và s% làm gì trong python?
R% và s% làm gì trong python?

Lưu ý cách ký hiệu modulo đứng trước một trình xác định chuyển đổi là một trong các khóa từ điển trong ngoặc đơn. Tên khóa này lần lượt theo sau là loại chuyển đổi. Sử dụng kỹ thuật này, bạn có thể chỉ định các giá trị được chèn theo thứ tự bất kỳ

R% và s% làm gì trong python?
R% và s% làm gì trong python?

Bây giờ chúng ta đã hiểu rõ về các định dạng chuỗi Python bằng cách sử dụng toán tử modulo, hãy xem xét một số lỗi phổ biến và cách chúng ta có thể tránh chúng

Các lỗi thường gặp khi sử dụng %s và %d

Một loạt lỗi phổ biến có thể xảy ra khi sử dụng %s. Chúng ta đã xem xét việc xáo trộn thứ tự các giá trị trong bộ dữ liệu có thể gây ra ngoại lệ do sự không tương thích về loại như thế nào, nhưng có những sự kết hợp khác liên quan đến bộ dữ liệu và từ điển có thể tạo ra lỗi. Chúng thường liên quan đến các vấn đề về độ dài trong bộ dữ liệu và các biến bị đặt tên sai trong từ điển

Những lỗi phổ biến này, cùng với các lựa chọn thay thế định dạng chuỗi mới hơn, đã khiến Python không chú trọng đến “kiểu cũ” của định dạng modulo, mặc dù nó vẫn được hỗ trợ bởi các phiên bản mới nhất của Python và đó sẽ là trường hợp trong tương lai gần.  

Ngay cả khi bạn thích toán tử modulo hơn, bạn nên biết về các tùy chọn khác theo ý của mình để tránh lỗi

Dây F

Trăn 3. 6 đã giới thiệu một định dạng chuỗi Python mới được gọi là chuỗi ký tự được định dạng hoặc chuỗi f. Một chuỗi f giống như một chuỗi lưu thông thường cho hai tính năng. nó được thêm vào trước bởi ký tự f và sử dụng các biểu thức kèm theo — nghĩa là các biến trong dấu ngoặc nhọn sẽ được thay thế ở đầu ra

R% và s% làm gì trong python?
R% và s% làm gì trong python?

Khi chạy, biểu thức được chuyển đổi thành biểu diễn chuỗi và được chèn vào chuỗi gốc ở vị trí đó

str. định dạng()

Hàm này đại diện cho “kiểu mới” của định dạng chuỗi. Sử dụng phương pháp này, gọi. format() trên một đối tượng chuỗi tạo ra định dạng mong muốn

R% và s% làm gì trong python?
R% và s% làm gì trong python?

Sử dụng chức năng định dạng trở nên phức tạp;

R% và s% làm gì trong python?
R% và s% làm gì trong python?

Có một số khác biệt giữa một số Python. format() các kiểu trình bày và các kiểu chuyển đổi toán tử modulo chuỗi, nhưng quá nhỏ so với phạm vi của bài viết này

Tìm hiểu thêm

Trong bài viết này, chúng ta đã xem xét tầm quan trọng của định dạng chuỗi, cũng như cách sử dụng toán tử modulo và các phương pháp hay nhất để sử dụng các loại chuyển đổi %s và %d. Chúng tôi cũng đề cập đến các phương pháp định dạng chuỗi mới hơn mà các nhà phát triển Python có sẵn.  

Định dạng chuỗi chỉ là một kỹ năng phức tạp nhưng bổ ích mà bạn cần thành thạo với tư cách là một lập trình viên Python. Với rất nhiều thông tin có giá trị và hướng dẫn đẳng cấp thế giới có sẵn trực tuyến, không có lý do gì để bạn tụt lại phía sau. Trong khóa học của chúng tôi về Giới thiệu về lập trình, chúng tôi đề cập đến định dạng chuỗi và nhiều công cụ khác mà bạn sẽ cần để phát triển trong thế giới Python

R %R trong Python là gì?

Sử dụng %r để gỡ lỗi, vì nó hiển thị dữ liệu "thô" của biến , nhưng những dữ liệu khác được sử dụng để hiển thị cho người dùng. Đó là cách hoạt động của định dạng %r; . Đó là định dạng "thô" để gỡ lỗi. Ở đây \n được sử dụng để hiển thị cho người dùng không hoạt động.

S %% trong Python là gì?

Các phương pháp hay nhất để sử dụng %s và %d trong Python . Các chỉ định này chỉ ra cách hoạt động sẽ định dạng các giá trị được chèn. Conversion specifiers such as %s and %d appear in the format string as “placeholders” along with normal text. These specifiers dictate how the operation will format the inserted values.

Sự khác biệt giữa R và %r trong Python là gì?

Cả hai ngôn ngữ lập trình nguồn mở R và Python đều có cơ sở người dùng khá lớn. . R đấu với Python