Python中的Hello World

136

我尝试运行一个Python脚本:

print "Hello, World!" 

我遇到了这个错误:

  File "hello.py", line 1
    print "Hello, World!"
                        ^
SyntaxError: invalid syntax

发生了什么?


123
我猜这个问题会成为未来几年中被问得最频繁的Python问题。 - Greg Hewgill
4
请发布 python --version 的结果。 - S.Lott
8
想法:Python 3.0 应默认开启“Py3k警告”。这样做可以避免成千上万的SO/newsgroup问题。 - RexE
18
我第一次看到有人询问如何在某种语言中实现“Hello World”的问题。这让人想知道,如果这已经让人们感到困难,那么这个语言的情况是怎样的......(因为通常在任何介绍中都会将其作为第一个代码示例)。 - Peladao
1
@GregHewgill被浏览了53k次,你并没有太错。 - TankorSmash
显示剩余2条评论
3个回答

186
print("Hello, World!")

你可能正在使用Python 3.0,其中print现在是一个函数(因此需要括号),而不是一个语句。

1
谢谢,这个有效。我不知道为什么这不是更常见的知识,因为我只是从Python Hello World的第一个Google结果中复制粘贴。 - MiffTheFox
1
“需要括号”并不是从2.x到3的充分解释 :) - Paolo Bergantino
15
Python 2.x使用print作为语句。相对较新的Python 3将print变成了函数。由于其广泛的库和框架支持,大多数Python程序员仍在使用2.x,因此3.0目前并没有像你预期的那样被广泛采用。 - Paolo Bergantino
2
@paulo,它是最简洁的。如果我说现在它是一个函数,那么我就必须解释语句和表达式之间的区别以及函数如何适应整个图片。 - Unknown
3
像这种情况,他们应该有一个特殊的错误提示信息,并且需要更详细地解释。鉴于针对Python 2的文档非常丰富,这种不兼容的语法更改肯定会让初学者感到非常沮丧。 - Thilo
显示剩余2条评论

115

很遗憾,xkcd漫画已经不完全更新了。

https://imgs.xkcd.com/comics/python.png

自Python 3.0起,你需要编写:

print("Hello world!")

还有人需要编写那个antigravity库 :(


3
哇...你的xkcd参考文献甚至还有悬停文字。那是xkcd自己的还是你的? - inetknght
3
如果您查看帖子背后的标记,您就会看到悬停文本是如何完成的。 - Christian
@inetknght,<img>标签中的title属性已被用于此目的。 - KNU
@KNU:Markdown 没有 <img> 标签。格式化方式不同。 - Christian

16

在Python 3.x中,您可以使用

print("Hello, World")

在 Python 2.x 中,您使用:

print "Hello, World!"

16
使用3.x需要的热情更少吗? - LShaver
1
@LShaver 是的。 - JakeD

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接