我一直试图关注this tutorial for 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版本答案 0 :(得分:0)
在我看来,您无法理解包含python代码的文件与shell之间的区别。当你在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的构建块,但这是另一个故事......