Python中的字符串反转

Ano*_*oop 7 python

编写一个简单的程序,从键盘读取一行,并输出相同的行,每个单词都反转.单词被定义为字母数字字符或连字符(' - ')的连续序列.例如,如果输入是"你能帮助我吗!"输出应该是"naC uoy pleh em!"

我只是尝试使用以下代码,但它有一些问题,

print"Enter the string:"
str1=raw_input()
print (' '.join((str1[::-1]).split(' ')[::-2]))
Run Code Online (Sandbox Code Playgroud)

它打印出"naC uoy pleh!em",只看感叹号(!),这就是问题所在.有谁可以帮我???

Syl*_*sne 6

最简单的可能就是使用re模块来拆分字符串:

import re
pattern = re.compile('(\W)')
string = raw_input('Enter the string: ')
print ''.join(x[::-1] for x in pattern.split(string))
Run Code Online (Sandbox Code Playgroud)

运行时,您会得到:

Enter the string: Can you help me!
naC uoy pleh em!
Run Code Online (Sandbox Code Playgroud)


NPE*_*NPE 3

您可以使用re.sub()查找每个单词并将其反转:

In [8]: import re

In [9]: s = "Can you help me!"

In [10]: re.sub(r'[-\w]+', lambda w:w.group()[::-1], s)
Out[10]: 'naC uoy pleh em!'
Run Code Online (Sandbox Code Playgroud)