python打印“你好世界”与“你好世界”
Posted
技术标签:
【中文标题】python打印“你好世界”与“你好世界”【英文标题】:Left out 'print' function in Python, e.g. (print "hello world") vs ("hello world") 【发布时间】:2021-11-19 19:51:29 【问题描述】:>>> print "hello world"
hello world
>>> "hello world"
'hello world'
>>>
有什么区别?
一个完整的菜鸟问题。
python hello world 示例主要使用
print "hello world"
我可以去掉 print
并使用 "Hello world"
来介绍 python 吗?
【问题讨论】:
这是一个出人意料的好问题。据我了解,最终结果在技术上几乎相同,但通过打印工作更可取,因为处理器可以直接转到str
命令,而不必弄清楚它究竟应该如何处理该行。跨度>
【参考方案1】:
不同之处在于print
调用str
而REPL(读取评估打印循环)的默认操作是在对象上调用repr
,除非它是None
。
请注意,如果您不在交互式解释器中工作(您不在 REPL 中),那么在没有 print
的版本中您将看不到 任何 输出。 p>
还要注意输出之间存在差异。 repr
在字符串上添加引号。
【讨论】:
【参考方案2】:如果将空格替换为换行符,您会发现它们在 REPL 中的工作方式甚至不一样。
>>> print "hello\nworld"
hello
world
>>> "hello\nworld"
'hello\nworld'
如果你尝试使用
"hello\nworld"
在程序中,你当然不会得到任何输出
【讨论】:
【参考方案3】:如果你知道一点 Bash 脚本,你会发现 echo '$HOME' 将打印 $HOME 字母而不是 $HOME 中的实际值,我的意思是 /home/用户/。
然而,对于 Python,print 函数将被解释为双引号和单引号一样的东西。如果没有引号或不必使用双引号的句子,我只使用“”。不过,您仍然可以使用 \" 来做到这一点。
例子-
print 'hello\nworld' -> hello
world
print "hello\nworld" -> hello
world
和
'hello\nworld' -> hello\nworld
如果有时我需要原始输出,我不会使用打印或尝试其他解决方法。
另外,如果我必须使用打印功能来输出原始字符串。我只是用这个-
print repr("hello\n\tworld\\") -> 'hello\n\tworld\\'
不过,这取决于你的情况。
请随时编辑/建议更好地改进此回复。我可能在这个答案中犯了很多错误和错误信息。
【讨论】:
【参考方案4】:这是一个很好的问题,其实我刚开始学 Python 的时候也有同样的疑惑。 首先,我们将观察这两个不同程序的不同输出。
节目类型 1
>>> print "hello world"
hello world
使用打印功能的程序,众所周知,用于打印给定的字符串或数字数据。
节目类型 2
>>> "hello world"
'hello world'
>>> 'hello world'
'hello world'
如果不使用打印功能,并且通过在单引号/双引号内给出字符串直接告诉要打印,答案也会在引号内打印。我们的程序不需要这种类型的输出,即使不使用 print 命令可能很容易。
这只能在 Python 命令行中实现。如果将程序保存在单独的文件中并完全执行,则不可能。
【讨论】:
【参考方案5】:您正在 python 交互式 shell 上运行。
print "hello world"
你已经执行了一个函数调用,print
函数执行并输出你给流文件的字符串,默认是stdout
https://docs.python.org/3/library/functions.html#print
>>> "hello world"
只是让python解释器执行一行代码,它只是一个字符串。由于您在 python 交互式 shell 上运行。 shell 会在屏幕上显示字符串“hello world”。
【讨论】:
【参考方案6】:事实上,您使用的是 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 和实际文件会产生不同的结果。
【讨论】:
【参考方案7】:只有在命令行下才能使用打印功能,否则必须使用打印功能
【讨论】:
以上是关于python打印“你好世界”与“你好世界”的主要内容,如果未能解决你的问题,请参考以下文章