python空心菱形代码 用python画空心菱形 您所在的位置:网站首页 python输出空心菱形图案 python空心菱形代码 用python画空心菱形

python空心菱形代码 用python画空心菱形

2024-07-05 22:20| 来源: 网络整理| 查看: 265

1.问题描述 编程打印如图11.12所示的空心菱形图案。

python空心菱形代码 用python画空心菱形_python空心菱形代码

 

2.问题分析 该问题要求绘制空心菱形,在此基础上,还可以添加其他要求, 如尽可能少地使用printf语句,或者由键盘输入正数n,并绘制出有 2*n+1行的空心菱形图案。 那么针对此类问题我们究竟应该从何入手分析呢?观察图11.12可 知,图中每一行和每一列的星号和空格所出现的位置并非杂乱无章 的,而是都呈现出一定的规律。这样就可以将绘制空心菱形的问题转 换为找出这些星号和空格与它们所在行与列之间存在的某种规律的问 题。只要这个规律找到了,那么问题就迎刃而解了。 下面以第5行(n=5)作为对称轴的空心菱形为例来寻找规律。观 察图形和积累的经验告诉我们,空心菱形应该分上下两个部分来打 印,那么菱形的上下两部分和行列之间有什么联系呢?我们仔细来观 察图11.12,首先标示出每一行和每一列的行号和列号,其次寻找上半 部分之间的联系。 图11.12中1~5行的规律如表11.1所示,其中行号用i表示,列号用j 表示。

python空心菱形代码 用python画空心菱形_python空心菱形代码_02

 

根据表11.1,我们不难写出以下语句:

if j == n + 1 - i or j == n - 1 + i: print("* ", end="") else: print(" ", end="")

 再结合行列的循环关系,得到以下代码:

# 外层循环控制行数,从控制台输入的参数n即为菱形上半个三角形的行数 for i in range(1, n + 1): for j in range(1, (n + i - 1) + 1): if j == n + 1 - i or j == n - 1 + i: print("* ", end="") else: print(" ", end="") print()

接下来,我们观察图11.12中6~9行的规律。为了使寻找到的规律 中和行列号建立的关系数值相对简单且小,我们假定行号重新从1开始 排列,即我们寻找的是下半部分1~4行的规律,具体如表11.2所示。

python空心菱形代码 用python画空心菱形_python_03

根据表11.2,我们不难写出以下语句:

if j == i + 1 or j == 2 * n - 1 - i: print("* ", end="") else: print(" ", end="")

 再结合行列的循环关系,得到以下代码:

# 外层循环控制行数,由于下半个三角形比上面的少一行,所以循环变量i的最大值为n-1 for i in range(1, n): for j in range(1, (2 * n - 1 - i) + 1): if j == i + 1 or j == 2 * n - 1 - i: print("* ", end="") else: print(" ", end="") print()

找到空心菱形的规律后,程序就很容易编写了,只需要在核心代 码的基础上再将程序补充完整即可。 3.完整的程序 根据上面的分析,编写程序如下:

#!/usr/bin/python3 # -*- coding: utf-8 -*- # @author : liuhefei # @desc: 绘制空心菱形 def draw(n): # 外层循环控制行数,从控制台输入的参数n即为菱形上半个三角形的行数 for i in range(1, n + 1): for j in range(1, (n + i - 1) + 1): if j == n + 1 - i or j == n - 1 + i: print("* ", end="") else: print(" ", end="") print() # 打印下半个三角形 # 外层循环控制行数,由于下半个三角形比上面的少一行,所以循环变量i的最大值为n-1 for i in range(1, n): for j in range(1, (2 * n - 1 - i) + 1): if j == i + 1 or j == 2 * n - 1 - i: print("* ", end="") else: print(" ", end="") print() if __name__ == "__main__": n = int(input("请输入菱形对称轴的行数n: ")) draw(n)

4.运行结果 在PyCharm下运行程序,屏幕上提示“请输入菱形对称轴的行数 n:”,此处输入5,则打印出以第5行为对称轴的空心菱形,如图11.13 所示。

python空心菱形代码 用python画空心菱形_控制台输入_04

 



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有