首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >写if语句的正确方式:

写if语句的正确方式:
EN

Stack Overflow用户
提问于 2022-01-06 06:26:32
回答 2查看 59关注 0票数 0

这似乎是一个非常基本的问题..。但由于某种原因我不能清醒地思考..。

如何在不复制两次“否则”语句的情况下编写以下内容?(不需要将其放入函数中)

我写了print("a")和print("b"),但它最初有4-6个语句。

代码语言:javascript
运行
复制
    if os.path.exists(new_output_folder) and os.path.exists(prev_output_folder):
        subdirs_lastrun = [os.path.basename(x[0]) for x in os.walk(new_output_folder)]
        subdirs_prevrun = [os.path.basename(x[0]) for x in os.walk(prev_output_folder)]
        
        if not "ref" in subdirs_lastrun and "ref" in subdirs_prevrun:
            print("a")
        else:
            print("b")

    else:
        print("b")
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-01-06 06:44:22

您可以使用一个布尔值来决定必须在最后发生的复杂事情,比如:

代码语言:javascript
运行
复制
do_a = os.path.exists(new_output_folder) and os.path.exists(prev_output_folder)
if do_a:
    subdirs_lastrun = [os.path.basename(x[0]) for x in os.walk(new_output_folder)]
    subdirs_prevrun = [os.path.basename(x[0]) for x in os.walk(prev_output_folder)]
        
    do_a = not "ref" in subdirs_lastrun and "ref" in subdirs_prevrun

if do_a:
    print("a")
else:
    print("b")

显然,如果(如您所述) a/b路径比简单打印更复杂,这将变得更有利。

票数 1
EN

Stack Overflow用户

发布于 2022-01-06 06:44:22

代码语言:javascript
运行
复制
while(True):
    if os.path.exists(new_output_folder) and os.path.exists(prev_output_folder):
            subdirs_lastrun = [os.path.basename(x[0]) for x in os.walk(new_output_folder)]
            subdirs_prevrun = [os.path.basename(x[0]) for x in os.walk(prev_output_folder)]
            
            if not "ref" in subdirs_lastrun and "ref" in subdirs_prevrun:
                print("a")
                break
    # else case
    print("b")
    break
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70603305

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档