Python - 在 return 内嵌套 if else

标签 python

if-else 表达式可以作为“return”的参数吗?

这是我正在尝试做的事情的示例:

return m +
    if a:
        x
    elif b:
        y
    else c:
        z

我可以写成:

addend = m
if a:
        m += x
    elif b:
        m += y
    else c:
        m += z
return m

最佳答案

那么,可以使用Python的三元方法,比如:

return m + (x if a else y if b else z)

但是这样做可能更具可读性:

if a: return m + x
if b: return m + y
return       m + z

As an aside, else c: is not really sensible code: you use if/elif if you have a condition, or else for default action (no condition).

<小时/>

例如,就您在评论中发布的代码而言,您可以选择简洁但仍然是自记录的:

def rental_car_costs(days):
    basecost = days * 40
    discount = 50 if days >= 7 else 20 if days >= 3 else 0
    return basecost - discount

关于Python - 在 return 内嵌套 if else,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32042632/

相关文章:

python - Spark Streaming with Python - 未找到类异常

python - 如何在 Powershell 应用程序中使用 python 脚本的输出?

python - 干净地卸载共享库并使用 Python CFFI 重新开始

python - Pandas 用第一行填充非空数据

python - 类字段的类型注释

python - IronPython 中 urllib 的 PROTOCOL_TLS 错误

python - Python 列表理解中的平等

python - C++ 2D vector 到 2D pybind11 数组

python - Jupyter 不会从 Anaconda 启动

python - 分析和解释python代码的工具