在python中,elif是否必须跟在else后面作为一条通用规则?

在python中,elif是否必须跟在else后面作为一条通用规则?,python,pep,Python,Pep,我编写了一些python代码,如: if platform == 'ios': do_something() elif platform == 'android': do_something_else() 这段代码遭到了我一位同事的强烈批评。他指责我为什么没有一个else块来处理剩下的部分 在我看来,我所需要做的就是处理这两种情况,因为我没有编写else块。我的意思是在其他情况下,程序只会让它通过这个检查并继续运行 对于任何if elif块,是否需要else块(遵守某些政治公众

我编写了一些python代码,如:

if platform == 'ios':
    do_something()
elif platform == 'android':
    do_something_else()
这段代码遭到了我一位同事的强烈批评。他指责我为什么没有一个else块来处理剩下的部分

在我看来,我所需要做的就是处理这两种情况,因为我没有编写else块。我的意思是在其他情况下,程序只会让它通过这个检查并继续运行

对于任何if elif块,是否需要else块(遵守某些政治公众人物规则)

如果在道德上是强制性的,我是否应该将我的代码写成:

if platform == 'ios':
    do_something()
if platform == 'android':
    do_something_else()

但我还是觉得我的第一块还好。我错了吗?

从语法角度看,else
不是必需的,也不是由
PEP8
强制执行的。如果您打算什么都不做,如果
平台
不是
ios
android
,那么这是完全可以的

或者,您可以有一个映射“平台>功能”,大致如下:

mapping = {'ios': do_something, 'android': do_something_else}
f = mapping.get(platform)
if f:
    f()

这取决于您的代码,但在这种情况下,任何一种方式都可以。有一个逻辑上的原因,你的代码需要是这样的,这很好。你不必一直遵守规则,你必须能够一直尝试不同的东西。

Zen,你的同事错了。这取决于你的程序逻辑,你是否应该处理
else
案例。如果是错误情况,是的,您应该处理它。如果只有两个病例需要特殊治疗,而正常病例不需要治疗,那么不,为什么还要麻烦写一个
else
病例呢。你应该问问你的同事他们是否更喜欢
else:pass
…@SethMMorton,他不敢和他争论,他是高级职员,脾气很坏。当然。我在说明情况的荒谬性。