我很遗憾基本语法错误,但我看不到它。思考?它标记为###< ---
通过辅助文件调用此函数,在主文件中循环为true。它会一直运行,直到下面发现错误。
def simulateTree():
建立var。
age = 0
avg_lifespan_tree = 3
life_expectancy = random.normalvariate(avg_lifespan_tree, 1)
设置条件while循环
while (age < life_expectancy):
age = age + 0
sigma = 1
mu_d = .1
d_growth = float (abs (random.normalvariate(mu_d, sigma)))
d0 = 0
return age
定义增长计算器
def growth_calculate(sigma, d_growth, d0):
yearly_growth = age * (height_growth() + d_growth())
growth = 0 + yearly_growth
定义身高计算器
def height_growth(sigma, d_growth, d0):
diameter = d0 + d_growth
b1 = .35
b2 = .25
b3 = .35
e_pow = - b2 * diameter
e = math.pow(math.e, e_pow)
e_1 = 1 - e
e_2 = math.pow(e_1, b3)
return (e_2*b1), diameter
h = growth_calculate(sigma, mu_d, d0)
错误如下。我把整个事情都附在了上下文中。
def carbon_calc(h,diameter):
if (diameter<11):
w = .25
return w
else (diameter>=11): ### <---invalid syntax error here
w = .15
return w
weight_above_ground = w * diameter * diameter * h
weight_total = 1.2 * weight_above_ground
weight_dry =weight_total * .725
weight_carbon = weight_dry * .5
C = weight_carbon * 3.6663
return C
我添加了一些多余的文本来达到堆栈溢出的目标,即使这个问题很简单直接。这是一个可变定向设计的问题。我添加了一些多余的文本来达到堆栈溢出的目标,即使问题很简单直接。这是一个可变导向设计的问题。我添加了一些多余的文本来达到堆栈溢出的目标,即使问题是简单和直接的。这是一个可变导向设计的问题。我添加了一些多余的文本来达到堆栈溢出的目标,即使问题是简单和直接的。这是一个可变导向设计的问题。我添加了一些多余的文本来达到堆栈溢出的目标,即使问题是简单和直接的。这是一个可变导向设计的问题。我添加了一些多余的文本来达到堆栈溢出的目标,即使问题是简单和直接的。这是一个可变导向设计的问题。我添加了一些多余的文本来达到堆栈溢出的目标,即使问题是简单和直接的。这是一个可变导向设计的问题。我添加了一些多余的文本来达到堆栈溢出的目标,即使问题是简单和直接的。这是一个可变导向设计的问题。我添加了一些多余的文本来达到堆栈溢出的目标,即使问题是简单和直接的。这是一个面向可变设计的问题。
答案 0 :(得分:6)
你很接近,你需要的不是else
,而是elif
。改变它,你就完成了!
为什么?
因为else
不接受条件参数。当其他条件都是False
时,它的块中的代码将被运行。好吧,elif
确实如此,这就是你想要的。
你可以这样做:
elif (diameter>=11):
w = .15
return w
或者:
else: #d is not < 11, so it must be >= 11
w = .15
return w
参考:http://docs.python.org/2/reference/compound_stmts.html#else
希望这有帮助!