python - 在 Python 中是否可以在 RETURN 语句之后制作一个包含多个 IF 和 OR 的单行代码?

标签 python return conditional-statements

我希望很清楚我想用这个函数做什么:

def this_one_operator(math_operator, num1, num2):
    return num1 * num2 if operator == "*" \
        or num1 / num2 if operator == "/" \
        or num1 + num2 if operator == "+" \
        or num1 - num2 if operator == "-"

显然,它不起作用(SyntaxError:语法无效)。

对不起,如果我重复这个问题。我尽力在这里找到如何处理这个问题。另外,如果问题不准确,我很感激如何编辑问题的任何建议。

谢谢。

最佳答案

Python 有一个 value if condition else default ternary operation,你可以为这个结果叠加。但是,它不是很紧凑,做您想做的事情也不是很 pythonic。

相反,您可以尝试:

import operator 

def binary_op(op, lopd, ropd):
    return { '/' : operator.floordiv,
             '*' : operator.mul,
             '+' : operator.add,
             '-' : operator.sub,
             '%' : operator.mod }[op](lopd, ropd)

关于python - 在 Python 中是否可以在 RETURN 语句之后制作一个包含多个 IF 和 OR 的单行代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42309810/

相关文章:

c - malloc ,如何在函数中自由返回值

javascript - 在 switch/case 中使用 return 后还需要使用 break 吗?

c++ - 有条件地从文件中逐行读取

javascript - 如何删除逗号并替换为句点javascript

python - 如何使用 SerializerMethodField 创建延迟字段?

python - 在一行中打印 f 个列表项

C API : why are functions using returnParameters with buffer + size instead of returning char*

opengl - 使用条件语句在颜色之间反弹而不是弹出

python - 如何忽略Rollbar中的404异常?

python - 属性错误 : 'Recognizer' object has no attribute 'recognize'