打印直角三角形,主要用到的是for循环,只要for循环用的溜,什么图形都不是事.
首先,打印最简单的一个:
* * * * * * * * * * 来分析一下,第一行有一列,第二行两列,第三行三列,以此类推,第n行有n列.
def zhijiaosanjiao1(n):
for i in range(1,n+1):#行
for j in range(1,i+1):#列
print("*",end=' ')
print()
zhijiaosanjiao1(4)
或者,更简单的是:
def hh2(n):
for i in range(1,n+1):#行和列都是同时增加的
print('* '*i)
print()
hh2(4)
第二种直角三角形:
*
* *
* * *
* * * *
和之前的三角形一样,n行有n列,不同的是*号的位置改变了。第一行的*在第四列,第二行的*在第三,四列,第三行的在二,三,四列,可以发现,行+列的值小于或等于4的输出的都是空格,大于的输出的都是*。
def zhijiaosanjiao2(n):
for i in range(1,n+1):#横轴
for j in range(1,n+1):#竖轴
if i+j<=n:
print(' ',end=' ')
else:
print('*',end=' ')
print()
zhijiaosanjiao2(4)
第三种:
* * * *
* * *
* *
* 第一行有4列,第二行3列,第三行2列,第四行1列。列数为n减去行数+1
def zhijiao(n):
for i in range(1,n+1):
for j in range(1,n-i+2):
print('*',end='')
print()
zhijiao(3)
第四种:
* * * *
* * *
* *
*
def zhijiaosanjiao6(n):
for i in range(1,n+1):
for j in range(1,n+1):
if j<i:
print(' ',end=' ')
else:
print('*',end=' ')
print()
zhijiaosanjiao6(4)