python - Print nothing when number is None -


this script

def p(t, n):     if n == none:        print "%s" % t     else:        print "%-10s %3d" % (t, n)   p('a'    ,   4) p('bc'   ,  12) p('defgh', 876) p('ijk'  ,none) 

prints

a            4 bc          12 defgh      876 ijk 

when executed. can function p shortened output stays same?

i had hoped define p as

def p(t, n):     print "%-10s %3d" % (t, n) 

but definition, script errors "typeerror: %d format: number required, not nonetype".

def p(t, n):     print "%-10s %3d" % (t, n) if n else "%s" % t 

if want print n if n = 0

print "%-10s %3d" % (t, n) if n not none else "%s" % t 

if have multiple args can filter out none values , use str.format.

def p(t, *args):     args = filter(none, args)     print t,("{} "*len(args)).format(*args) 

which outputs:

in [2]: p('defgh', 876, none, 33,none,100) defgh 876 33 100  

or replace none values space:

def p(t, *args):     print t,("{} "*len(args)).format(*[arg if arg else " " arg in args]) 

which outputs:

in [4]: p('defgh', 876, none, 33,none,100) defgh 876   33   100  

Comments

Popular posts from this blog

php - Submit Form Data without Reloading page -

linux - Rails running on virtual machine in Windows -