Python 2.7 中导入的问题(来自像计算机科学家教程一样思考)



我一直在尝试遵循这个python教程。我正在做第3章的练习。在练习 4 中,我在from import_test import *部分遇到了麻烦:

~ from import_test import *
Traceback (most recent call last):
 File "pyshell#3", line 1, in <module>
   from import_test import *
File "import_test.py", line 1
Python 2.7.5 (default, May 15 2013, 22:44:16) [MSC v.1500 64 bit (AMD64)] on win32
             ^
SyntaxError: invalid syntax

这是我不断得到的语法,我不确定它想告诉我什么。

这就是import_test.py里面的一切

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

我得到的错误对我来说没有任何意义,因为我刚刚开始编写代码。 而且我还不知道如何使用这个网站,所以感谢您忍受我的麻烦。

我想我确实将 shell 输出复制到文件中。 我将尝试解决这个问题,看看它是否有效。再次感谢大家的帮助。

所以这不起作用,我一直得到相同的语法错误。语法箭头是否指向我正在使用的 python 版本?

在我看来,您很难理解包含 python 代码的文件和 shell 之间的区别。当您在外壳上并键入

from import_test import *

你的意思是,你想获取import_test.py的全部内容并将它们加载到你的程序中,以便你可以在程序中使用import_test.py文件中包含的任何函数定义等。

因此,import_test.py需要完全由有效的python代码组成。import_test.py的内容

def cat_n_times(s, n):
    print s * n

因为import_test.py中有一堆额外的垃圾不是有效的 python 代码,所以您会收到语法错误。当 shell 尝试加载文件内容并遇到语法错误时,就会发生这种情况,这意味着您的文件中有无效代码(在本例中为复制的垃圾)。

通过正确实现的导入成功将 cat_n_times() 函数加载到 shell 中后,您应该能够从 shell 调用该函数。

~ cat_n_times("a", 25)

这将打印出"a",连续连接 25 次。向 python 初学者演示这是一种愚蠢的行为,因为特质运算符重载并不完全是 Python 的构建块,但那是另一回事了......

相关内容

最新更新