0

注意:标记为原始问题的问题未回答此问题。这不仅仅是 Python v2 与 v3 的问题,我在下面的评论中对此进行了解释。

原帖:我正在尝试在工作中学习 Python,所以我目前使用的是 Portable Python 3.2.1.1(以下简称 PP)。(我之所以提到这一点,是因为当我使用我的 Mac 和常规 Python 时,这个问题不会发生在家里。)

我正在完成Learn Python the Hard Way ( http://learnpythonthehardway.org/book/ex16.html ) 的练习16。我听说这不是最好的学习工具,但我是一个完整的编程 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

我尝试在 >>> 提示符下键入以下内容: 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

是的,我已经用谷歌搜索了这两个错误。我读到有时问题不是将退格键加倍,所以我也尝试了,将两个 \ 放在两个文件路径中之前只有一个的位置。我什至尝试— # -*- coding: utf-8 -*-在脚本的开头放置一些 unicode 错误。这与完整的文件路径一起导致了前面提到的相同的 unicode 错误。

是的,我已经检查了我的代码是否与练习中的代码相匹配。
是的,这适用于非 PP。

所有这一切让我相信问题可能出在我试图在 PP 中运行脚本的方式上(但为什么print不起作用?),但我不知道我做错了什么。

谢谢!

4

2 回答 2

5

print是 Python 3 中的一个函数:

print('my string with content and the like')

它不再被支持为“声明”。您可能想查看从 python2.x 更改为 python3.x 的内容列表(存在许多不兼容性)。此外,您最好找到使用 Python3 的教程。

于 2013-03-21T15:22:33.183 回答
2

您必须输入:

Portable-Python.exe Ex16.py Python.txt

在您的命令提示符下。要获得命令提示符,请按 WindowsKey-R,然后键入“cmd”并按 Enter。您现在应该查看类似c:\>. cd使用命令导航到您的便携式 python 安装。

于 2013-03-21T15:26:47.690 回答