代码:
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))
结果:
* *** ***** ******* ***** *** *
感悟:对称和负数与整数的数字游戏有关