萌新的自我修养,基础不好就得练,今天正好碰上各种打印三角形,这种题看似很简单,情况稍微变一变,还是挺有意思,就花了点时间整理了一下。总共囊括直角,等腰(分每行为n个和每行为2n+1个),数字三角共三大类的多种情况。
1.直角三角形,这种最简单,for和while皆可,左右上下变换,都是一样的套路,掌握每行要输几个*,变range里的值和‘*’的乘值,或者添加空格。这里举两个例子:
1.1直角三角形左上角
# 直角三角形
def f1(n):
for i in range(n):
print('*'*(i+1),end='')
print('')
f1(5)
*
**
***
****
*****
1.2直角三角形右下角
def f2(n):
for i in range(n):
print(' '*(i) + '*'*(n-i),end='')
print('')
*****
****
***
**
*
2.等腰三角形,这个里面还可以分实心和空心。也比较简单,一个循环,print(’’)划好行,考虑每行要输出什么。空心的话,中间的行两端留,其他空格代。另外每行数量为n还是2n-1需要分开考虑。数量为n需要嵌套for。
2.1每行数量为2n-1,实心倒立等腰三角
# 实心倒立等腰三角
def f3(n):
for i in range(n,0,-1):
print(' '*(n-i) + '*'*(2*i-1),end='')
print('')
f3(4)
*******
*****
***
*
2.2每行*数量为2n-1, 等腰空心正立三角
# 等腰空心正立三角

各种打印三角形&spm=1001.2101.3001.5002&articleId=88209642&d=1&t=3&u=a8c666f4196f48fcb2e9bb2dbe939e61)
1万+

被折叠的 条评论
为什么被折叠?



