String使用python进行大写

时间:2016-11-21 14:32:46

标签: python string

现在我在HackRank做一个关于字符串操作的非常小的问题,就像家庭作业转储一样。问题是将一个给定的字符串变为大写,他们提到了他们的问题,如下所示

给你一个字符串。你的任务是将S的每个单词都大写。

输入格式

包含字符串S。

的单行输入

约束

0< len(s) <1000

该字符串由字母数字字符和空格组成。 输出格式

示例输入

hello world

示例输出

Hello World

我在这里做过我从python写了两行脚本然后我提交了它  他们说这是一个错误的答案,但我不明白为什么我的代码遵循

l=list(map(str.capitalize,input().strip(' ').split()))
print(' '.join(l))

任何人都可以告诉我我的代码有什么问题 (在测试用例1/3/4/5上使用Python 3失败,所以)

3 个答案:

答案 0 :(得分:1)

使用str.title

>>>'aba aba'.title()
'Aba Aba'

答案 1 :(得分:0)

如果您没有将分隔符指定为str.split(),&#34;任何空格字符串都是分隔符,并且会从结果中删除空字符串。&#34;请注意,这里是&#34;空白&#34;包括标签,换行符等。

问题没有明确说明(没有定义什么&#34;字&#34;意味着)我们不知道他们用于测试用例的内容,但我认为他们有一个情侣字符串与换行符等。无论如何:明确指定" "作为分隔符使测试通过:

# Python 2
s = raw_input()
print " ".join(x.capitalize() for x in s.strip().split(" "))

# Python 3
s = input()
print(" ".join(x.capitalize() for x in s.strip().split(" ")))

答案 2 :(得分:-1)

我认为错误在input()上。如果HackRank使用python 2.7,这将尝试评估输入,而不是返回一个字符串。因此,输入hello world将尝试评估此字符串,这是无意义的。如果你试着raw_input(),这应该可以解决这个问题。