python str和reper的區別

2021-08-01 13:54:43 字數 1268 閱讀 2975

儘管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) + 

'...'

>>> 

prints

the value of x 

is32.5, 

and y 

is40000...

>>> 

# the repr() of a string adds string quotes and backslashes:

... hello = 

'hello, world\n'

>>> hellos = repr(hello)

>>> 

printhellos

'hello, world\n'

>>> 

# the argument to repr() may be any python object:

... repr((x, y, (

'spam', 

'eggs')))

"(32.5, 40000, ('spam', 'eggs'))"

python str和repr的區別

儘管str repr 和 運算在特性和功能方面都非常相似,事實上repr 和 做的是完全一樣的事情,它們返回的是乙個物件的 官方 字 符串表示,也就是說絕大多數情況下可以通過求值運算 使用內建函式eval 重新得到該物件,但str 則有所不同。str 致力於生成乙個物件 的可讀性好的字串表示,它的返...

Python str字串和unicode字串

這就需要給出符號 二進位制之間的對映關係,而且必須是一一對映 即給定乙個符號,機器有而且有唯一的二進位制對應。根據字元得到二進位制表示是編碼過程 encode 根據二進位制表示得到字元是解碼過程 decode 剛開始的時候,給出了ascii標準,用乙個8bits位元組來表示字元。而且這個位元組實際上...

python str的全部函式

s hello python print s.upper str.upper 將所有字母變成大寫 結果 hello python print s.lower str.upper 將所有字母變成小寫 結果 hello python print s.swapcase str.swapcase 將大寫的字...