【问题标题】:Left out 'print' function in Python, e.g. (print "hello world") vs ("hello world")python打印“你好世界”与“你好世界”
【发布时间】: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 命令,而不必弄清楚它究竟应该如何处理该行。跨度>

标签: python


【解决方案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函数执行并输出你给流文件的字符串,默认是stdouthttps://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】:

              只有在命令行下才能使用打印功能,否则必须使用打印功能

              【讨论】: