一个简单的程序,从键盘读取一行,并输出相同的行,每个单词都反转

时间:2012-09-10 10:03:41

标签: python

一个简单的程序,它从键盘读取一行并输出相同的行,每个单词都被反转。

注意:一个单词被定义为一个连续的字母数字字符或连字符序列(-)。

3 个答案:

答案 0 :(得分:1)

str1 = raw_input()

str2 = ""
delimiters = [" ", ",", ";", ".", "\n"]
i = 0
for j in range(1, len(str1)):
    if str1[j] in delimiters:
        str2 += str1[i:j][::-1] + str1[j]
        i = j+1
    elif j==len(str1)-1:
        str2 += str1[i:j+1][::-1]

print str2

答案 1 :(得分:1)

您可以使用re库,它具有sub功能:

import re
re.sub(r'[\-a-zA-Z]+', lambda x: x.group(0)[::-1], your_string)

第一个参数[\-a-z]+是连字符,小写和大写字母的正序列的正则表达式(您还可以添加数字0-9或其他您想要接受/反转的内容)。第二个论点是说你应该扭转每场比赛。第三个是你想要应用它的字符串。

示例:

re.sub(r'[\-a-zA-Z]+', lambda x: x.group(0)[::-1], 'hi there andy-h')
'ih ereht h-ydna'

答案 2 :(得分:0)

最好为自己编码!我只能帮助你如何做到这一点。

  1. 读取行并存储在变量中让我们说S。
  2. 根据单词之间的空格拆分S(包含一行或一句。)并存储在列表L(数组)中。
  3. 对于L中的每个单词:
    1. 反转单词(您可以使用内置函数,如strReverse)并存储在R
    2. 打印R