相关疑难解决方法(0)

Python if语句效率

一位朋友(低级技能级别的娱乐python脚本编写者)让我查看一些代码.我注意到他有7个单独的陈述,基本上说.

if ( a and b and c):
    do something
Run Code Online (Sandbox Code Playgroud)

陈述a,b,c都测试了它们的相等或缺乏设定值.当我看到它时,我发现由于测试的性质,我可以将整个逻辑块重写为2个分支,从不超过3个深度并且很少超过第一个级别(进行最罕见的测试)第一).

if a:
    if b:
        if c:
    else:
        if c:
else:
    if b:
        if c:
    else:
        if c:
Run Code Online (Sandbox Code Playgroud)

对我来说,从逻辑上讲,如果你做的更少,更简单的测试更快失败并继续前进,它似乎应该更快.我真正的问题是

1)当我说if if时,如果if为真,那么else会被完全忽略吗?

2)理论上会

如果(a和b和c)

花三倍于单独的if语句会花多少时间?

python performance

16
推荐指数
5
解决办法
2万
查看次数

多个if条件,无嵌套

我下面有一个示例代码,需要一些帮助。该代码在开始时将'结果'变量设置为False,并且只有在满足所有'if'条件的情况下,才应将其设置为True。有更有效的方法吗?我试图避免嵌套的“ if”语句。

谢谢!

    outcome = False

    while True:
        if a != b:
            print("Error - 01")
            break

        if a["test_1"] != "test_value":
            print("Error - 02")
            break

        if "test_2" not in a:
            print("Error - 03")
            break

        if a["test_3"] == "is long data string":
            print("Error - 04")
            break

        outcome = True
        break
Run Code Online (Sandbox Code Playgroud)

python if-statement while-loop python-3.x

5
推荐指数
1
解决办法
98
查看次数