我一直在尝试遵循这个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 的构建块,但那是另一回事了......