20190103-打印各种类型的三角形,四边形等
2019-01-03 09:57:46来源:博客园 阅读 ()
1. 打印四边形
* * * * * * * *
* * * * * * * *
* * * * * * * *
* * * * * * * *
* * * * * * * *
如图:四边形由宽和高构成,将宽转换为每行打印的的个数,将高转换为打印的行数
def quadrangle_generate(width,hight):
for i in range(hight+1):
for j in range(width+1):
print('*',end=' ')
if j == width:
print()
quadrangle_generate(5,4)
解析:for i in range(hight+1)循环保证打印的行数,for j in range(width+1)循环保证每行打印的*个数。当打印完成,即j == width的时候换行,其中 print('*',end=' ')执行一次打印2个字符
2. 打印各类等腰三角形
2.1左下角等腰三角形
*
* *
* * *
* * * *
* * * * *
* * * * * *
左下角三角形由*和空格构成,保证三角形在四边形的基础上高(等价于三角形的腰)不变,每行打印的*个数进行变化。具体规则如下:
第一行保留打印一个*,剩下的用空格代替
第二行保留打印两个*,剩下用空格代替
第i行,打印i个星
第n行,打印n个星
def left_down_Isosceles_trigal_generate(n):
for i in range(n+1):
for j in range(i+1):
print('*',end = ' ')
if j == i:
print()
left_down_Isosceles_trigal_generate(10)
解析:for i in range(n+1)保证了打印的行数(等腰三角形的腰),for j in range(i+1)循环保证每行打印的*个数,第1行打印1个,第二行打印2个,j==i的时候打印换行。
2.2左上角等腰三角形
* * * * * *
* * * * *
* * * *
* * *
* *
*
左上角等腰三角形是由三角形由*和空格构成,保证三角形在四边形的基础上高(等价于三角形的腰)不变,每行打印的*个数进行变化。具体规则如下:
第一行保留打印n个*
第二行保留打印n-1两个*
第i行,打印n-i+1个*
第n行,打印1个*
因此打印的*个数使用n-i+1来确定,打印*以空格分隔
def left_top_Isosceles_trigal_generate(n):
for i in range(n+1):
for j in range(n-i+1):
print('*',end = ' ')
if j ==n-i:
print()
left_top_Isosceles_trigal_generate(10)
解析:for i in range(n+1)保证了打印的行数,for j in range(n-i+1)保证了打印的*个数逐级递减,当每行打印结束的时候使用j==n-i换行
2.3右下角等腰三角形
*
* *
* * *
* * * *
* * * * *
* * * * * *
右下角等腰三角形,保证三角形在四边形的基础上高(等价于三角形的腰)不变,每行打印的*个数进行变化。具体规则如下,此处需要留意打印空格的时候end=‘ ’,一次print(' ',end = ' ')执行,打印出2个空格字符:
第一行前面保留打印2(n-1)个空格,加上1个*,如上图,n=6,则第一行打印10个空格
第二行前面保留打印2(n-2)个空格,加上2个*
第i行,打印2(n-i)个空格,加上i个*
第n行,打印n个*,中间以空格分隔
因此打印的*个数使用i来确定,打印的空格使用n-i+1来确定
def right_down_Isosceles_trigal_generate(n):
for i in range(n+1):
for j in range(n-i+1):
print(' ',end = ' ')
for k in range(i+1):
print('*',end = ' ')
if k ==i:
print()
right_down_Isosceles_trigal_generate(10)
解析:for i in range(n+1)保证打印的行数,for j in range(n-i+1)来打印空格,空格的个数随着i的增加逐级减少,使用i来打印逐级增加的*
2.4右上角等腰三角形
* * * * * *
* * * * *
* * * *
* * *
* *
*
右上角等腰三角形,保证三角形在四边形的基础上高(等价于三角形的腰)不变,每行打印的*个数进行变化。具体规则如下:
第一行保留打印n个*,前面填充0个空格
第二行保留打印n-1个*,前面填充2个空格,书写格式为print(' ',end = ' ')
第i行,打印n-i个*,前面填充2*i个空格
第n行,打印1个*,前面填充2(n-1)个空格,如上图n=6,第6行前面填充10个空格
因此打印的*个数使用n-i来确定,打印的空格使用i来确定
def right_top_Isosceles_trigal_generate(n):
for i in range(n+1):
for j in range(i):
print(' ',end = ' ')
for k in range(n-i):
print('*',end = ' ')
if k ==n-i-1:
print()
right_top_Isosceles_trigal_generate(10)
解析:使用 for i in range(n+1)来确定要打印的行数(三角形的腰),右上角等腰三角形,每行的*逐级递减,因此使用for k in range(n-i)来确定要打印的*的个数,当*打印完的时候使用k == n-i-1来换行
2.5正三角形
*
* *
* * *
* * * *
* * * * *
正三角形保证三角形在四边形的基础上高(等价于三角形的腰)不变,每行打印的*位置不同,具体规则如下:
第一行,打印n-1个空格,1个*,以空格分隔
第二行,打印n-2个空格,2个*,以空格分隔
第n行,打印n-n个空格,n个*,以空格分隔
打印的空格以n-i+1来确定,打印的*用i来确定
def Isosceles_trigal_generate(n):
for i in range(n+1):
for k in range(n-i+1):
print(' ',end = '')
for j in range(i+1):
print('*',end = ' ')
if j == i:
print()
Isosceles_trigal_generate(10)
解析:正三角和右下角三角形的唯一区别为代码中红色的部分,end =''还是end = ' ',如果end =''则为正三角;如果end=' '则为右下角三角形,因为end = ' '的时候,是以空格结尾,打印的字符数需要加1
2.6 倒三角形
* * * * * *
* * * * *
* * * *
* * *
* *
*
倒三角形保证三角形在四边形的基础上高(等价于三角形的腰)不变,每行打印的*位置不同,具体规则如下:
第一行,打印n个*,以空格分隔,前面打印0个空格
第二行,打印n-1个*,以空格分隔,前面打印1个空格
第i行,打印n-i,以空格分隔,前面打印i个空格
第n行,打印1个*,前面打印n-1个空格
因此打印的*个数使用n-i来确定,打印的空格使用i来确定
def reverse_Isosceles_trigal_generate(n):
for i in range(n+1):
for j in range(i):
print(' ',end ='')
for k in range(n-i+1):
print('*',end =' ')
if k ==n-i:
print()
reverse_Isosceles_trigal_generate(10)
解析:for i in range(n+1),保证打印的行数,区别于右上角三角形的是代码中红色部分,由end=''决定print语句打印的是几个字符。
总结:打印三角形的时候,最大的注意点是确定打印多少行,每行打印多少个,以及前面填充多少空格。特别注意填充空格时候注意空格的占位数。print(' ',end ='')打印一个空格,print(' ',end =' ')打印2个空格。
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- python 对Unicode解码 2019-07-24
- python 之 time模块、datetime模块(打印进度条) 2019-07-24
- 控制台输出带颜色的文字 2019-05-23
- pip各种 2019-05-10
- 打印等腰三角形 2019-05-08
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash