#!/ 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()
它还会在句子末尾打印点,为什么? 像'猫'和'月亮'这样的词也应该是不可能的。但它也打印出这些词。 有人能指出我正确的方向吗?
答案 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"