1 # 01 python列表解析加join()函数 生成九九乘法表,考虑到列值对齐
2 print('
'.join([' '.join(['%s*%s=%-2s '%(j,i,j*i) for j in range(1,i+1)])for i in range(1,10)]))
3 # [ ['%s*%s=%-2s '%(j,i,j*i) for j in range(1,i+1)] for i in range(1,10) ] 大列表里的元素都是小列表,用.join()分隔小列表成字符串,%-2s左对齐占两位输出,再换行符分隔成九九乘法表样式
6 # 02 还考虑到列间距离都相等
7 print('
'.join([' '.join(['%s*%s=%s '%(j,i,j*i) if j==1 else '%s*%s=%-2s '%(j,i,j*i) for j in range(1,i+1)])for i in range(1,10)]))
用for循环嵌套输出(简单些):
for i in range(1,10): for j in range(1,i+1): print('%d * %d = %d'%(j,i,j*i),end=' ') # ' '制表输出 print() #默认end=' ',换行
#与上面列表解析相比,有个小瑕疵,就是第一列与第二列的距离比其他列之间的距离要多一个空格,眼睛较大者请忽略。