打印具有相同第一个和最后一个字符的单词以及具有相同第二个字符且一个在最后一个字符之前的单词

时间:2015-09-17 13:55:47

标签: python string character

#!/ usr/bin/python3
import sys

def main():
    for line in sys.stdin:
        line = line.split()
        x    = -1
        for word in line:
            if word[-1]==word[0] or word[x-1]==word[1]:
                print(word)         

main()

它还会在句子末尾打印点,为什么? 像'猫'和'月亮'这样的词也应该是不可能的。但它也打印出这些词。 有人能指出我正确的方向吗?

4 个答案:

答案 0 :(得分:0)

我认为你的问题是因为'cat'的第二个和第二个字符是相同的。

def main():
    for line in sys.stdin:
        line = line.split()
        x    = -1
        for word in line:
            if (word[-1]==word[0] and len(word)<=2) or (word[x-1]==word[1] and len(word)<=4):
                print(word)

或类似的东西,取决于您的偏好。

答案 1 :(得分:0)

这应该摆脱那只讨厌的猫,尽管月亮停留 它还包括使用大写和小写字符的单词,遗憾的是不仅会打印月亮,而且还有Moon,MOON,mooN和moOn。

编辑:忘记测试一个字符(a,I等)

import sys
def main():
    for line in sys.stdin:
        line = line.split()
        for word in line:
            uword = word.lower()
            if len(uword) > 1:
                if uword[0:1]==uword[-1] or (uword[1:2]==uword[-2] and len(uword) > 3):
                    print(word)
main()

答案 2 :(得分:0)

我得到了它们,理解错误的问题。这打印出我之前得到的正确单词。这清除了我的意思。这是正确的代码,但它仍然提供“缺少sys.excepthook”。我使用另一个代码运行此代码,该代码为空格提供换行符。所以单词之间的每个空格都成了换行符: cat cdb.sentences | python3 newline.py | python3 word.py | head -n 5

import sys
def main():
    for line in sys.stdin:
        line = line.split()
        for word in line:
            letterword = lw = word.lower()
            if len(lw) > 1:
                if lw[0:1]==lw[-1] and (lw[1:2]==lw[-2]):
                    print(word)
main() 

import sys

def main():
    for line in sys.stdin:
        line = line.rstrip()
        text = ""
        for word in line:
            if word in ' ': 
                text=text + '\n'
            else:
                text=text + word
        print(text)
main()

它应该给出具有相同的第一个,最后一个字母,-2和1个字母的5个第一个单词。每一个之间都有一条白线。首先,我想解决这个问题。 谢谢

答案 3 :(得分:0)

在答案中回答你自己的问题本质上是一个完全不同的问题,你并没有帮助自己 你应该通过接受其中一个答案关闭你的原件,如果其中一个有帮助,它看起来像他们做了,然后问了一个新的问题。

但是,您的第二个问题/答案的答案可以在这里找到:
http://python.developermemo.com/7757_12807216/这是一个很好的答案

梗概:
发生这种情况的原因是,您将从Python脚本输出的非零数量输出到从不从标准输入读取的内容。您可以通过管道连接到任何无法读取标准输入的命令(例如

)来获得相同的结果

python testscript.py | cd。

或者,对于一个更简单的示例,请考虑一个仅包含

的脚本printer.py

打印&#39; abcde&#39;

然后

python printer.py | python printer.py

会产生同样的错误。

然而,以下将捕获sys.excepthook错误:

import sys
import logging

def log_uncaught_exceptions(exception_type, exception, tb):

    logging.critical(''.join(traceback.format_tb(tb)))
    logging.critical('{0}: {1}'.format(exception_type, exception))

sys.excepthook = log_uncaught_exceptions
print "abcdfe"