创建字典时,询问的raw_input的顺序是意外的

时间:2014-09-21 00:51:39

标签: python python-2.7 dictionary

我有一段这样的代码:

terms = {}
while 1:
    terms[raw_input('input latin: ')] = raw_input('input meaning: ')

我原本期望先输入一个拉丁词,然后给它翻译,然后将其添加到字典中。

然而,我被提示:

$ python latinvocab.py
input meaning: 

注意首先要求翻译,而不是拉丁文。


显然,绕过这种方法的方法是引入一些变量,或许可以:

terms = {}
while 1:
    latin = raw_input('input latin: ')
    translation = raw_input('input meaning: ')
    terms[latin] = translation

但是上面的代码发生了什么?

1 个答案:

答案 0 :(得分:3)

赋值语句的右侧始终在左侧之前进行评估,如所描述的(尽管不完全明确)here。这很自然,因为在x = someFunction()这样的作业中,它必须先评估someFunction()才能将其值分配给任何内容。