循环可以帮助我们解决需要重复做多次的事情,本篇内容包括用for循环的嵌套编写不同类型的三角形,望采纳。
此处需要特别注意的是range()函数的使用,range()函数的范围是一个前闭后开的区间。例如range(1,6),其中能取到的值为[1,6),即1,2,3,4,5。
第一种:直角在左上
法一:(外层循环控制行,内层循环控制列,当行数小于等于列的时候都输出三角形即可)
print("---------------左上三角形--------------------")
for i in range(1,6):
for j in range(1,6):
if(i<=j):
print("*",end = " ")
print()
法二:(直接控制内层循环的范围亦可)
print("---------------左上三角形--------------------")
for i in range(1,6):
for j in range(1,7-i):
print("*",end = " ")
print()
第二种:直角在左下
法一:(当列数小于等于行数的时候,直接打印三角形)
print("---------------左下三角形--------------------") for i in range(1,6): for j in range(1,6): if(j<=i): print("*",end=" ") print()
法二:
print("---------------左下三角形--------------------") for i in range(1,6): for j in range(1,i+1): print("*",end=" ") print()
第三种:直角在右上
此处需要注意,在打印“*”号之前会有空格的出现,每一行空格的数量为 0、1、2、3、4依次增加,所以内层循环用到了两个循环,第一个内循环输出打印空格,第二个内循环输出打印“*”。
print("----------------右上三角形-------------------")
for i in range(1,6):
for j in range(0,i-1):
print(" ",end= " ")#先打印“ ” 第一行0个空格第二行1个
for k in range(1,7-i):
print("*",end=" ") #先打印*
print()
第四种:直角在右下
此处需注意的是,每一行空格的数量为4、3、2、1、0依次递减,而“*”的数量刚好和行号相等。
print("-----------------右下三角形------------------")
for i in range(1,6):
for j in range(1,6-i):#空格的数量:4 3 2 1
print(" ",end=" ") #先打印空格
for k in range(i):
print("* ",end="") #后打印*
print()
第五种:等腰三角形
等腰三角形与前面不同的是“*”的数量明显增多,但是也很好找其中的关系。每一行空格的数量为4、3、2、1、0依次递减,而“*”的数量则为(2*行数-1)。
print("----------------等腰三角形-------------------")
for i in range(1,6):
for j in range(1,6-i): #空格是 4 3 2 1 0递减
print(" ",end=" ")
for k in range(1,2*i): #*是1 3 5 7 9 递增
print("*",end=" ")
print()