所以我有一个包含如下循环的函数:
for k,v in dict1.items():
try:
if dict1[k] != dict2[k]:
key_diff = k
value_diff = dict1 [k]
except:
pass
如果定义了key_diff和value_diff(即两个词典之间存在差异),那么我想在其他地方打印这些变量中的每一个。但问题是我想在这样的多行打印语句中打印它(注意最后一行)......
print("File extension count:",
len(ext1_lst), '.ext1 files',
len(ext2_lst), '.ext2 files',
'Missing File Types:', '\n',
'Missing ext1 files =', ','.join(set(ext1_names).difference(ext1_lst)),
'Missing ext2 files =', 'there is/are', value_diff, 'missing', key_diff, 'files', '\n\n\n',
如果字典是相同的,代码将无法工作,因为没有创建字典 - 我在分配之前引用了#34; unboundlocalerror。"我的问题是如何检查print语句中的try / except语句是否有结果。
答案 0 :(得分:0)
我不明白你为什么在for循环中有try / catch。没有条件会导致异常。
无论如何,一个简单的解决方案是在进入循环之前用初始值初始化变量。您可以稍后进行比较以查看值是否已更改。