print函数详解及python打印99乘法表的不同方法

时间:2023-03-10 06:06:06
print函数详解及python打印99乘法表的不同方法

  首先你需要了解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后面加逗号,多次输出的内容不换行。