资讯详情

打印三角形的问题

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循环也很棒!

总结下:

标签: jku3e3变送器

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

 锐单商城 - 一站式电子元器件采购平台  

 深圳锐单电子有限公司