如果字符串显然是title-case,为什么istitle()字符串方法返回false?

时间:2010-07-27 13:40:00

标签: python string

istitle()字符串方法中,Python 2.6.5手册内容为:

  

如果字符串是一个带有标题的字符串并且至少有一个字符,则返回true,例如,大写字符可能只跟随无字符的字符,而小写字符只能跟随字符。否则返回false。

但在这种情况下,它返回false:

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

我错过了什么?

4 个答案:

答案 0 :(得分: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

答案 1 :(得分:7)

方法title()不会改变字符串(字符串在Python中是不可变的)。它会创建一个必须分配给变量的新字符串:

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

答案 2 :(得分:3)

可能是因为你还在原书上叫istitle()。

尝试book.title()。istitle()而不是......

答案 3 :(得分:1)

执行以下操作:

print book

执行book.title()之后。您会看到book未发生变化。

原因是book.title()创建了一个新字符串。名称book仍然引用原始字符串。