for j in range(7): for i in range(j): print('*',end='') print()
输出:
* ** *** **** ***** ******
如何打印这个三角形?
分析一下,最重要的是第一层循环range(7)。现在需要一个。list,[7,6,5,4,2,1]
for j in [7,6,5,4,3,2,1] for i in range(j): print('*',end='') print()
******* ****** ***** **** *** ** *
哈哈,实现了。虽然直接穷举。list,看起来有点笨。
参考同学的文章https://blog.csdn.net/CaoMei_HuaCha/article/details/80873917,以上可以使用list改写成range(7,0,-1)
如何输出下图?
先做个分析
1. 腰直角三角形两侧有5个*
2.对于每一行,第一行是5行*;第二行只有第一列和最后一列*……最后一行只有一行*
3. 一般来说,对于第一行(1 < i < N),第一列打印*,中间打印i-2个*(这点用循环实现),最后打印一个*。直接打印N行和最后一行*
def print_tri(num): if num < 3: print('We can not print this triangle.') else: for i in range(num): print('*',end='') print() for row in range(num-1,1,-1): print('*',end='') for j in range(1,row-1): print(' ',end='') print('*') print('*') print_tri(5) 计算结果:
***** * * * * ** * 成功!
看了别人的回答,还有更简单的方法,太厉害了!
我麻烦的地方,是打印重复东西的时候,用了for循环。其实可以直接使用(打印的东西)*n来解决。
因此,修改代码:
def print_tri(num): if num < 3: print('We can not print this triangle.') else: print('*'*num) for row in range(num-1,1,-1): print('*' ' '*(row-2) '*') print('*') print_tri(5) 得到同样的答案:
***** * * * * ** * 好棒!
首选答案是用的while循环https://mp.weixin.qq.com/s/1VVWI-JKu-fwdcpkmonIgA,我觉得用for循环也很棒!
总结下: