首先你需要了解print的原型,并且要知道在python2和python3中print函数功能不同,不只是表现在后面带不带()一方面!
在python3中,通过help(print)可以得到print函数的详解:
help(print) Help on built-in function print in module builtins: print(...) print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=False) Prints the values to a stream, or to sys.stdout by default. Optional keyword arguments: file: a file-like object (stream); defaults to the current sys.stdout. sep: string inserted between values, default a space. end: string appended after the last value, default a newline. flush: whether to forcibly flush the stream.
在python2中,help(print)会出错,需要写help("__builtin__.print")。有种说法是因为print是内置函数,所以需要这样,但是我试了其他内置函数,却非必须如此!
help("__builtin__.print") Help on built-in function print in __builtin__: __builtin__.print = print(...) print(value, ..., sep=' ', end='\n', file=sys.stdout) Prints the values to a stream, or to sys.stdout by default. Optional keyword arguments: file: a file-like object (stream); defaults to the current sys.stdout. sep: string inserted between values, default a space. end: string appended after the last value, default a newline.
下面是三种在python3下乘法表的打印:
for i in range(1,10): #第一种 for j in range(1,1+i): print(str(j)+"*"+str(i)+"="+str(i*j),end=" ") print() for i in range(1,10): #第二种 for j in range(1,i+1): print("%d*%d=%2d" % (i,j,i*j), end =" ") print("") print ('\n'.join([' '.join(['%s*%s=%-2s' % (j,i,i*j) for j in range(1,i+1)]) for i in range(1,10)])) #第三种 1*1=1 1*2=2 2*2=4 1*3=3 2*3=6 3*3=9 1*4=4 2*4=8 3*4=12 4*4=16 1*5=5 2*5=10 3*5=15 4*5=20 5*5=25 1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36 1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49 1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64 1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81
end =" ",多次输出的内容不换行。
在python2中,第三种不需要修改,前两种修改如下:
for i in range(1,10): #第一种 for j in range(1,1+i): print str(j)+"*"+str(i)+"="+str(i*j), print " " for i in range(1,10): #第二种 for j in range(1,i+1): print "%d*%d=%2d" % (i,j,i*j), print " "
print后面加逗号,多次输出的内容不换行。