Python 使用双重循环打印图形菱形操作


Posted in Python onAugust 09, 2020

如下所示:

Python 使用双重循环打印图形菱形操作

a = int(input("请输入菱形行数:"))
m = a #空格
d = a #倒三角
for i in range(1, a + 1): # 先打印正三角
 print(" " * (m - 1), "*" * (2 * i - 1)) #2个*参数: 第一个是:空格 第二个是: *根据规律组成
 m -= 1
 if i == a: # 临界点,开始打印倒三角
 for y in range(1, a):
  print(" " * y, "*" * (2*d-3)) #2个*参数: 第一个是:空格 第二个是: *根据规律组成
  d -= 1 #设置-1

Python 使用双重循环打印图形菱形操作

a=4 #指定行数
b=a #空格
c=a #倒三角
for i in range(1,a+1):
 print(" " * (b - 1), "%d" %b * (2 * i - 1))
 b-=1
 if i==a: # 临界点,开始打印倒三角
 for y in range(1,a):
  print(" " * y, "%d" %(y+1) * (2 * c - 3))
  c-=1

Python 使用双重循环打印图形菱形操作

a = int(input("请输入菱形行数:"))
m = a #空格
d = a #倒三角
print(" " * (a - 1), "*") #第一个是:空格, 第二个是:打印一个*
for i in range(2, a + 1): # 先打印正三角
 print(" " * (m - 1) + "*" + " " * (2 * i - 3) + "*") #1个*参数: 第一个是:空格和*根据规律组成
 m -= 1
 if i == a: # 临界点,开始打印倒三角
 for y in range(2, a):
  print(" " * y + "*" + " " * (2 * d - 5) + "*") #1个*参数: 第一个是:空格和*根据规律组成
  d -= 1 #设置-1
 print(" "*a+"*") #打印最后一个*

补充知识:使用Python打印一些图形,主要是找到循环规律

打印菱形

Python 使用双重循环打印图形菱形操作

a = int(input())
e = a//2
for i in range(e,-1,-1):
  print(' '*i,'*'*(a-2*i), ' '*i)
for i in range(1,e+1):
  print(' '*i,'*'*(a-2*i), ' '*i)

改进版本,找到规律,使用abs函数

a = int(input('>>>'))
e = a // 2
for i in range(-e, e+1):
  j = abs(i)
  print(' '*j + '*'*(a-j*2) + ' '*j)

打印对顶三角

Python 使用双重循环打印图形菱形操作

a = int(input('>>>'))
e = a//2
for i in range(e+1):
  print(' '*i, (a - i*2)*'*', ' '*i, sep='')
for i in range(1, e+1):
  print(' ' * (e-i), (i * 2 + 1) * '*', ' ' * (e-i), sep='')

倒三角的打印,可以不用考虑*后面的空格,其实可以简化

a = int(input('>>>'))
e = a // 2
for i in range(-e, e+1):
  j = abs(i)
  print(' ' * (e-j) + '*' * (j * 2 + 1))

打印一道闪电:

Python 使用双重循环打印图形菱形操作

按照最笨的思路分三部分打印

a = int(input('>>>'))
e = a // 2
for i in range(-e, 0):
  print(' ' * abs(i) + '*' * (a - e - abs(i)))
print('*' * a)
for i in range(1, a-e):
  print(' ' * e + '*' * (a - e - i))

稍作改进

a = int(input('>>>'))
e = a // 2
for i in range(-e, a-e):
  if i < 0:
    print(' ' * abs(i) + '*'*(a - e - abs(i)))
  elif i > 0:
    print(' ' * e + '*' * (a - e - i))
  else:
    print('*' * a)

打印正方形

for i in range(n):
  sepTop += '\t*'
  sepMid += '\t'
else:
  sepMid += '*'
  print(sepTop)
 
for i in range(n-1):
  print('\n')
  print(sepMid)
else:
  print('\n')
  print(sepTop)
 
print('=====================================')
e = -n//2
for i in range(e,n+e):
  if i == e or i == n+e-1:
    print('*'*n)
  else:
    print('*'+' '*(n-2)+'*')
print('=====================================')

