关于三元运算符:有?操作符来控制python中的语句吗?

Is There '?' Control Flow in Python?

本问题已经有最佳答案,请猛点这里访问。

Possible Duplicate:
Python Ternary Operator

是否有类似于'?'的控制流运算符?Python中的C/C++?

如果有类似的代码块:

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

将出现如下错误:

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


是的,条件表达式在python 2.5+中可用:

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


你可以试试这个短路表达式return n > 1 and fibo(n-1) + fibo(n-2) or n。虽然这不是三元语句,但它很简洁,并在这个场景中完成了工作。