[英]python print "hello world" vs "hello world"
>>> print "hello world"
hello world
>>> "hello world"
'hello world'
>>>
有什么区别?
一个完整的菜鸟问题。
python hello world 示例主要使用
print "hello world"
我可以去掉那个print
并只使用"Hello world"
来介绍 python 吗?
不同之处在于print
调用str
而 REPL(读取评估打印循环)的默认操作是在对象上调用repr
,除非它是None
。
请注意,如果您不在交互式解释器中工作(您不在 REPL 中),那么您将不会在没有print
的版本中看到任何输出。
另请注意,输出之间存在差异。 repr
在字符串上添加引号。
如果你用空格代替换行符,你会发现它们在 REPL 中的工作方式甚至不一样。
>>> print "hello\nworld"
hello
world
>>> "hello\nworld"
'hello\nworld'
如果您尝试使用
"hello\nworld"
在一个程序中,你当然不会得到任何输出
如果您了解一些 Bash 脚本,您会发现echo '$HOME'将打印 $HOME 字母而不是 $HOME 中的实际值,我的意思是 /home/user/。
然而,作为 Python,print 函数将解释为双引号和单引号是同一个东西。 如果没有引号或不必使用双引号的句子,我只使用 ""。 尽管如此,您仍然可以使用 \\" 来做到这一点。
例子 -
print 'hello\nworld' -> hello
world
print "hello\nworld" -> hello
world
和
'hello\nworld' -> hello\nworld
如果有时,我需要原始输出,我不会使用打印或尝试其他解决方法。
另外,如果我必须使用打印函数来输出原始字符串。 我只是用这个 -
print repr("hello\n\tworld\\") -> 'hello\n\tworld\\'
不过也要看你的情况。
随意编辑/建议更好地改进此回复。 在这个答案中,我可能会犯很多错误和错误信息。
这是一个很好的问题,事实上,我在开始学习 Python 时也有同样的疑问。 首先,我们将观察这两个不同程序的不同输出。
程序类型 1
>>> print "hello world"
hello world
众所周知,使用打印功能的程序用于打印给定的字符串或数字数据。
程序类型 2
>>> "hello world"
'hello world'
>>> 'hello world'
'hello world'
当不使用打印函数时,通过在单/双引号内给出字符串直接被告知要打印,答案也会在引号内打印。 我们的程序不需要这种类型的输出,即使不使用打印命令可能很容易。
这仅在 Python 命令行中是可能的。 如果程序保存在单独的文件中并且将完全执行,则不可能。
您正在 python 交互式 shell 上运行。
print "hello world"
您已经执行了一个函数调用,该函数调用执行了print
函数并将您提供给流文件的字符串输出,该字符串默认为stdout
https://docs.python.org/3/library/functions.html#print
>>> "hello world"
只是让python解释器执行一行代码,它只是一个字符串。 由于您在 python 交互式 shell 上运行。 shell 将在屏幕上显示字符串“hello world”。
事实上,您使用的是 python shell,它可以做任何事情。 为了证明这一点,如果你真的使用了一个 python 文件,它什么都不做
Python 3.7.7 (tags/v3.7.7:d7c567b08f, Mar 10 2020, 10:41:24) [MSC v.1900 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license()" for more information.
>>>
==== RESTART: C:/Users/s-wan/AppData/Local/Programs/Python/Python37/testhelloworld.py ===
>>>
但是如果你真的在 shell 中使用它,那么它会用单引号打印出来:
>>> "Hello World"
'Hello World'
使用
print('hello world')
将打印不带引号的 'hello world'。 shell 和实际文件会产生不同的结果。
哇...
>>> print("hello\nworld")
你好世界
"hello\\nworld" 'hello\\nworld' 'hello\\nworld' 'hello\\nworld'
只有在命令行中才能避免使用打印功能,否则必须使用打印功能
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.