【发布时间】:2016-06-11 07:19:51
【问题描述】:
我试图写一些东西来将句子中的每个单词大写。而且效果很好,如下:
print " ".join((word.capitalize() for word in raw_input().strip().split(" ")))
如果输入是“hello world”,则输出是:
Hello World
但我尝试用不同的方式写如下:
s = raw_input().strip().split(' ')
for word in s:
word.capitalize()
print ' '.join(s)
而且它的输出是错误的:
hello world
那有什么问题,为什么结果不一样?!谢谢。
【问题讨论】:
-
在您的第二个程序中,您将 s 中的一个单词的副本大写。不是 s 本身的单词。
-
字符串是不可变的,因此字符串方法不能修改原始字符串,它们总是返回一个新字符串。您的第二个代码 sn-p 没有保存该新字符串。顺便说一句,有一种更简单的方法可以将字符串中的每个单词大写:使用
str.title方法,例如'hello world'.title()。
标签: python string python-2.7 capitalization