为什么Eclipse + PyDev的print()输出在两个字符串时看起来奇怪?
大家好,我刚刚做了以下操作:
a = input("give a word: ")
b = input("give another word: ")
c = a + " " + b
print("result is", c)
然后得到了如下输出:
give a word: name
give another word: word
result is name
word
我想问的是,为什么在pydev或eclipse控制台中输出是分成两行的?我原本期待的输出是这样的:
give a word: name
give another word: word
result is name word
这到底是怎么回事?在命令行中看起来没问题??!!
我还发现Python在保存字符串时会用到"\r",我觉得这可能是导致pydev控制台出现这个问题的原因,是这样吗?
2 个回答
0
这真是太奇怪了。
你在单词后面是不是多了一个换行符?(你可以通过再打印一次来检查一下)。
Eclipse在处理控制台输入时总是有点奇怪。如果它在字符串里保留了回车符(CR)或者换行符(LF),甚至两者都有的话,那么每次打印的时候就会出现换行。但这样的话,单词后面应该还会有一个换行。
1
我觉得Eclipse加上PyDev在字符串中也存储了换行符。根据不同的操作系统,换行符有几种不同的形式:\n、\r和\r\n。
无论如何,我认为下面的代码应该能解决你的问题:
a = raw_input("give a word: ").strip()
b = raw_input("give another word: ").strip()
c = a + " " + b
我在Windows7的Eclipse Galileo上测试过这段代码,它是有效的。
希望这能帮到你。