如何检查print语句中是否存在变量

时间:2017-02-22 04:04:17

标签: python-3.x error-handling decorator

所以我有一个包含如下循环的函数:

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语句是否有结果。

1 个答案:

答案 0 :(得分:0)

我不明白你为什么在for循环中有try / catch。没有条件会导致异常。

无论如何,一个简单的解决方案是在进入循环之前用初始值初始化变量。您可以稍后进行比较以查看值是否已更改。