【问题标题】:Why eclipse + pydev print() output look strange with two strings?为什么 eclipse + pydev print() 输出在两个字符串中看起来很奇怪?
【发布时间】:2011-02-01 14:09:42
【问题描述】:

嘿嘿,我刚刚做了以下事情:

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 控制台上出现此问题的原因,是吗?

【问题讨论】:

  • 哟,结果就是名字,兄弟!字!
  • 什么?,我没听懂你在说什么
  • 没关系。您可以/应该使用raw_input 而不是input。它不那么可怕,因为它没有eval
  • @Thomas:在 Python-3.x 中,input 就像在 Python-2.x 中的 raw_input 一样。 (raw_input 更名为input)。
  • 恐怕python 3.1没有名为“raw_input”的函数

标签: python python-3.x pydev eclipse-3.5


【解决方案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 for Eclipse Galileo on Windows7 上测试了这段代码,它可以工作。

希望对你有帮助

【讨论】:

  • 是的,谢谢,第一印象是最好的印象,我刚转回Wing IDE,呵呵
  • 我不喜欢“fanboys”的概念,也不喜欢人们在没有正当理由的情况下提倡使用某些东西(就像fanboys 通常做的那样)。但是,我同时使用了 Eclipse+PyDev 和 WingIDE。到目前为止,我发现 Eclipse 更好,我强烈建议您不要在没有公平机会的情况下放弃它。
【解决方案2】:

这很奇怪。

您是否在单词后得到一个额外的换行符? (您可以通过发出另一个打印命令来检查)。

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

【讨论】:

  • 不,我没有在单词之后得到另一个换行符,只有一个,在调试模式下,值显示如下:a = str: name\r
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-09-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多