I need to realize a complex if-elif-else statement in Python but I don't get it working.
The elif line I need has to check a variable for this conditions:
80, 443 or 1024-65535 inclusive
I tried
if ... # several checks ... elif (var1 > 65535) or ((var1 < 1024) and (var1 != 80) and (var1 != 443)): # fail else ...
Python Conditional Statements: If, Else & Switch.
It works that way in real life, and it works that way in Python. if statements can be nested within other if statements. This can actually be done indefinitely, and it doesn't matter where they are nested. You could put a second if within the initial if .
Decision-making in a programming language is automated using conditional statements, in which Python evaluates the code to see if it meets the specified conditions. The conditions are evaluated and processed as true or false. If this is found to be true, the program is run as needed.
This should do it:
elif var == 80 or var == 443 or 1024 <= var <= 65535:
It's often easier to think in the positive sense, and wrap it in a not:
elif not (var1 == 80 or var1 == 443 or (1024 <= var1 <= 65535)): # fail
You could of course also go all out and be a bit more object-oriented:
class PortValidator(object): @staticmethod def port_allowed(p): if p == 80: return True if p == 443: return True if 1024 <= p <= 65535: return True return False # ... elif not PortValidator.port_allowed(var1): # fail
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With