繁体   English   中英

Try-except with if 条件?

[英]Try-except with if conditions?

我在我的函数中创建了 if-else 语句来检查是否满足某些条件。 但是,我需要将其转换为 try-except 语句,因为我正在处理的应用程序已设置为满足条件时创建日志信息语句,不满足时创建日志错误语句。 目前我的代码看起来像:

if (conditon1 == 1):
    print('Everything is good')
else:
    orig_diff = list(set(sheetnames).difference(file.sheet_names))
    new_diff = list(set(file.sheet_names).difference(sheetnames))
    if len(orig_diff) != 0:
        print("{} cond1 not met".format(','.join(orig_diff)))
    if len(new_diff) != 0:
        print("{} cond2 not met".format(','.join(new_diff)))

我希望它是这样的,如果满足 if 条件,那么它将打印 info 语句。 但如果不满足,则执行else语句。 就像是:

try:
   return bool(condition1 == 1)
   print('Everything is good')
except:
   orig_diff = list(set(sheetnames).difference(file.sheet_names))
        new_diff = list(set(file.sheet_names).difference(sheetnames))
        if len(orig_diff) != 0:
            print("{} cond1 not met".format(','.join(orig_diff)))
        if len(new_diff) != 0:
            print("{} cond2 not met".format(','.join(new_diff)))

但是,我似乎无法让它工作,即使不满足条件,它也会返回“一切都很好”。

我认为这将是一个很好的方法——如果 cond1 等于 1,它会沿着快乐的路径走下去else块。 如果没有( assert失败,因此不满足条件),它会执行您想要的操作 - 打印一条错误消息。

try:
   assert(condition1 == 1)
except AssertionError:
   orig_diff = list(set(sheetnames).difference(file.sheet_names))
        new_diff = list(set(file.sheet_names).difference(sheetnames))
        if len(orig_diff) != 0:
            print("{} cond1 not met".format(','.join(orig_diff)))
        if len(new_diff) != 0:
            print("{} cond2 not met".format(','.join(new_diff)))
else:
    print("Everything's fine!")

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM