1

亲爱的 C 程序员同胞,很抱歉向您提出这样一个基本问题,但是这相当于:

val = dim == 0 ? 1 : S(dim) * pow(radius * 0.5, dim) / dim

在 Python 中?我正在包装一些 C 代码,我需要知道这一行发生了什么,以便与 Python 结果进行比较......

4

2 回答 2

8

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
于 2013-08-24T19:02:23.787 回答
1

对于大多数语言,包括 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 代码非常好!

于 2013-08-24T19:36:11.553 回答