栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

打印图形(循环嵌套)

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

打印图形(循环嵌套)

前言:本文《打印图形》专练的编写是为了帮助学生进一步理解掌握循环嵌套算法的设计编写,重点是学会分析循环变量之间的关系

文章目录
  • 1、矩形
  • 2、直角三角形1
  • 3、直角三角形2
  • 4、直角三角形3
  • 5、直角三角形4
  • 6、等腰三角形1
  • 7、等腰三角形2
  • 8、菱形三法(三种方法都得会)
  • 9、圆形


1、矩形
打印图形如下
******
******
******
******
******
******

标程如下:

for i in range(6):
	for j in range(6):
		print("*",end="")
	print()
2、直角三角形1
打印图形如下
*
**
***
****
*****
******

提示:本题外层循环变量取值建议从1开始,如从0开始,那么内层循环则需从-1开始数

for i in range(1,7):
	for j in range(i):
		print("*",end="")
	print()
3、直角三角形2
打印图形如下
******
*****
****
***
**
*

提示:列出内外循环变量的关系

ij
16
25
34
43
52
61

从上表中可以看出j=7-i,代码如下

for i in range(1,7):
	for j in range(7-i):
		print("@",end="")
	print()
4、直角三角形3
打印图形如下
     *
    **
   ***
  ****
 *****
******

提示:本题仍然是打印6行“ * ”,但是每行先要打印空格,再打印“ * ”,故代码框架如下:

for i in range(1,7):
	#循环打印空格
	for k in range(_____):
		print(" ",end="")
	#循环打印*
	for j in range(_____):
		print("*",end="")
	print()

再列出内外循环变量的关系

i空格k星号j
151
242
333
424
515
606

从上表中可以看出:
k=6-i
j=i
故代码如下:

for i in range(1,7):
	#循环打印空格
	for k in range(6-i):
		print(" ",end="")
	#循环打印*
	for j in range(i):
		print("*",end="")
	print()
5、直角三角形4
打印图形如下
******
 *****
  ****
   ***
    **
     *

列出内外循环变量的关系

i空格k星号j
106
215
324
433
542
651

从上表中可以看出:
k=i-1
j=7-i
故代码如下:

for i in range(1,7):
	#循环打印空格
	for k in range(i-1):
		print(" ",end="")
	#循环打印*
	for j in range(7-i):
		print("*",end="")
	print()
6、等腰三角形1
打印图形如下
     *
    ***
   *****
  *******
 *********
***********

再列出内外循环变量的关系

i空格k星号j
151
243
335
427
519
6011

从上表中可以看出:
k=6-i
j=2*i-1
故代码如下:

for i in range(1,7):
	#循环打印空格
	for k in range(6-i):
		print(" ",end="")
	#循环打印*
	for j in range(2*i-1):
		print("*",end="")
	print()
7、等腰三角形2
打印图形如下
***********
 *********
  *******
   *****
    ***
     *

列出内外循环变量的关系

i空格k星号j
1011
219
327
435
543
651

从上表中可以看出:
k=i-1
j=13-2*i
故代码如下:

for i in range(1,7):
	#循环打印空格
	for k in range(i-1):
		print(" ",end="")
	#循环打印*
	for j in range(13-2*i):
		print("*",end="")
	print()
8、菱形三法(三种方法都得会)
打印图形如下
     *
    ***
   *****
  *******
 *********
***********
 *********
  *******
   *****
    ***
     *

方法一:: 图中可以看出k和j关于第6行对称,列出内外循环变量的关系

i空格k星号jabs(i-6)
1515
2434
3353
4272
5191
60110
7191
8272
9353
10434
11515

从上表中可以看出得出关系式:
k=abs(i-6)
j=11-2*abs(i-6)
故代码如下:

for i in range(1,12):
	#循环打印空格
	for k in range(abs(i-6)):
		print(" ",end="")
	#循环打印*
	for j in range(11-2*abs(i-6)):
		print("*",end="")
	print()

方法二:因为菱形是对称图形,因此考虑将循环遍历i也取对称值-5至5(range(-5,6)),由此列出内外循环变量的关系

i空格k星号j
-551
-443
-335
-227
-119
0011
119
227
335
443
551

从上表中可以看出:
k=abs(i)
j=11-2*abs(i)
故代码如下:

for i in range(-5,6):
	#循环打印空格
	for k in range(abs(i)):
		print(" ",end="")
	#循环打印*
	for j in range(11-2*abs(i)):
		print("*",end="")
	print()

方法三:曼哈顿距离:标明两个点在标准坐标系上的绝对轴距总和,例如在平面上,坐标(x1,y1)的i点与坐标(x2,y2)的j点的曼哈顿距离为:
d(i,j)=|X1-X2|+|Y1-Y2|
不难看出,菱形中所有点至中心点(6,6)的曼哈顿距离均小于等于5
标程如下:

for i in range(1,12):
	for j in range(1,12):
		if(abs(i-6)+abs(j-6)<=5):
			print("*",end="")
		else:
			print(" ",end="")
	print()

提示:根据“曼哈顿距离”也可打印出等腰三角形,请同学们自行尝试

9、圆形

题目描述:打印一个半径为50的" * "圆形。(勿须使用matplotlib模块来绘图)

提示:与“曼哈顿距离”原理类似
标程如下:

for i in range(1,100):
	for j in range(1,100):
		if((i-50)**2+(j-50)**2<=50**2):
			print("*",end="")
		else:
			print(" ",end="")
	print()

提示:如果屏幕显示不下圆形可以把字体调小,但是打印出来大家可能会看到一个不那么圆滑的“椭圆”(手动滑稽),这是因为“ * ”的输出码(字形码)并非正方形而是一个长方形点阵,而且行与行之间也有一定的间隙。
Python中有专门的绘图库如matplotlib来进行绘图,后续教学中会进行讲解。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/273331.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号