打印九九乘法三角形的各种思路

代码:

1、下面两个代码 的结果不太一样

for i in range(1,10):
  for j in range(1,i+1):
    print(str(j)+'*'+str(i)+'='+str(i*j),end=' ')   

  print()

结果:

for i in range(1,10):
  for j in range(1,i+1):
    print(j,'*',i,'=',i*j,sep='',end=' ')
  print()

结果:

#结果1 是通过把数字转换为字符串的形式来打印的,而结果2 是直接打印数字的值,故距离有差别,可以通过限制sep=''来实现与1同样的效果

2、

for i in range(1,10):
  for j in range(1,10):
    if i>j:
      print('{}     {}     {}'.format('','',''),end=' ') #利用format打印空格来补足缩进
    else:
      print('{}*{}={:<2}'.format(i,j,i*j),end=' ')
  print()

结果:

for i in range(1,10):
  print("  "*7*(i-1),end=' ')   #对于这个等式,首先是对于空格数的把控,一个等式是7个空格。
  for j in range(i,10):   #然后把其看作一个单元,因为第一行前面不需要补齐,所以为零个单元,剩余的每一个补齐根据当前行数,故乘(i-1)
    print('{}*{}={:<2}'.format(i,j,i*j),end=' ')
  print()

结果:

 

 3、打印菱形

规律:

行号 星号的个数 左边空格的个数 规律
1 1 3 星号的个数=7-空格的个数*2
2 3 2 星号的个数=7-空格的个数*2
3 5 1 星号的个数=7-空格的个数*2
4 7 0 星号的个数=7-空格的个数*2
5 5 1 星号的个数=7-空格的个数*2
6 3 2 星号的个数=7-空格的个数*2
7 1 3 星号的个数=7-空格的个数*2


代码:


for
i in range(-3,4):   if i<0:     p=-i   else:     p=i   print(' '*p,'*'*(7-p*2))

结果:

    *
   ***
  *****
 *******
  *****
   ***
    *

感悟:对称和负数与整数的数字游戏有关
原文地址:https://www.cnblogs.com/mapone/p/12013174.html