I currently have the code:
fleechance = random.randrange(1,5)
print fleechance
if fleechance == 1 or 2:
print "You failed to run away!"
elif fleechance == 4 or 3:
print "You got away safely!"
fleechance is constantly printing as 3 or 4, but I continue to get the result "You failed to run away!" ,can anyone tell me why this is happening?
Because you're not asking whether
fleechance
is 1 orfleechance
is 2; you're asking whetherfleechance
is 1, orOf course, that second part of the condition is always true. Try
Try
Alternatively, if those are the only possibilites, you can do
The
if
statement is working as designed, the problem is that order of operations is causing this code to do something other than that you want.The easiest fix would be to say:
The way you wrote your if statements is wrong. You tell python to check if fleechance equals 1 is true or if 2 is true. A non-zero integer always means true in a condition. You should wrote :
The expression
fleechance == 1 or 2
is equivalent to(fleechance == 1) or (2)
. The number2
is always considered “true”.Try this:
EDIT: In your situation (only 2 possibilities), the following will be even better: