我所追求的:允许用户仅输入0或1(总共4个变量).如果用户输入例如2,1,1,0,则应该抛出错误说明Only 0 and 1 allowed.
到目前为止我尝试过的:
if (firstBinary != 0 or firstBinary != 1 and secondBinary != 0
or secondBinary != 1 and thirdBinary != 0 or thirdBinary != 1
and forthBinary != 0 or forthBinary != 1):
print('Only 0 and 1 allowed')
else:
print('binary to base 10: result)
Run Code Online (Sandbox Code Playgroud)
问题:当我使用这样的语句时,即使我输入例如5,我也得到结果,或者即使我写了全部1或0,我也得到"只允许0和1".
我发现这似乎是我所追求的,但它仍然没有像我想要的那样工作:
if 0 in {firstBinary, secondBinary, thirdBinary, forthBinary} or 1 in \
{firstBinary, secondBinary, thirdBinary, forthBinary}:
print("Your result for binary to Base 10: ", allBinaries)
else:
print('Only 0 and 1 allowed')
Run Code Online (Sandbox Code Playgroud)
这段代码基本上给了我与第一个代码示例相同的结果.
用途any:
v1, v2, v3, v4 = 0, 1, 1, 2
if any(x not in [0, 1] for x in [v1, v2, v3, v4]):
print "bad"
Run Code Online (Sandbox Code Playgroud)
当然,如果你使用一个列表,它看起来会更好
inputs = [1, 1, 0 , 2]
if any(x not in [0, 1] for x in inputs):
print "bad"
Run Code Online (Sandbox Code Playgroud)