pythonreprstr
1. python repr和str有什麼區別
函數str() 用於將值轉化為適於人閱讀的形式,而repr() 轉化為供解釋器讀取的形式
內建函數str()和repr() (representation,表達,表示)或反引號操作符(``)可以方便地以字元串的方式獲取對象的內容、類型、數值屬性等信息。
str()函數得到的字元串可讀性好(故被print調用)
repr()函數得到的字元串通常可以用來重新獲得該對象,通常情況下 obj==eval(repr(obj)) 這個等式是成立的。這兩個函數接受一個對象作為其參數,返回適當的字元串。
事實上repr()和``做一樣的事情,返回一個對象的「官方」字元串表示。其結果絕大多數情況下(不是所有)可以通過求值運算(內建函數eval())重新得到該對象。
str()則不同,它生成一個對象的可讀性好的字元串表示,結果通常無法用eval()求值,但適合print輸出。
2. python __repr__的作用
1,嘗試生成這樣一個字元串,將其傳給 eval可重新生成同樣的對象 。
2,否則,生成用尖括弧包住的字元串,包含類型名和額外的信息。
3. 新手程序員學習python編程需要了解哪些技巧
python編程開發技術是目前比較熱門的編程語言之一了,而對於大多數新接觸python編程的程序員來說,如果能夠掌握一定的編程技巧的話會大大降低我們掌握python編程的難度,下面IT培訓http://www.kmbdqn.cn/就一起來了解一下具體內容吧。
建議1:理解Pythonic概念
建議2:編寫Pythonic代碼
建議3:理解Python與C語言的不同之處
建議4:在代碼中適當添加註釋
建議5:通過適當添加空行使代碼布局更為優雅、合理
建議6:編寫函數的4個原則
建議7:將常量集中到一個文件
建議8:利用assert語句來發現問題
建議9:數據交換值的時候不推薦使用中間變數
建議10:充分利用Lazyevaluation的特性
建議11:理解枚舉替代實現的缺陷
建議12:不推薦使用type來進行類型檢查
建議13:盡量轉換為浮點類型後再做除法
建議14:警惕eval()的安全漏洞
建議15:使用enumerate()獲取序列迭代的索引和值
建議16:分清=與is的適用場景
建議17:考慮兼容性,盡可能使用Unicode
建議18:構建合理的包層次來管理mole
建議19:有節制地使用from?import語句
建議20:優先使用absoluteimport來導入模塊
建議21:i+=1不等於++i
建議22:使用with自動關閉資源
建議23:使用else子句簡化循環(異常處理)
建議24:遵循異常處理的幾點基本原則
建議25:避免finally中可能發生的陷阱
建議26:深人理解None,正確判斷對象是否為空
建議27:連接字元串應優先使用join而不是+
建議28:格式化字元串時盡量使用.format方式而不是%
建議29:區別對待可變對象和不可變對象
建議30:[]、()和{}:一致的容器初始化形式
建議31:記住函數傳參既不是傳值也不是傳引用
建議32:警惕默認參數潛在的問題
建議33:慎用變長參數
建議34:深入理解str()和repr()的區別
4. Python 中 str 和 repr 的區別
盡管str(),repr()和``運算在特性和功能方面都非常相似,事實上repr()和``做的是完全一樣的事情,它們返回的是一個對象的「官方」字元串表示,也就是說絕大多數情況下可以通過求值運算(使用內建函數eval())重新得到該對象。
但str()則有所不同,str()致力於生成一個對象的可讀性好的字元串表示,它的返回結果通常無法用於eval()求值,但很適合用於print語句輸出。需要再次提醒的是,並不是所有repr()返回的字元串都能夠用 eval()內建函數得到原來的對象。 也就是說 repr() 輸出對 Python比較友好,而str()的輸出對用戶比較友好。
雖然如此,很多情況下這三者的輸出仍然都是完全一樣的。 大家可以看下下面的代碼,來進行對比
>>> s = 'Hello, world.'
>>> str(s)
'Hello, world.'
>>> repr(s)
"'Hello, world.'"
>>> str(0.1)
'0.1'
>>> repr(0.1)
'0.10000000000000001'
>>> x = 10 * 3.25
>>> y = 200 * 200
>>> s = 'The value of x is ' + repr(x) + ', and y is ' + repr(y) + '...'
>>> print s
The value of x is 32.5, and y is 40000...
>>> # The repr() of a string adds string quotes and backslashes:
... hello = 'hello, world\n'
>>> hellos = repr(hello)
>>> print hellos
'hello, world\n'
>>> # The argument to repr() may be any Python object:
... repr((x, y, ('spam', 'eggs')))
"(32.5, 40000, ('spam', 'eggs'))"
5. 在python中int、str、repr分別是什麼函數類順便問下:類是什麼請大神指教。
int、str 都是類
repr是函數。
仔細的講,內容還是比較多,函數和類在培訓班可以講一兩節課的。
通俗的講:
函數就是若干腳本語句的集合,執行這個函數,就執行了這些語句。
類就是多個函數的集合。
實際操作就還需要很多的概念支持,比如實例化對象、參數傳遞、變數作用域、可變不可變變數操作、返回值,等等等等。
6. 菜鳥求大大們解釋Python里str函數和repr函數的區別
GG上有結果,轉過來,順便我自己也看看。
str()一般是將數值轉成字元串。
repr()是將一個對象轉成字元串顯示,注意只是顯示用,有些對象轉成字元串沒有直接的意思。
如list,dict使用str()是無效的,但使用repr可以,這是為了看它們都有哪些值,為了顯示之用。
EG:
>>>s='Hello,world.'
>>>str(s)
'Hello,world.'
>>>repr(s)
'Hello,world.'
>>>str(0.1)
'0.1'
>>>repr(0.1)
'0.10000000000000001'
>>>x=10*3.25
>>>y=200*200
>>>s='Thevalueofxis'+repr(x)+',andyis'+repr(y)+'...'
>>>prints
Thevalueofxis32.5,andyis40000...
>>>#Therepr():
...hello='hello,world '
>>>hellos=repr(hello)
>>>printhellos
'hello,world '
>>>#Theargumenttorepr()maybeanyPythonobject:
...repr((x,y,('spam','eggs')))
"(32.5,40000,('spam','eggs'))"
>>>#:
...`x,y,('spam','eggs')`
"(32.5,40000,('spam','eggs'))"
7. Python里str函數和repr函數有什麼區別
這個簡單
str是顯示給用戶用的
repr是給機器用的。
class
A(object):
def
__str__(self):
print
"this
is
A
class"
def
__repr__(self):
print
"this
is
repr
func"
a
=
A()
比如print
a
調用的是a的__str__方法
而如果你在python解釋器里直接敲a後回車,調用的是a.__repr__()方法
8. python str() 和 repr() 出現bug了
在python2中,數字以0開頭的表示8進制,所以
0521 = 5 × 64 + 2 × 8 + 1 = 337
repr返回的是表達式的字元串表示,而在交互模式下直接輸入表達式的效果是 print repr(expr)
repr(0521) == '337',而repr(repr(0521)) == "'337'"。
所以輸出的結果等效與下面的:
>>>repr(0521)#相當於printrepr(repr(0521))
'337'
>>>x=0521
>>>x#相當於printrepr(x)
337
9. python str和repr的區別
盡管str(),repr()和``運算在特性和功能方面都非常相似,事實上repr()和``做的是完全一樣的事情,它們返回的是一個對象的「官方」字元串表示,也就是說絕大多數情況下可以通過求值運算(使用內建函數eval())重新得到該對象。
但str()則有所不同,str()致力於生成一個對象的可讀性好的字元串表示,它的返回結果通常無法用於eval()求值,但很適合用於print語句輸出。需要再次提醒的是,並不是所有repr()返回的字元串都能夠用 eval()內建函數得到原來的對象。 也就是說 repr() 輸出對 Python比較友好,而str()的輸出對用戶比較友好。