<p>好的,我冒昧地解释了你的问题。似乎你想做某事,但你不知道怎么做。我将提供一个答案,以帮助您学习如何调试程序,以及如何事情的算法。你知道吗</p>
<p>程序的第一部分几乎是正确的。没什么不对的。您要做的是从打印的选择中选择一辆车。代码的问题在于这一部分:</p>
<pre><code>def cars(car):
Camaro = car1
SS_Sedan = car2
M3_Sedan = car3
GLE_Coupé = car4
</code></pre>
<p>这在很多方面都是错误的。首先,<code>car1</code>,<code>car2</code>等,不会像你想象的那样工作。Python将尝试在函数的局部作用域中查找名为<code>car1</code>、<code>car2</code>等的对象。<a href="https://docs.python.org/3.5/reference/executionmodel.html" rel="nofollow">ref</a>如果找不到它,它将在全局空间中搜索该变量的绑定。如果找不到它,它将引发<code>NameError</code>。你知道吗</p>
<p>此外,此代码不允许您选择汽车。您要做的是:<strong>检查参数<code>car</code>包含的值,并基于该值返回特定值。你可以用这样的<code>if/elif</code>语句:</p>
<pre><code>def cars(car):
if car == 1:
return 'Camaro'
elif car == 2:
return 'SS_Sedan'
elif car == 3:
return 'M3_Sedan'
elif car == 4:
return 'GLE_Coupe'
</code></pre>
<p>现在,好的实践也有这样一种说法,即你所考虑的输入不是预期的。在本例中,为错误的输入提供一个额外的<code>else</code>case帐户,并让用户了解这一点可能是一个好主意,因此您也可以添加它。你知道吗</p>
<pre><code>... (snip) ...
elif car == 4:
return 'GLE_Coupe'
else:
return 'Invalid Car' # you could return None or even better raise an exception, but since you are a beginner let's keep it simple
</code></pre>
<p>请注意,在所有情况下,函数都返回一个<code>string</code>,其中包含汽车模型,而不仅仅是将随机对象绑定到名称。如果您所编写的代码按照您的预期工作,那么它将类似于枚举(您可能想了解<a href="https://docs.python.org/3/library/enum.html" rel="nofollow">enums here</a>)。你知道吗</p>