亲爱的 C 程序员同胞,很抱歉向您提出这样一个基本问题,但是这相当于:
val = dim == 0 ? 1 : S(dim) * pow(radius * 0.5, dim) / dim
在 Python 中?我正在包装一些 C 代码,我需要知道这一行发生了什么,以便与 Python 结果进行比较......
亲爱的 C 程序员同胞,很抱歉向您提出这样一个基本问题,但是这相当于:
val = dim == 0 ? 1 : S(dim) * pow(radius * 0.5, dim) / dim
在 Python 中?我正在包装一些 C 代码,我需要知道这一行发生了什么,以便与 Python 结果进行比较......
从 Python 2.5 开始,条件表达式 -a ? b : c
可以这样写:
b if a else c
因此,您的表达式将等效于:
val = 1 if dim == 0 else S(dim) * pow(radius * 0.5, dim) / dim
对于大多数语言,包括 Python(没有大括号 (?) 和正确的缩进),以下 C 语句:
val = (dim == 0) ? 1 : S(dim) * pow(radius * 0.5, dim) / dim;
可以写成:(细微差别是特定于语言的,等等)
if (dim == 0)
{
val = 1;
} else {
val = S(dim) * pow(radius * 0.5, dim) / dim;
}
但是,上一个答案中给出的 Python 代码非常好!