Python脚本中的语法无效

2024-04-28 13:24:35 发布

您现在位置:Python中文网/ 问答频道 /正文

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)副本运行时,它可以工作。顺便说一句,这是点击,我没有输入任何东西。在


Tags: pyformoretypefilesprogramx86games
2条回答

使用"代替'

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代码(这通常会失败)。在

因此,要在字符串中使用引号,您需要escape引号。所以对于单引号字符串,可以使用\',对于双引号字符串,\"。在

所以在您的例子中,您可以编写'Sid Meier\'s Pirates',它将是一个有效的字符串。在

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

相关问题 更多 >