Python中有'?'控制流吗?

6 投票
2 回答
2749 浏览
提问于 2025-04-17 04:22

可能重复的问题:
Python 三元运算符

在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 个回答

5

你可以试试这个简短的表达式 return n > 1 and fibo(n-1) + fibo(n-2) or n。虽然这不是三元运算符,但在这个情况下,它简单明了,能完成任务。

12

是的,条件表达式在Python 2.5及以上版本中是可以使用的:

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

撰写回答