Validating the value of several variables
<p><strong>What I am after:</strong> The user is allowed to input only 0 or 1 (for a total of 4 variables). If the user inputs for example 2, 1, 1, 0 it should throw an error saying <code>Only 0 and 1 allowed</code>.</p>

<p><strong>What I've tried so far:</strong></p>

<pre><code>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)
</code></pre>

<p><strong>Problem:</strong> When I use such a statement, I get either the result even when I input for example 5, or I get 'only 0 and 1 allowed' even though I wrote all 1 or 0.</p>

<hr>

<p>I found this which seemed to be what I was after, but it is still not working like I want it to:</p>

<pre><code>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')
</code></pre>

<p>This code basically gives me the same result as what I get with the first code sample.</p>

<p>I'd break it down into the two parts that you're trying to solve: </p>

<p>Is a particular piece of input valid?
 Are all the pieces of input taken together valid? </p>

<pre><code>&gt;&gt;&gt; okay = [0,1,1,0]
&gt;&gt;&gt; bad = [0,1,2,3]

&gt;&gt;&gt; def validateBit(b):
...    return b in (0, 1)

&gt;&gt;&gt; def checkInput(vals):
...    return all(validateBit(b) for b in vals)
...
&gt;&gt;&gt; checkInput(okay)
True
&gt;&gt;&gt; checkInput(bad)
False
&gt;&gt;&gt;
</code></pre>

python