在那儿 '?' Python中的控制流程?

时间:2011-10-15 14:25:22

标签: python ternary-operator

  

可能重复:
  Python Ternary Operator

控制流操作符是否类似'?' python中的C / C ++?

如果有一大堆类似于此的代码:

return n <= 1 ? n : fibo(n-1) + fibo(n-2)

会出现这样的错误:

File "fibonacci.py", line 2
    return n <= 1 ? n : fibo(n-1) + fibo(n-2)
                  ^
SyntaxError: invalid syntax

2 个答案:

答案 0 :(得分:12)

是的,条件表达式为available in Python 2.5+

return n if n <= 1 else fibo(n-1) + fibo(n-2)

答案 1 :(得分:5)

您可以尝试使用此短路表达式return n > 1 and fibo(n-1) + fibo(n-2) or n。虽然这不是三元语句,但它很简洁并且在这种情况下完成了工作。