python - Not enough arguments? -


print "%r" 

vs

print "%r %r"%("hello") 

i want compare above 2 lines of code in python.the latter statement gives error not enough arguements print in first case have no arguements still works.can explain new programming. appreciated.

the % inside string comes play once python has established you're using % printf-like operator outside string.

in first case, you're not, doesn't complain. you're doing in case printing string.

the second case, are using % operator complains haven't provided enough arguments. in case, you're formatting string before printing it.

print knows nothing of string formatting functions, prints give it. in string formatting case, "hello, %s"%("pax") processed % operator give "hello, pax" , given print output:

print "hello, %s"%("pax") # ^   \_________________/ <- bit done first # | # print done 

so basically, it's % operator decides you're doing printf-style processing, not fact have string containing % character. that's confirmed fact that:

print "%r %r %r %r %r" 

also has no issue argument count mismatch, printing out literal %r %r %r %r %r.


Comments

Popular posts from this blog

c# - Send Image in Json : 400 Bad request -

jquery - Fancybox - apply a function to several elements -

An easy way to program an Android keyboard layout app -