2010-07-27 20 views
3

istitle()字符串的方法中,所述的Python 2.6.5手動讀取:爲什麼istitle()字符串方法返回false,如果字符串顯然是在標題大小寫?

返回真,如果該字符串是一個titlecased串並有至少一個字符,例如大寫字符可以僅按照無套管字符和小寫字符只包含一個。否則返回false。

但在這種情況下,它返回false:

>>> book = 'what every programmer must know' 
>>> book.title() 
'What Every Programmer Must Know' 
>>> book.istitle() 
False 

我缺少什麼?

回答

6

方法title()不會改變字符串(字符串在Python中是不可變的)。它會創建一個新的字符串,您必須將其分配給您的變量:

>>> book = 'what every programmer must know' 
>>> book = book.title() 
>>> book.istitle() 
True 
+0

謝謝。我應該知道的! – systemovich 2010-07-27 13:51:50

3

可能是因爲你仍然在原書上調用istitle()。

嘗試book.title()。istitle()代替....

8

book.title()不會改變變量book。它只是在標題情況下返回字符串。

>>> book.title() 
'What Every Programmer Must Know' 
>>> book    # still not in title case 
'what every programmer must know' 
>>> book.istitle() # hence it returns False. 
False 
>>> book.title().istitle() # returns True as expected 
True 
+0

好吧,那就是我錯過的!謝謝。文檔實際上確實說.title()返回字符串的一個版本。 – systemovich 2010-07-27 13:48:56

1

執行以下操作:

print book 

你做book.title()後。你會看到book沒有改變。

原因是book.title()創建了一個新的字符串。名稱book仍指原始字符串。

相關問題