无法启动并运行python

时间:2011-12-26 06:11:27

标签: python

我是python的新手。我刚刚下载了2.x版本,并试图在编辑器中编写一个简单的“Hello world”程序,并在解释器中运行它。这是我的代码(IDLE中的代码):

#!C:\Python27\python.exe
#Filename: helloworld.py

print('Hello World')

这是我在翻译中运行的内容:

python helloworld.py

这就是我得到的回应:

SyntaxError: invalid syntax

有谁知道这里发生了什么?请帮忙。

澄清:

我应该补充说,该程序在IDLE的运行模块命令上运行。它只是在Python的命令行解释器中不起作用。

5 个答案:

答案 0 :(得分:1)

print不是Python 2.7中的一个功能。你不得不说print "Hello world!"

答案 1 :(得分:1)

python 3.0和2.7都支持打印...后来2.x更改的一部分是增加对3.x语法的支持以简化转换。任何人说2.7不能有parens是完全错误的,他们都工作。

由于您的打印是正确的,请尝试删除打印件上方的shebang和空白,然后查看它是否有效。由于你在执行它时明确地在命令行中声明了解释器,所以不需要shebang(它只在你做“myScript.py”而不是“python myScript.py”之类的东西时使用)

答案 2 :(得分:1)

只需点击谷歌搜索并查看您的错误消息就可以清楚地了解您收到错误的原因。

您是否有机会在空闲提示符下运行程序?如果它显示python helloworld.py,则表示它抱怨此行而不是helloworld.py中的任何特定行。

刚刚从空闲状态(你称之为解释器)出来并从命令提示符运行。你不会得到那个令人不快的错误。

除了其他人对print语句的说法之外,如果你在windows下运行,脚本中的shebang是不必要的(但没有错)。该行在* nix环境中有意义,其中shell从脚本的第一行确定解释器。

总结一下

如果您看到类似

的内容
>>> python helloworld.py 

这是错误的。你不能在IDLE中调用python。

您需要在命令提示符下运行它,如

C:\python helloworld.py 

这是对的

实际上,您无需任何修改即可运行原始脚本。只是以正确的方式运行

注意***其他一些人可能会说print语句不是Python 2.7中的一个函数,因此特定语法是错误的。这部分是正确的

您实际上没有调用打印功能。你刚刚用paranthesis封闭了字符串,这在语法上是正确的。

如果你在设置Python和在Windows上运行时遇到问题,你可能会开始考虑几件事情

  1. FAQ for Python on Windows
  2. 新手系列视频教程,Running Python on XP

答案 3 :(得分:0)

  

它在Python的命令行解释器中不起作用。

Python 没有“命令行解释器”。它有一个Python解释器。你没有提供命令;你喂它Python代码。例如,您可以在此处输入print("Hello, world!")

python helloworld.py是一个命令。它在系统命令行中使用。

假设您使用的是某些最新版本的Windows:“开始”菜单中应该有一个标记为“命令提示符”的项目,或者搜索“cmd.exe”。跑吧。现在您有一个命令提示符。闪烁光标前的部分是“当前工作目录”。您可以使用cd命令导航到.py文件所在的目录(cd ..上一个目录; cd name_of_directory进入子目录),然后<强>然后问题python helloworld.py。这告诉Windows“运行程序python.exe并将其作为参数传递给它helloworld.py。启动一个单独的Python副本,它会自动打开helloworld.py并运行它。

IDLE的“运行模块”命令(菜单项)执行相同的操作。 IDLE不是Python;它是一个与Python(python.exe)对话的独立程序。这允许它将解释器包装在带有菜单项等的窗口中,并为您提供另一个窗口来编辑.py文件,然后将其提供给Python。您也可以在命令行中没有参数运行python(在上一步中);这将在命令提示符窗口中为您提供Python解释器提示,您可以在其中键入Python代码的单个语句并运行它们。这对于在编写.py文件时测试代码的短片段通常很有用。

答案 4 :(得分:-2)

在python3中

print("helloworld")

在python2.7中

print "helloworld"