是否可以在Python中使用RETURN语句后生成具有多个IF和OR的单行程序?

pyr*_*dka 2 python conditional return

我希望我很清楚我想用这个功能做什么:

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 == "-"
Run Code Online (Sandbox Code Playgroud)

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

对不起,如果我重复这个问题.我尽力在这里找到如何处理这个问题.此外,我感谢任何建议如何编辑问题,如果它不准确.

谢谢.

agh*_*ast 7

Python有一个value if condition else default 三元操作,您可以为此结果进行堆叠.然而,它不是非常紧凑,并且不是非常pythonic做你似乎想做的事情.

相反,您可以尝试:

import operator 

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