Conditional statements evaluate based on the last condition that succeeded (or just the last condition if all failed).
print(10 and 30) --> 30 (because 'and' requires all conditions to pass and 30 is the last thing)
print(10 or 30) --> 10 (because 'or' only needs 1 condition to pass, so it stops and thus evaluates 10)
But be careful, because these are not true ternary operations. If you need to capture a false-y statement, these might get you caught up and if statements will work better.
And to your last post: yes, getting the character with both your snippets of code are basically equivalent.