擅长:python、mysql、java
<p>函数<code>fcostoproduccion</code>有几点:</p>
<ol>
<li>它总是返回<code>None</code></li>
<li>它没有副作用</li>
<li>它只使用传递给它的第一个参数(即,函数中的参数<code>periodo</code>是不受支持的)</李>
</ol>
<p>很难看出你的意图与功能,但我猜</p>
<ol>
<li>您想基于<code>X</code>计算一个值</li>
<li>计算期望返回值的公式因<code>X</code>的不同值而异,因此字典<code>switcher</code></李>
</ol>
<p>基于上述假设,您可以修改函数<code>fcostoproduccion</code>,如下所示:</p>
<pre><code>def fcostoproduccion(X):
switcher = {
1: 200 + 15 * X,
2: 100 + 20 * X,
3: 100 + 4 * (X ** (1 / 2)),
4: 100 + 3 * X,
5: 150 + 6 * X,
6: 200 + 12 * (X ** (1 / 2)),
7: 200 + 15 * X,
8: 100 + 10 * X,
9: 100 + 6 * (X ** (1 / 2)),
10: 200 + 5 * (X ** (1 / 2)),
11: 100 + 10 * X,
12: 150 + 6 * X
}
return switcher[X] if X in switcher else None #Handle cases where X switcher is not defined for X
>>> [fcostoproduccion(i) for i in range(14)]
[None, 215, 140, 106.92820323027551, 112, 180, 229.39387691339815, 305, 180, 118.0, 215.81138830084188, 210, 222, None]
</code></pre>