繁体   English   中英

Python脚本中的语法无效

[英]Invalid syntax in Python script

Python 2.7.5 (default, May 15 2013, 22:44:16) [MSC v.1500 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.

Imported NumPy 1.7.1, SciPy 0.12.0, Matplotlib 1.3.0 + guidata 1.6.1, guiqwt 2.3.1
Type "scientific" for more details.
>>> runfile('C:/Program Files (x86)/Firaxis Games/Sid Meier's Pirates!/ModMan/MM.py', wdir=r'C:/Program Files (x86)/Firaxis Games/Sid Meier's Pirates!/ModMan')
  File "<stdin>", line 1
    runfile('C:/Program Files (x86)/Firaxis Games/Sid Meier's Pirates!/ModMan/MM.py', wdir=r'C:/Program Files (x86)/Firaxis Games/Sid Meier's Pirates!/ModMan')
                                                            ^
SyntaxError: invalid syntax
>>> 

运行Windows 7 x64 /,WinPython 275,Spyder 2.7。 这是使用spyder GUI运行的。 当运行python文件夹中的( MM.py )副本时,它将起作用。 顺便说一句,这是指向,然后单击我没有输入任何内容。

使用"代替'

runfile("C:/Program Files (x86)/Firaxis Games/Sid Meier's Pirates!/ModMan/MM.py", wdir=r"C:/Program Files (x86)/Firaxis Games/Sid Meier's Pirates!/ModMan")

堆栈溢出足以突出显示您的无效语法。

如果某些工具(spyder GUI)执行了无效的代码,请使用更好的工具。

要实际解释这个问题:字符串可以用双引号"和单引号' 。只要字符串以相同的符号开头和结尾,您使用的这两个都不会有区别。因此, "Hello"是与'Hello'相同的字符串。

一旦第二次出现引号字符,则字符串结束。 因此,在您的案例'Sid Meier's Pirates' ,该字符串已经在Meier之后结束,从而使其其余部分不是字符串,而是解释器尝试解释的普通Python代码(通常会失败)。

因此,要在字符串本身中使用引号字符,您将需要转义引号。 因此,对于单引号字符串,可以使用\\' ;对于双引号字符串可以使用\\"

因此,在您的情况下,您可以编写'Sid Meier\\'s Pirates' ,这将是有效的字符串。

另一个选择是将引号字符切换为双引号。 这样,您就不必在字符串中转义单引号字符(而双引号字符): "Sid Meier's Pirates"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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