繁体   English   中英

python 打印“你好世界”与“你好世界”

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM