语言:Python(vers3.3);如果在里面语句和if语句
我的程序是无法进入最后我的if/else语句的。 我的代码:字典的语言:Python(vers3.3);如果在里面语句和if语句
def main_prog():
while True:
data_dict = {'123': 'viksun', '111': ['tord'], '333': ['test']} # Data storage.
print (data_dict) # Track-print
prompt = input('Enter command >>> ').split(" ")
if prompt[0] == 'lookup':
B_value = name_lookup_return_boolean(data_dict, prompt[1])
if B_value == True:
print (prompt[1],"'s number is:", name_lookup(data_dict, prompt[1]))
else:
print("The name:" ,prompt[1], "do not exist, please try a different name")
数据结构调查:data_dict
data_dict = {'123': ['name1'], '111': ['tord'], '333': ['test']} # Data storage.
功能描述: - :如果名称位于字典和虚假如果名字真 name_lookup_returns_boolean(data_dict, name)
返回boolean值不存在。 - name_lookup
返回对应于特定名称的关键。
功能已经被从整个程序单独测试,因此他们的工作。如果你需要它们,我也可以发布它们。
我不能让程序运行在节目的最后else
声明。如果名称在字典中不存在,将会运行:data_dict
。
下面是两个函数的实现:
def name_lookup(data_dict, name):
for key, value in data_dict.items():
if name in value:
return key
def name_lookup_return_boolean(data_dict, name):
for value in data_dict.items():
if name in value:
return True
else:
return False
这是我曾尝试没有sucess到use_but变化:
def name_lookup_version_02(data_dict, name):
for value in data_dict.values():
if name in value:
return True
else:
return False
在这一行:
if B_value == True:
我猜B_value
持有真正的价值,而不是True
。试试这个:
if B_value:
好的,感谢您的帮助。 – VIKSUN 2013-05-08 09:27:56
的问题是在你的name_lookup_return_boolean
功能。这两种条件都返回True
。你也应该列举两个key
和value
否则值将被分配一个元组。
它应该是这样的:
def name_lookup_return_boolean(data_dict, name):
for key,value in data_dict.items():
if name in value:
return True
UPDATE:测试后,我意识到以前的答案是错误的 - 只匹配第一个值
感谢您的回答。但是这并没有解决它。 这是一个程序运行的例子: {'111':['tord'],'123':['viksun'],'333':['test']} Enter command >>> lookup asdd asdd的号码是:无 {'111':['tord'],'123':['viksun'],'333':['test']} 输入命令>>> – VIKSUN 2013-05-08 09:37:34
尝试输入'lookup 123',正如我在我的回答中所建议的那样。另外,正如我在我的回答中所说的,如果您需要更多帮助,您将需要提供name_lookup函数的定义,因为这可能是问题所在。行! – 2013-05-08 09:40:56
行!发布了2个功能: – VIKSUN 2013-05-08 11:08:54
如果这是蟒蛇,我猜从语法上讲,您可能想要在data_dict.keys():'中使用'if [1]'。你不需要定义一个单独的函数。另一方面,如果这是伪代码,那么帮助很难,因为错误通常是代码中的小错误的结果。 – Dolphiniac 2013-05-06 14:55:12
您可以添加用作标签的语言吗? – 2013-05-06 14:55:14
如何实现'name_lookup_return_boolean'? – 2013-05-06 14:59:16