【发布时间】:2017-01-16 18:20:44
【问题描述】:
将 Jython 安装到 Linux 后,如何导入 sys 并打印详细信息?
thufir@doge:~$
thufir@doge:~$ jython --version
"my" variable $jythonHome masks earlier declaration in same scope at /usr/bin/jython line 15.
Jython 2.5.3
thufir@doge:~$
thufir@doge:~$ jython -i
"my" variable $jythonHome masks earlier declaration in same scope at /usr/bin/jython line 15.
Jython 2.5.3 (, Dec 21 2015, 23:18:42)
[Java HotSpot(TM) 64-Bit Server VM (Oracle Corporation)] on java1.8.0_111
Type "help", "copyright", "credits" or "license" for more information.
>>>
>>> import sys
>>> r=sys.registry
>>> for k in r:
... print k, r[k]
File "<stdin>", line 2
print k, r[k]
^
SyntaxError: mismatched input 'print' expecting INDENT
>>> exit()
thufir@doge:~$
据推测,此代码适用于 Windows,但仍应执行。它们是什么类型的缩进?我完全按照example 输入。是否有我看不到的空格或制表符?
我试着缩进一点:
thufir@doge:~$
thufir@doge:~$ jython -i
"my" variable $jythonHome masks earlier declaration in same scope at /usr/bin/jython line 15.
Jython 2.5.3 (, Dec 21 2015, 23:18:42)
[Java HotSpot(TM) 64-Bit Server VM (Oracle Corporation)] on java1.8.0_111
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> r=sys.registry
>>> for k in r:
... print k, r[k]
... ;
File "<stdin>", line 3
;
^
SyntaxError: mismatched input ';' expecting DEDENT
>>> exit()
thufir@doge:~$
【问题讨论】:
-
您需要在输入
print k, r[k]之前添加至少一个空格。 Python 不使用关键字来标记循环/函数/的结束...它使用缩进来知道这些结束的位置。 -
这意味着在循环内部
print需要被使用 -
您链接到的页面中的代码存在缩进问题。
for ...之后的块应该缩进至少一个空格(或制表符,在这里并不重要)。 -
@WillemVanOnsem 它如何结束打印语句?直接回车?
-
@Thufir:您可能需要两次输入(一个空行)。
标签: python linux command-line-interface jython indentation