如何使用原始输入来定义变量

3
这是我的代码:
Adherent = "a person who follows or upholds a leader, cause, etc.; supporter; follower."

word=raw_input("Enter a word: ")

print word

当我运行这段代码并输入Adherent时,会输出单词Adherent。如何让Adherent的定义弹出来呢?


你需要使用 input 函数。 - vaultah
@frostnational 这显然是Python 2.x版本,因为它使用了raw_inputprint语句。 - rlms
2
我建议你尝试一下这个教程 - rlms
@sweeneyrod 哦,对了。 - vaultah
@frostnational,是的,您不想调用该函数,因为它会评估用户的输入,而这几乎永远都不是您想要做的。 - rlms
2个回答

9
您可以(应该)使用一个字典,其中单词被映射到定义:dictionary
>>> word_dct = {"Adherent" : "a person who follows or upholds a leader, cause, etc.; supporter; follower."}
>>> word=raw_input("Enter a word: ")
Enter a word: Adherent
>>> word_dct[word]
'a person who follows or upholds a leader, cause, etc.; supporter; follower.'
>>>

创建动态变量是一种糟糕而且潜在危险的做法。不仅很容易失去对它们的跟踪,而且如果使用 execeval 来创建它们,您可能会执行任意代码。请参见 为什么应该避免使用 exec() 和 eval()? 以获取更多信息。即使是访问 localsglobals 也通常被看作是不可取的,而应优先使用列表或字典。

2
+1 用关联数组实现'dictionary'可能有更好的方法吗? - tobias_k

1

Adherent 是一个变量,你的第一行代码将其赋值为"一个跟随或支持领袖、事业等的人;支持者;追随者。"
word 也是一个变量,它的值由用户提供。
print() 打印变量存储的值。如果你想让用户选择一个单词进行定义,那么你需要一个单词字典。

words = {
  "Adherent": "a person who follows or upholds a leader, cause, etc.; supporter; follower.",
}

第一个值("Adherent")是键。它与第二个字符串相关联。
字典的工作方式类似于列表,但在列表中,值通过其索引访问。在字典中,值通过其键访问。

因此:

words = {
 "Adherent": "a person who follows or upholds a leader, cause, etc.; supporter; follower.",
}
word = raw_input("Word: ")
print words[word] #this is equivalent to words["Adherent"] if the user inputs "Adherent"

顺便提一下,对象和变量通常应以小写字母开头。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接