What is the meaning of print()[] in Python? -


while browsing codegolf, found this :

g=input();print("approved","summer school","failed")[(g<7)+(g<3)] 

i don't understand [] means after print()... clarification ?

>>> print("approved","summer school","failed")[0] approved >>> print("approved","summer school","failed")[1] summer school >>> print("approved","summer school","failed")[2] failed 

see pattern? it's simple indexing.

by way know (g<7)+(g<3) >= 0 (false + false) , <= 2 (true + true).

recall bool subclass of int, , true == 1 , false == 0 (which why can add bools, done above).

finally, goes without saying confusion have been avoided set of parenthesis:

print(("approved","summer school","failed")[(g<7)+(g<3)]) 

Comments