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()分隔小列表成字符串,%-2s左對齊占兩位輸出,再換行符分隔成九九乘法表樣式
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): print('%d * %d = %d'%(j,i,j*i),end='\t') # '\t'制表輸出 print() #默認end='\n',換行
#與上面列表解析相比,有個小瑕疵,就是第一列與第二列的距離比其他列之間的距離要多一個空格,眼睛較大者請忽略。