2013-12-11 273 views
4
>>> print "hello world" 
hello world 
>>> "hello world" 
'hello world' 
>>> 

有什么区别?python print“hello world”vs“hello world”

一个完整的noob问题。

蟒蛇Hello World示例大多采用

print "hello world" 

我可以带,其print,只是使用"Hello world"给了蟒蛇的介绍?

+1

这是一个出人意料的好问题。根据我的理解,最终的结果在技术上几乎相同,但通过打印进行处理是可取的,因为处理器可以直接执行“str”命令,而不必知道它应该如何处理该行。 – AaronB

+3

也许我是唯一一个被这个困扰的人 - 但是你能选择“你好词”还是“你好世界”并坚持下去?谢谢。 – Floris

回答

10

区别在于print调用str而REPL(读取评估打印循环)的默认操作是在对象上调用repr,除非它是None

需要注意的是,如果你没有在交互式解释工作(你是不是在REPL),那么你就不会看到在版本的任何输出而不print

另请注意,输出之间存在差异。 repr在字符串上添加引号。

2

如果您将空格替换为换行符,您会发现它们在REPL中甚至没有真正的工作。

>>> print "hello\nworld" 
hello 
world 
>>> "hello\nworld" 
'hello\nworld' 

如果试图通过本身在程序中使用

"hello\nworld" 

,你会得到当然没有

-1

的输出只能使用打印功能弃权,如果你在命令否则你必须使用打印功能

0

如果你知道一点Bash脚本,你会发现echo'$ HOME'会打印$ HO ME字母而不是$ HOME中的实际值,我的意思是/ home/user /。

然而,作为Python,打印功能将解释为双引号和单引号作为同样的事情。我只是使用“”,如果没有引号或句子不必使用双引号。虽然,你仍然可以做到这一点与\”

示例 -

print 'hello\nworld' -> hello 
         world 

print "hello\nworld" -> hello 
         world 

'hello\nworld' -> hello\nworld 

如果有时候,我需要原始输出,我不会用打印或尝试其他解决方法。

此外,如果我必须使用打印功能输出原始字符串,我只是使用这个 -

print repr("hello\n\tworld\\") -> 'hello\n\tworld\\' 

虽然这取决于你的状况。

随意编辑/建议更好地改善此回复。我可能在这个答案中犯了很多错误和错误信息。

0

这是一个非常好的问题,事实上,我开始学习Python的时候也有同样的疑问。首先,我们将观察这两个不同程序的不同输出。

程序类型1

>>> print "hello world" 
hello world 

使用打印功能,因为我们知道是用来打印出给定字符串或数字数据的程序。

程序类型2

>>> "hello world" 
'hello world' 
>>> 'hello world' 
'hello world' 

当打印功能不使用,该字符串被直接告知单/双引号内给它进行打印,得到的答案也被引号内打印。我们的程序不需要这种类型的输出,即使可能很容易不使用print命令。

这只能在Python命令行中使用。如果程序保存在单独的文件中并且将被完全执行,则不可能。