Python如何用*打印正三角、倒三角、等边三角形、菱形及空心菱形
作者:香菜退退退
这篇文章主要给大家介绍了关于Python如何用*打印正三角、倒三角、等边三角形、菱形及空心菱形的相关资料,提供了每种形状的实现代码和输出结果,需要的朋友可以参考下
【问题描述】
使用循环嵌套输出三角形、菱形
1、分别使用*打印正三角、倒三角、等边三角形、菱形、空心菱形
(1)正三角
*
**
***
****
*****
1)实现代码
m=0 for w in range(1,6): #5行 # *的个数与行相同,range(1,2),第二行,range(1,3) for m in range(1,w+1): print('*',end='') print()
2)输出结果
(2)倒三角
*****
****
***
**
*
1)实现代码
for i in range(1,6): # range(1,6) range(1,5) range(1,4),找行与列之间的关系7-1=6;7-2=5,7-3=4.... for e in range(1,7-i): print('*',end='') print()
2)输出结果
(3)等边三角形
*
***
*****
*******
*********
1)实现代码
for a in range(1,6): # 外循环5行 for b in range(1,6-a): # 倒三角形 print(' ',end='') # 需要打印空格,不换行 for c in range(1,a*2): # 1,3,5,7..等腰三角形,range(1,2),range(1,4),range(1,6).... print('*',end='') print()
2)输出结果
(4)菱形
(以7行为例,因为菱形是轴对称图形,可将菱形分为两部分,那就是一个正三角和一个倒三级拼接在一起了,我是将前4行一组,后3行一组)
*
***
*****
*******
*****
***
*
1)实现代码
row=eval(input('请输入菱形的行数:')) while row%2==0: #判断行数的奇偶性,若为偶数则重新输入 print('请重新输入!') row=eval(input('请输入菱形的行数:')) # 输出菱形 top_row=(row+1)//2 #上半部分的行数 for t in range(1,top_row+1): for t2 in range(1,top_row+1-t): print(' ',end='') for t3 in range(1,t*2): print('*',end='') print() #当两个并列的for循环执行结束后,在换行执行 # 7行為例子 low_row=row//2 # 3 for l in range(1,low_row+1): for l2 in range(1,l+1): #直角三角形 print(' ',end='') for l3 in range(1,low_row*2-2*l+2): # 第1行-->5个,range(1,6),第2行-->3个,range(1,4),... # for l3 in range(1,2*(low_row+1-l)): # 第一次(1,low_row=3*2)=(1,6),(1,6+2) print('*',end='') print() #当两个并列的for循环执行结束后,在换行执行
2)输出结果
(5)空心菱形
{以7行为例,因为菱形是轴对称图形,可将菱形分为两部分,前4行一部分(由一个倒三角+一个挖空的等腰三角形),后三行一部分(由一个正三角+一个倒立等腰三角形),挖空的三角形可以使用if-else语句判断,if(如果)是在第一位或最后一位则打印*,else(否则)打印空格}
*
* *
* *
* *
* *
* *
*
这张图我把空格都打印出来了,这样更清楚。
1)实现代码
row=eval(input('请输入菱形的行数:')) while row%2==0: #判断行数的奇偶性,若为偶数则重新输入 print('请重新输入!') row=eval(input('请输入菱形的行数:')) # 输出菱形 top_row=(row+1)//2 #上半部分的行数 for t in range(1,top_row+1): for t2 in range(1,top_row+1-t): print(' ',end='') for t3 in range(1,t*2): if t3==1 or t3==t*2-1: print('*',end='') else: print(' ',end='') print() #当两个并列的for循环执行结束后,在换行执行 # 7行為例子 low_row=row//2 # 3 for l in range(1,low_row+1): for l2 in range(1,l+1): #直角三角形 print(' ',end='') for l3 in range(1,low_row*2-2*l+2): # 第1行-->5个,range(1,6),第2行-->3个,range(1,4),... # for l3 in range(1,2*(low_row+1-l)): # 第一次(1,low_row=3*2)=(1,6),(1,6+2) if l3==1 or l3==(low_row*2-2*l+2)-1: print('*',end='') else: print(' ',end='') print() #当两个并列的for循环执行结束后,在换行执行
2)输出结果
总结
到此这篇关于Python如何用*打印正三角、倒三角、等边三角形、菱形及空心菱形的文章就介绍到这了,更多相关Python用*打印各种形状内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!