python vs jython - input和NameError:name''没有定义

时间:2017-04-26 19:21:10

标签: jython nameerror

请查看下面的input()调用是如何处理的。我做错了什么?

> python
Python 3.6.1 (v3.6.1:69c0db5, Mar 21 2017, 17:54:52) [MSC v.1900 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> currentQryAlias=input('Please enter alias for the query: ')
Please enter alias for the query: recospace
>>> print ('What is the value of currentQryAlias? ', currentQryAlias)
What is the value of currentQryAlias?  recospace
>>> print ('type of currentQryAlias: ',type(currentQryAlias))
type of currentQryAlias:  <class 'str'>
>>> ^Z


cd C:\Python\jython2.7.0
> .\bin\jython
Jython 2.7.0 (default:9987c746f838, Apr 29 2015, 02:25:11)
[Java HotSpot(TM) 64-Bit Server VM (Oracle Corporation)] on java1.8.0_31
Type "help", "copyright", "credits" or "license" for more information.
>>> currentQryAlias=input('Please enter alias for the query: ')
Please enter alias for the query: recospace
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<string>", line 1, in <module>
NameError: name 'recospace' is not defined
>>>

基本上在jython下,如果我需要输入一个字符串,我不得不用引号括起来。如果我进入&#39; recospace&#39;在jython下的电话中。

> .\bin\jython
Jython 2.7.0 (default:9987c746f838, Apr 29 2015, 02:25:11)
[Java HotSpot(TM) 64-Bit Server VM (Oracle Corporation)] on java1.8.0_31
Type "help", "copyright", "credits" or "license" for more information.
>>> currentQryAlias=input('Please enter alias for the query: ')
Please enter alias for the query: 'recospace'
>>>

谢谢, DP

1 个答案:

答案 0 :(得分:1)

Jython版本兼容python 2.7,而实际的python调用是python 3.x.这实际上与Jython无关。

与v3相比,输入调用在python v2中做了不同的事情。

this页面上记录得很清楚。