我如何在Python中压缩if/else语句到一行?
当前回答
有条件表达式:
a if cond else b
但这是一个表达,不是一个陈述。
在if语句中,if(或elif或else)可以与块体写在同一行,如果该块只是像这样:
if something: somefunc()
else: otherfunc()
但出于格式风格的考虑,不鼓励这样做。
其他回答
仅供作为值使用:
x = 3 if a==2 else 0
or
return 3 if a==2 else 0
Python的if可以用作三元运算符:
>>> 'true' if True else 'false'
'true'
>>> 'true' if False else 'false'
'false'
Python处理“三元”表达式的一个例子:
i = 5 if a > 7 else 0
转化为
if a > 7:
i = 5
else:
i = 0
在使用列表推导式时,或者有时在return语句中,这实际上很方便,否则我不确定它对创建可读的代码有多大帮助。
可读性问题在最近的SO问题中已经详细讨论过,用这种方法比在python中使用if-else语句更好。
它还包含了完成相同任务的各种其他聪明(有些令人困惑)的方法。仅仅根据这些帖子就值得一读。
有条件表达式:
a if cond else b
但这是一个表达,不是一个陈述。
在if语句中,if(或elif或else)可以与块体写在同一行,如果该块只是像这样:
if something: somefunc()
else: otherfunc()
但出于格式风格的考虑,不鼓励这样做。
推荐文章
- 有办法在Python中使用PhantomJS吗?
- 如何在Python中将if/else压缩成一行?
- 如何在Python 3中使用pip。Python 2.x
- 如何让IntelliJ识别常见的Python模块?
- Django:“projects”vs“apps”
- 如何列出导入的模块?
- 转换Python程序到C/ c++代码?
- 如何从gmtime()的时间+日期输出中获得自epoch以来的秒数?
- 在python模块文档字符串中放入什么?
- 我如何在Django中过滤一个DateTimeField的日期?
- 在Python中用索引迭代列表
- -e,——editable选项在pip install中什么时候有用?
- 使用pip命令从requirements.txt升级python包
- Django更改默认的runserver端口
- 输入对象的datetime。Datetime没有Datetime属性