擅长:python、mysql、java
<p>有两种解决方案,一种是更干净</p>
<p>第一个(dirty)是使用<code>eval</code>,因为用户作为输入传递的<code>a</code>或<code>b</code>将作为字符串计算,而不是作为名为<code>a</code>的变量计算。
因此,您必须返回<code>float(x) * eval(y)</code></p>
<p>但是<code>eval</code>的使用受到极大的阻碍</p>
<p>我认为更简洁的方法是在<code>dict</code>中声明预定义数组,并查找用户提供的密钥,如下所示:</p>
<pre class="lang-py prettyprint-override"><code>import numpy as np
arrays = {
"a": np.array([1, 3, 5, 7, 9]),
"b": np.array([2, 4, 6, 8, 10])
}
coefficient, array_name = input().split()
print(float(coefficient) * arrays[array_name])
</code></pre>
<p>注意:在原始代码中,<code>a = [1, 3, 5, 7, 9]</code>定义了一个列表。而且不能将<code>float</code>和列表相乘。你最终可以乘和<code>int</code>和一个列表,但这不是你想要的,它会复制你的列表:)</p>