将 (Python) 中的单词大写?
Capitalizing words in (Python)?
我试图写一些东西来将句子中的每个单词大写。而且效果很好,如下:
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 = raw_input().strip().split(' ')
new_s = ''
for word in s:
new_s += s.capitalize()
print new_s
或者,如果您使用 enumerate 遍历列表并更新 s
:
s = raw_input().strip().split(' ')
for index, word in enumerate(s):
s[index] = .capitalize()
print ' '.join(s)
但是将字符串中的单词大写的最佳方法是使用 str.title() - 字符串中单词大写的方法:
s = 'hello word'
print(s.title())
字符串是 immutable
并且您正在尝试更新不可能的相同值。
创建一个新字符串并以这种方式更新。
s = raw_input().strip().split(' ')
st = ''
for word in s:
st+= word.replace(word,word.capitalize())
print ''.join(st)
或者
print " ".join([i.capitalize() for i in raw_input().strip().split(" ")])
print ' '.join([i.capitalize() for i in raw_input('Enter text here:').split(' ')])
这会解决你的问题。
我试图写一些东西来将句子中的每个单词大写。而且效果很好,如下:
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 = raw_input().strip().split(' ')
new_s = ''
for word in s:
new_s += s.capitalize()
print new_s
或者,如果您使用 enumerate 遍历列表并更新 s
:
s = raw_input().strip().split(' ')
for index, word in enumerate(s):
s[index] = .capitalize()
print ' '.join(s)
但是将字符串中的单词大写的最佳方法是使用 str.title() - 字符串中单词大写的方法:
s = 'hello word'
print(s.title())
字符串是 immutable
并且您正在尝试更新不可能的相同值。
创建一个新字符串并以这种方式更新。
s = raw_input().strip().split(' ')
st = ''
for word in s:
st+= word.replace(word,word.capitalize())
print ''.join(st)
或者
print " ".join([i.capitalize() for i in raw_input().strip().split(" ")])
print ' '.join([i.capitalize() for i in raw_input('Enter text here:').split(' ')])
这会解决你的问题。