验证几个变量的值

Sun*_*Bro 3 python

我所追求的:允许用户仅输入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)

这段代码基本上给了我与第一个代码示例相同的结果.

per*_*eal 6

用途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)