对于这个程序我试图使用来自用户的输入搜索字典中的键,在这种情况下是字典'options1'。
'''
set up the dictionary with the information
---------------------------
these are the options for the user to input
'''
options1 = dict = {'1' : "blah",
'2' : "blah?",
'3' : "blah"}
options2 = dict = {'1':"blah",
'2':"blah"}
options3 = dict = {1:"blah?",
'2':"blah!"}
'''
these are the replies to the users inputs
'''
replies = dict = {'zero':"blah",
'one':"blah",
'two':"blah",
'three':"'backs away slowly'"}
user_input = False #setting the variable to false as default
class Choice:
if user_input == False: #checks to see if the variable 'user_input' is False.
print(replies["zero"]) #will then print the starting text
print("------------------------------------") #seperate line for easier reading
print("---" + options1["1"] + " _ 1") #prints the options for the reader
print("---" + options1["2"] + " _ 2") #prints the options for the reader
print("---" + options1["3"] + " _ 3") #prints the options for the reader
reply = input("*type one of the numbers shown above to reply* ") #allows the user to input a number that reprisents an argument that they want to pass
if reply in dict.keys(): #checks to see if the number input by teh user is in the options1 dictionary.
print('true')
else:
print('false')
这里我使用变量'reply'来检查字符串是否与options1字典中的键相同。例如,字符串'2'将与options1('2')键相同。
我希望代码打印文本为true以显示它可以找到密钥但是输出false以显示它无法找到密钥。
if reply in dict.keys(): #checks to see if the number input by teh user is in the options1 dictionary.
print('true')
else:
print('false')
不确定为什么会这样做。我已经尝试在dict.keys()中使用'options1 [reply]'坚果会给我一个错误“TypeError:'dict'对象不可调用”
任何帮助将不胜感激。
(同样为了澄清这个程序,假设他们可以选择回复给定对话的用户对话选项)
答案 0 :(得分:0)
如果要检查其键,而不是dict
,则必须使用options1if str(reply) in options1.keys(): #checks to see if the number input by teh user is in the options1 dictionary.
print('true')
else:
print('false')
答案 1 :(得分:0)
看起来你很遗憾在这里遇到了很多问题,但我会回答你提出的具体问题:
'字典'是python中Dictionary字典数据类型的名称,所以你要做的是使用类型名称而不是变量。有点像问str.index(' a')。你必须使用变量而不是类型。 取而代之:
if reply in dict.keys():
print('true')
else:
print('false')
用这个:
if reply in options1.keys():
print('true')
else:
print('false')
完全符合您的要求。这创建了字典键的迭代器,以及' in'关键字用于搜索。如果你尝试在基本字典类型上执行此操作,解释器将会混淆并崩溃(当我尝试运行它时它总是返回false)
此外,正如评论中所述,您可以随处执行此操作:
options1 = dict = {
这是不必要的和危险的。不建议使用与类型(或关键字)相同的变量名称。