for i in range(1,10):
for j in range(1,i+1):
#print(j,"*",i,"=",j*i,end="|") 写法一:自己最初的写法
#print('%d*%d=%d'%(j,i,j*i),end="|") 写法二:这里是一个字符串,print输出的是格式化后的字符串,%d分别表示三个整数
#print('{0}*{1}={2}'.format(j,i,j*i),end="|")写法三:format写法
#print(f'{j}*{i}={j*i}',end='|') 写法四:f前缀写法 python3.6新增了f前缀格式化写法,更加精妙简单。
print(str(j)+"*"+str(i)+"="+str(i*j),end="|")#写法五:python内置函数,str函数功能时将对象转换成其字符串表现形式
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)])
print('\n'.join(' '.join(['{}*{}={}'.format(i,j,i*j) for i in range(1,j+1)])for j in range(1,10)))
#写法七:中心就是使用了一个列表生成式,但是导入了一个美化的表格库,自己现在还没有运行成功,因为不知道为啥导入prettytable库不成功
from prettytable import PrettyTable
pt = PrettyTable()
pt.field_names=[i for i in range(1,10)]
mulp=[["{b}x{a}={c}".format(a=a,b=b,c=a*b) if a>=b else "" for b in range(1,10)] for a in range(1,10)]
map(pt.add_row,mulp)
print(pt)
#方法八 递归法这个方法真是让我眼前一亮,想法好独特,羡慕:
def f(i):
if i>=1:
f(i-1)
print(['%dx%d=%d'%(j,i,i*j) for j in range(1,i+1)])
if __name__=='__main__':
f(9)
#方法九:
for a in range(1,10):
d =[]
for b in range(1,10):
if b <= a:
c = '%d*%d=%d'%(a,b,a*b)
d.append(c)
print(d)
总结,其实方法都大同小异,只是在细微之处有所不同,但是同样值得学习,因为正是这些细微之处才汇聚成大的能量。
标签:__,输出,九九乘法,end,10,Python,range,print,写法
来源: https://www.cnblogs.com/zhaoxiansheng666/p/12238512.html