I have run below 4 sets of statements, and they give different result. I am unsure about the cause of the difference. Please see notes below -
Case1
'usercount' coerced to tuple, why does formatting work when it becomes a tuple? Is coerced the right term here?
usercount=(6) #integer value
print ("Users connected: %d"%(usercount,))
Users connected: 6
Case2
%s or %d makes no difference, if its a tuple, print function works the same way.
usercount=(6)
print ("Users connected: %s"%(usercount,))
Users connected: 6
Case3
'usercount' declared as tuple, print fxn works fine with %s placeholder.
usercount=(6,) # now tuple
print ("Users connected: %s"%(usercount,))
Users connected: (6,)
Case4
Same case %d placeholder throws an error, number required, not tuple.
usercount=(6,)
print ("Users connected: %d"%(usercount,))
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-59-02d2ce66d935> in <module>()
1 usercount=(6,)
----> 2 print ("Users connected: %d"%(usercount,))
TypeError: %d format: a number is required, not tuple
Also, both placeholders work, when tuple declared the other way.
usercount=(6,)
print ("Users connected: %s"%(usercount))
Users connected: 6
usercount=(6,)
print ("Users connected: %d"%(usercount))
Users connected: 6