2010-03-27 86 views
1

干草,我只是做了以下内容:为什么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 

这是怎么发生的,为什么发生在我身上?在CMD它看起来很好?? ??

此外,我发现python保存字符串与“\ r”,我认为这是在pydev控制台上这个问题,是吗?

+0

哟,结果是名字,兄弟!字! – Thomas 2010-03-27 18:23:30

+0

什么?,我不明白你在说什么 – srisar 2010-03-27 18:25:31

+0

没关系。你可以/应该使用'raw_input'而不是'input'。它不那么可怕,因为它不会执行'eval'。 – Thomas 2010-03-27 18:25:57

回答

1

在我看来,Eclipse + PyDev也在字符串中存储换行符。根据操作系统的不同,换行符有几种变体:\ n,\ r,\ r \ n。

在任何情况下,我觉得有以下应该解决您的问题:

a = raw_input("give a word: ").strip() 
b = raw_input("give another word: ").strip() 
c = a + " " + b 

我已经测试过的PyDev这个代码的Windows7上的Eclipse伽利略和它的作品。

希望这会有帮助

+0

是的,谢谢,第一印象是最好的印象,我只是换了回来Wing IDE,hehehe – srisar 2010-03-29 11:36:11

+0

我不喜欢“fanboys”的概念,当人们主张使用某些没有正当理由的东西时(例如粉丝们通常会这么做),我也不喜欢它。但是,我已经使用了Eclipse + PyDev和WingIDE。我发现Eclipse更好,我强烈建议你不要放弃它,但不要给它公平的机会。 – inspectorG4dget 2010-03-29 22:40:42

0

这很奇怪。

你是否在单词后面多了一个换行符? (你可以通过发出另一个打印命令来检查)。

Eclipse在控制台输入上总是很奇怪。如果以某种方式在字符串中保存一个CR或一个LF(或两者),我不会感到惊讶,所以当你打印它们时,你会得到一个换行符。但是,接下来你应该在文字之后再换行。

+0

没有我没有得到另一个换行字,只有一个,在调试模式下值显示是这样的:a = str:name \ r – srisar 2010-03-27 18:31:45

相关问题