【发布时间】:2013-09-16 13:26:00
【问题描述】:
我正在复习我的 Python,但我对某些事情有些困惑,以下代码无法按预期工作:
def a():
print "called a"
def b():
print "called b"
dispatch = {'go':a, 'stop':b}
dispatch[input()]()
当我在控制台中输入单词 go 时,我得到“NameError: name 'go' is not defined”,但是当我输入 'go'(带引号)时它工作正常。 input() 不返回字符串吗?如果不是,那么不应该使用 str() 将输入转换为字符串吗?
当我将代码更改为:
dispatch[(str(input())]()
我仍然得到相同的行为。
注意:我使用的是 Python2.7,如果它有所作为的话。
对不起,如果这很明显,我已经有几年没有使用 Python了!
【问题讨论】:
标签: python python-2.7