#打印9行9列的图形,控制各种显示各种位置三角形
#如果对这个题目没有思路,我们可以显示着寻找规律
#这里我带大家一起理解打印各种三角形的思路
#首先我们尝试打印对角斜线线
*
*
*
*
*
*
*
*
*
#这是一个九行九列的斜线,它有什么规律呢?
#不难发现每个*号的 row = line,所以我们这样输出代码,当对row 和 line 嵌套循环
#外层循环控制行,内存循环控制列 当 row == line时我们输出*
for i in range(1,10):
for j in range(1,10):
if i == j:
print('*',end='\t')
else:
print('',end='\t')
print()
#我们再试着打印另外一个对角斜线,和上面思路一样
*
*
*
*
*
*
*
*
*
for i in range(1,10):
for j in range(1,10):
if i + j == 10:
print('*',end='\t')
else:
print('',end='\t')
print()
#加大难度 打印如图三角形
* * * * * * * * *
* * * * * * * *
* * * * * * *
* * * * * *
* * * * *
* * * *
* * *
* *
*
#不难发现 当通过嵌套循环 对于每行 row>=line时会输出*
for i in range(1,10):
for j in range(1,10):
if i <= j:
print('*',end='\t')
else:
print('',end='\t')
print()
#有了以上思路我们可以打印剩余的不同角度的三角形
*
* *
* * *
* * * *
* * * * *
* * * * * *
* * * * * * *
* * * * * * * *
* * * * * * * * *
for i in range(1,10):
for j in range(1,10):
if i >= j:
print('*',end='\t')
else:
print('',end='\t')
print()
*
* *
* * *
* * * *
* * * * *
* * * * * *
* * * * * * *
* * * * * * * *
* * * * * * * * *
* * * * * * * * *
for i in range(1,10):
for j in range(1,10):
if i + j >= 10:
print('*',end='\t')
else:
print('',end='\t')
print()
* * * * * * * * *
* * * * * * * *
* * * * * * *
* * * * * *
* * * * *
* * * *
* * *
* *
*
for i in range(1,10):
for j in range(1,10):
if i + j <= 10:
print('*',end='\t')
else:
print('',end='\t')
print()
#再次进阶 九行九列中如何打印以下图形呢?
*
* *
* * *
* * * *
* * * * *
* * * *
* * *
* *
*
#不难发现 他其实是刚刚输出四个三角形中两个三角形的交集 ,有了以上思路我们就可以进行输出
for i in range(1,10):
for j in range(1,10):
if i + j >= 10 and j >= i:
print('*',end='\t')
else:
print('',end='\t')
print()
#再次强化 尝试自己打印以下三角形
*
* *
* * *
* * * *
* * * * *
* * * *
* * *
* *
*
for i in range(1,10):
for j in range(1,10):
if i + j <= 10 and j <= i:
print('*',end='\t')
else:
print('',end='\t')
print()