Python Conditional Variable Setting
Question:
For some reason I can’t remember how to do this – I believe there was a way to set a variable in Python, if a condition was true? What I mean is this:
value = 'Test' if 1 == 1
Where it would hopefully set value to ‘Test’ if the condition (1 == 1) is true. And with that, I was going to test for multiple conditions to set different variables, like this:
value = ('test' if 1 == 1, 'testtwo' if 2 == 2)
And so on for just a few conditions. Is this possible?
Answers:
This is the closest thing to what you are looking for:
value = 'Test' if 1 == 1 else 'NoTest'
Otherwise, there isn’t much else.
You can also do:
value = (1 == 1 and 'test') or (2 == 2 and 'testtwo') or 'nope!'
I prefer this way 😀
value = [1, 2][1 == 1]
😉
…well I guess this would work too:
value = ['none true', 'one true', 'both true'][(1 == 1) + (2 == 2)]
Not exactly good programming practice or readable code but amusing and compact, at the very least. Python treats booleans as numbers, so True is 1 and False is 0. [1, 2][True] = 2
, [1, 2][False] = 1
and [1, 2, 3][True + True] = 3
Less obvious but nice looking term:
value = ('No Test', 'Test')[1 == 1]
print(value) # prints 'Test'
For some reason I can’t remember how to do this – I believe there was a way to set a variable in Python, if a condition was true? What I mean is this:
value = 'Test' if 1 == 1
Where it would hopefully set value to ‘Test’ if the condition (1 == 1) is true. And with that, I was going to test for multiple conditions to set different variables, like this:
value = ('test' if 1 == 1, 'testtwo' if 2 == 2)
And so on for just a few conditions. Is this possible?
This is the closest thing to what you are looking for:
value = 'Test' if 1 == 1 else 'NoTest'
Otherwise, there isn’t much else.
You can also do:
value = (1 == 1 and 'test') or (2 == 2 and 'testtwo') or 'nope!'
I prefer this way 😀
value = [1, 2][1 == 1]
😉
…well I guess this would work too:
value = ['none true', 'one true', 'both true'][(1 == 1) + (2 == 2)]
Not exactly good programming practice or readable code but amusing and compact, at the very least. Python treats booleans as numbers, so True is 1 and False is 0. [1, 2][True] = 2
, [1, 2][False] = 1
and [1, 2, 3][True + True] = 3
Less obvious but nice looking term:
value = ('No Test', 'Test')[1 == 1]
print(value) # prints 'Test'