以上这篇Python 使用双重循环打印图形菱形操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
django之session与分页(实例讲解)
Nov 13 Python
Python将DataFrame的某一列作为index的方法
Apr 08 Python
python数据处理 根据颜色对图片进行分类的方法
Dec 08 Python
对python中字典keys,values,items的使用详解
Feb 03 Python
基于wxPython的GUI实现输入对话框(2)
Feb 27 Python
Python时间序列处理之ARIMA模型的使用讲解
Apr 02 Python
利用Python模拟登录pastebin.com的实现方法
Jul 12 Python
python实现机器人卡牌
Oct 06 Python
Django中自定义查询对象的具体使用
Oct 13 Python
Python定义函数实现累计求和操作
May 03 Python
Python类super()及私有属性原理解析
Jun 15 Python
Matlab使用Plot函数实现数据动态显示方法总结
Feb 25 Python
Python 添加文件注释和函数注释操作
Aug 09 #Python
vscode配置anaconda3的方法步骤
Aug 08 #Python
Pycharm调试程序技巧小结
Aug 08 #Python
Python 在局部变量域中执行代码
Aug 07 #Python
Python如何创建装饰器时保留函数元信息
Aug 07 #Python
python的launcher用法知识点总结
Aug 07 #Python
详解PyQt5中textBrowser显示print语句输出的简单方法
Aug 07 #Python
You might like
php实现的Timer页面运行时间监测类
2014/09/24 PHP
PHP文件操作方法汇总
2015/07/01 PHP
js过滤数组重复元素的方法
2010/09/05 Javascript
Array的push与unshift方法性能比较分析
2011/03/05 Javascript
javascript窗口宽高,鼠标位置,滚动高度(详细解析)
2013/11/18 Javascript
JavaScript中的prototype.bind()方法介绍
2014/04/04 Javascript
javascript实现给定半径求出圆的面积
2015/06/26 Javascript
jQuery模拟物体自由落体运动(附演示与demo源码下载)
2016/01/21 Javascript
JS深度拷贝Object Array实例分析
2016/03/31 Javascript
AngularJS入门教程之Select(选择框)详解
2016/07/27 Javascript
jQuery+ajax的资源回收处理机制分析
2017/01/07 Javascript
JS组件系列之MVVM组件 vue 30分钟搞定前端增删改查
2017/04/28 Javascript
vue2.0 兄弟组件(平级)通讯的实现代码
2018/01/15 Javascript
vue2.0 根据状态值进行样式的改变展示方法
2018/03/13 Javascript
Vue 自定义动态组件实例详解
2018/03/28 Javascript
JavaScript设计模式之单例模式原理与用法实例分析
2018/07/26 Javascript
Webpack按需加载打包chunk命名的方法
2019/09/22 Javascript
VSCode写vue项目一键生成.vue模版,修改定义其他模板的方法
2020/04/17 Javascript
用Python制作在地图上模拟瘟疫扩散的Gif图
2015/03/31 Python
Python生成任意范围任意精度的随机数方法
2018/04/09 Python
数组保存为txt, npy, csv 文件, 数组遍历enumerate的方法
2018/07/09 Python
python 批量添加的button 使用同一点击事件的方法
2019/07/17 Python
基于torch.where和布尔索引的速度比较
2020/01/02 Python
浅析Django 接收所有文件,前端展示文件(包括视频,文件,图片)ajax请求
2020/03/09 Python
解决Python Matplotlib绘图数据点位置错乱问题
2020/05/16 Python
html5如何及时更新缓存文件(js、css或图片)
2013/06/24 HTML / CSS
H5混合开发app如何升级的方法
2018/01/10 HTML / CSS
BNKR中国官网:带你感受澳洲领先潮流时尚
2018/08/21 全球购物
BookOutlet加拿大:在网上书店购买廉价折扣图书和小说
2018/10/05 全球购物
爱岗敬业演讲稿
2014/05/05 职场文书
2014最新实习证明模板
2014/10/02 职场文书
80后婚前协议书范本
2014/10/24 职场文书
专家推荐信范文
2015/03/26 职场文书
优秀党员主要事迹范文
2015/11/05 职场文书
演讲稿之感恩老师(三篇范文)
2019/09/06 职场文书
Java十分钟精通进阶适配器模式
2022/04/06 Java/Android