簡體   English   中英

%r在格式字符串中做什么?

[英]What does %r do in a format string?

我正在做一個代碼來接受某些文件路徑作為命令行參數,然后想看看%r的作用...我嘗試了幾件事,請仔細閱讀以下代碼,讓我知道%r說明符的工作原理以及為什么在頁前有'\\'。

string1 = "C:\raint\new.txt"

string2 = "%r"%string1
string3 = string2[1:-1]

print "Input String: ",string2           
print "Raw String: ",string3  

string1 = "C:\raint\pint.txt"

string2 = "%r"%string1
string3 = string2[1:-1]

print "Input String: ",string2           
print "Raw String: ",string3            

Output:

Input String: 'C:\raint\new.txt'
Raw String: C:\raint\new.txt
Input String: 'C:\raint\\pint.txt'
Raw String: C:\raint\\pint.txt

正如其他格式化程序一樣,它是字符串格式化程序,例如%s表示字符串,%d表示整數。 本質上,當您遇到%s或%r之類的格式化程序時,將在該對象上調用特定方法。 如果是%s,則為str()方法;如果為%r,則為repr()方法。 一些好的參考資源是:

  1. str和repr之間的差異
  2. Python3文件
  3. 格式化程序的相關資料

%r使用repr()函數進行轉換。 它返回對象的精確表示。 使用repr()大多數數據類型具有相似的輸出,但是我們可以在下面找到區別。

>>> import datetime
>>> date = datetime.date.today()
>>> date
datetime.date(2019, 7, 3)
>>> str(date)
'2019-07-03'
>>> repr(date)
'datetime.date(2019, 7, 3)'

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM