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

时间:2014-06-20 14:54:28

标签: python variables raw-input

这是我的代码:

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

word=raw_input("Enter a word: ")

print word

当我运行此代码并输入Adherent时,会生成Adherent一词。如何才能弹出Adherent的定义呢?

2 个答案:

答案 0 :(得分: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来创建它们,则存在执行任意代码的风险。有关详细信息,请参阅Why should exec() and eval() be avoided?。即使访问localsglobals,通常也不赞成使用列表或字典。

答案 1 :(得分:1)

Adherent是一个变量,您的第一行将值设置为"a person who follows or upholds a leader, cause, etc.; supporter; follower."
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"

只是旁注,对象和变量通常应以小写字母开头。