我试图编写一个二进制和十进制转换器,但我挂断了一个变量
def conversion():
global binaryOrDecimal = input('''Which way are you trying to convert?
A: Binary to Decimal
B: Decimal to Binary
''')
conversion()
if binaryOrDecimal == 'a' or 'A':
print('test')
elif binaryOrDecimal == 'b' or 'B':
print('test2')
else:
print('invalid argument, please try again')
conversion()
我在第2行得到了错误“预期语句结束”和“预期语句,发现Py:EQ”
我自己也是一个初学者,但我不认为你可以给一个变量赋值,然后在同一行使用全局关键字。因此,首先必须定义全局变量:
然后为其指定一个值:
因此,总体而言,您的功能应该是:
好的,这里有几件事
第一,这不是如何定义全局变量。确保在将全局变量定义为全局变量后,为其指定一个值
其次,为了检查一个变量是否等于两个或多个值,
binaryOrDecimal == 'b' or 'B':
将不起作用。您可以使用in
来检查元素是否出现在iterable中但是在您的情况下,在接受输入后,如果用户输入是大写的,则可以使用
lower()
将其小写。这样,您就不必将输入与2个值进行比较所以,如果我们解决了所有这些问题,你应该得到这样的结果
我想指出的最后一件事是,尽量不要使用全局变量。而是返回一个值。这样,函数中的所有变量都在局部范围内,其他函数不知道这些变量
希望这有帮助:)
相关问题 更多 >
编程相关推荐