注意:标记为原始的问题没有回答。这不仅仅是Python v2 vs v3问题,我将在下面的评论中解释。
原帖: 我正在尝试在工作中学习Python,所以我目前正在使用Portable Python 3.2.1.1(此后将称之为PP)。 (我提到这个是因为当我使用我的Mac和常规Python时,这个问题在家里不会发生。)
我正在通过练习16艰难学习Python(http://learnpythonthehardway.org/book/ex16.html)。我听说这不是最好的学习工具,但我是一个完整的编程n00b,我是一个动手学习者。如果您有任何更好的建议,我会开放!
练习的前几行是:
from sys import argv
script, filename = argv
print "We're going to erase %r." % filename
print "If you don't want that, hit CTRL-C (^C)."
我的脚本标题为Ex16.py,我使用的文件是Python.txt,这两个文件都与PP .exes位于同一个文件夹中。我不认为这是必要的,但希望它可以解决问题......消极。当我在PP中按“运行”时,它不起作用,因为argv要求您在启动脚本时提供参数:python Ex16.py Python.txt
当我启动Python.exe(在PP中是Portable-Python.exe)时,我得到标准的Python提示符>>>,但无论我输入什么,我都会收到相同的错误消息:
File "<stdin>", line 1
with whatever I've just tried repeated back to me with the marker to
indicate where the problem is. (has not been helpful so far)
SyntaxError: invalid syntax
我尝试在&gt;&gt;&gt;上输入以下内容提示:
python Ex16.py Python.txt
,,
Ex16.py Python.txt
,,
"%PATH&\Ex16.py" "%PATH%\Python.txt" (with the actual filepaths)
,,
print 'hello world'
我只是一遍又一遍地得到同样的无效语法错误。即使是基本的打印命令也会返回无效的语法错误。触发不同错误的唯一一个是我尝试整个文件路径的那个。那个回来了:
File "<stdin>", line 1
SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in
position 2-3: truncated \UXXXXXXXX escape
是的,我用Google搜索了这两个错误。我读到有时候问题不是将退格加倍,所以我也尝试了两个\,在两个文件路径中只有一个之前。我甚至尝试将— # -*- coding: utf-8 -*-
放在脚本的开头,以为可能存在一些unicode错误。使用完整的文件路径,导致前面提到的相同的unicode错误。
是的,我已经检查过我的代码与练习中的代码相匹配 是的,这适用于非PP的家庭。
所有这些让我相信问题可能就在我试图在PP中运行脚本的方式(但为什么print
不会工作?),但我不知道是什么我做错了。
谢谢!
答案 0 :(得分:5)
print
是Python 3中的一个函数:
print('my string with content and the like')
不再支持它作为'声明'。您可能想要查看list of things that changed from python2.x to python3.x(有许多不兼容性)。此外,您最好使用Python3查找教程。
答案 1 :(得分:2)
您必须输入:
Portable-Python.exe Ex16.py Python.txt
在您的命令提示符下。要获取命令提示符,请按WindowsKey-R,然后键入“cmd”并按Enter键。你现在应该看看像c:\>
这样的东西。使用cd
命令导航到便携式python安装。