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

clw*_*wen 5 python ternary-operator

可能重复:
Python三元运算符

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

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

return n <= 1 ? n : fibo(n-1) + fibo(n-2)
Run Code Online (Sandbox Code Playgroud)

会出现这样的错误:

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

phi*_*hag 12

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

return n if n <= 1 else fibo(n-1) + fibo(n-2)
Run Code Online (Sandbox Code Playgroud)

  • 需要注意的是条件是在python版本的中间.类C语言有`<cond>?<yes_expr>:<no_expr>`但如果<cond> else <no_expr>,python会更流畅`<yes_expr> (6认同)

Nar*_*ala 5

您可以尝试使用这种短路表达式return n > 1 and fibo(n-1) + fibo(n-2) or n。尽管这不是三元声明,但它很简洁,可以在这种情况下完成工作。