1 # 01 python列表解析加join()函数 生成九九乘法表,考虑到列值对齐 2 print('\n'.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()分隔小列表 4 # 成字符串,再换行符分隔成九九乘法表样式 5 6 # 02 还考虑到列间距离都相等(终极) 7 print('\n'.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): s = j*i print('%d*%d=%d '%(j,i,s),end='') # print()默认end='\n',换行打印 print() # 此时有三个式子不对齐,可以加if判断,多加一个空格