0

[解决]

我在 komodo 编辑中调整了偏好,最终得到:

不要自动缩进

不允许文件内容覆盖选项卡设置

更喜欢制表符而不是空格

每个缩进 4 个空格

每个标签字符的 4 个宽度

我还设置了 komodo 以显示空白和制表符,这最终揭示了搞砸的部分。

是的 - 这有点挑剔。:)

[/解决]

我已经在 ubuntu 8.10 上安装了 python 3.0 以及 komodo-edit ide。

我刚刚进入 python,我正在阅读视觉快速入门指南 python 2nd ed。(下面的例子来自那本书)。我遇到了一些非常令人沮丧的错误,非常感谢您的想法。

我已经多次重新输入和检查标签。

我开始认为安装或设置中出现了问题。

我在 komodo-edit 中输入了以下内容:

#!/usr/bin/python3.0
for row in range(1, 10):
    for col in range(1, 10):
        p = row * col
        if p < 10:
            print(' ', end = '')
        print(row * col, ' ', end = '')
    print()

我无法使用 python 3 测试这是 IDLE - 似乎无法安装该版本的 IDLE。现在,我正在尝试从 shell 中运行。

首先,只需使用“python”来调用程序......

PYTHON [1] $  python ktest.py 
      File "ktest.py", line 6
        print(' ', end = '')
                       ^
    SyntaxError: invalid syntax

现在尝试调用python编译器的不同方式......

PYTHON [1] $  python ktest.py 
          File "ktest.py", line 6
            print(' ', end = '')
                           ^
        SyntaxError: invalid syntax


PYTHON [1] $  python3 ktest.py 
      File "ktest.py", line 4
        p = row * col
                    ^
    TabError: inconsistent use of tabs and spaces in indentation


PYTHON [1] $  python3.0 ktest.py 
      File "ktest.py", line 4
        p = row * col
                    ^
    TabError: inconsistent use of tabs and spaces in indentation
4

1 回答 1

2

该示例使用了 python 2.x ,因为python显然是指 python2.x (对于某些 x),而不是 python3.0 (这很好,因为大多数程序都是针对 2.x 的)。

后两个示例使用 python 3.0 。您在源代码中混合了制表符和空格,应该去掉制表符(不要重新输入——使用正则表达式替换)。Python 3.0 对此比 2.x 更敏感——您可以使用python -ttfor 2.x 获得相同的行为。

于 2009-03-24T00:44:07.607 回答