Python等价于C表达式

时间:2013-08-24 19:01:02

标签: python c expression

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

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

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

2 个答案:

答案 0 :(得分:8)

Python Conditional Expression

从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

答案 1 :(得分: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代码是非常很好!