<p>好的,这里有几件事</p>
<p>第一,这不是如何定义全局变量。确保在将全局变量定义为全局变量后,为其指定一个值</p>
<pre><code>global foo
foo = "a"
</code></pre>
<p>其次,为了检查一个变量是否等于两个或多个值,<code>binaryOrDecimal == 'b' or 'B':</code>将不起作用。您可以使用<code>in</code>来检查元素是否出现在iterable中</p>
<pre><code>if foo in ["bar1","bar2"]
</code></pre>
<p>但是在您的情况下,在接受输入后,如果用户输入是大写的,则可以使用<code>lower()</code>将其小写。这样,您就不必将输入与2个值进行比较</p>
<p>所以,如果我们解决了所有这些问题,你应该得到这样的结果</p>
<pre><code>def conversion():
global binaryOrDecimal
binaryOrDecimal = input('''Which way are you trying to convert?
A: Binary to Decimal
B: Decimal to Binary
''').lower()
conversion()
if binaryOrDecimal == 'a':
print('test')
elif binaryOrDecimal == 'b':
print('test2')
else:
print('invalid argument, please try again')
conversion()
</code></pre>
<p>我想指出的最后一件事是,尽量不要使用全局变量。而是返回一个值。这样,函数中的所有变量都在局部范围内,其他函数不知道这些变量</p>
<pre><code>def conversion():
binaryOrDecimal = input('''Which way are you trying to convert?
A: Binary to Decimal
B: Decimal to Binary
''').lower()
return binaryOrDecimal
binaryOrDecimal = conversion()
if binaryOrDecimal == 'a':
print('test')
elif binaryOrDecimal == 'b':
print('test2')
else:
print('invalid argument, please try again')
binaryOrDecimal = conversion()
</code></pre>
<p>希望这有帮助:)</p>