Lots of people hate Python's ternary operator. If laid out as:
selected_value = value_1 if condition_1 else value_2 if condition_2 else value_3
I can see why: it's hard to see what's going on. However, laid out differently, it's a different story:
selected_value = \ value_1 if condition_1 else \ value_2 if condition_2 else \ value_3
You can much more clearly see what the possible values are, and under what conditions they're used.
And I claim it's safer. The clarity itself is a contributing factor to this. But also, compared to an if-elif-else statement, it's harder to get a NameError by accidentally not assigning a value to a variable. This is especially true with complex cases, when you might otherwise have multiple nested if-elif-else statements.