my_string = input("Enter words. ")
i = 0
result = ()
for c in my_string:
if c.isupper() and i > 0:
result += ( )
result += c.lower()
else:
result += c
i += 1
print result
我一直试图为python创建一个单词分隔符,除非我遇到很多麻烦,我在StackOverflow上发现了一个类似的问题,除非他们不使用一个输入语句,这是我想要弄清楚的。我要做到这一点,我只需要把它放到需要输入语句的地方,要求用户输入他们希望分离的任何单词集。非常感谢!
答案 0 :(得分:2)
选项1
使用yield
进行迭代:
In [156]: def split(string):
...: for c in string:
...: if c.isupper():
...: yield ' '
...: yield c
...:
In [157]: ''.join(split("PurpleCowsAreNice"))
Out[157]: ' Purple Cows Are Nice'
选项2
re.sub
与参考群组:
In [159]: re.sub('([A-Z])', r' \1', "PurpleCowsAreNice")
Out[159]: ' Purple Cows Are Nice'
为简单起见,我允许两种方法都使用前导空格生成结果,但您可以使用str.strip
轻松删除它们。