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 相关文章推荐
Python格式化css文件的方法
Mar 10 Python
python实现telnet客户端的方法
Apr 15 Python
Python实现字符串反转的常用方法分析【4种方法】
Sep 30 Python
python实现拓扑排序的基本教程
Mar 11 Python
解决matplotlib库show()方法不显示图片的问题
May 24 Python
Python 移动光标位置的方法
Jan 20 Python
python并发编程多进程 互斥锁原理解析
Aug 20 Python
python实现ip地址查询经纬度定位详解
Aug 30 Python
Python实现语音识别和语音合成功能
Sep 20 Python
浅谈SciPy中的optimize.minimize实现受限优化问题
Feb 29 Python
对python中arange()和linspace()的区别说明
May 03 Python
python基于opencv实现人脸识别
Jan 04 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文件向另一个地址post数据,不用表单和隐藏的变量的
2007/03/06 PHP
ajax+php打造进度条 readyState各状态
2010/03/20 PHP
提高PHP编程效率的53个要点(经验小结)
2010/09/04 PHP
php将session放入memcached的设置方法
2014/02/14 PHP
PHP对象克隆clone用法示例
2016/09/28 PHP
Laravel获取所有的数据库表及结构的方法
2019/10/10 PHP
jQuery+ajax实现顶一下,踩一下效果
2010/07/17 Javascript
Windows系统下使用Sublime搭建nodejs环境
2015/04/13 NodeJs
微信小程序 基础知识css样式media标签
2017/02/15 Javascript
jQuery获取单选按钮radio选中值与去除所有radio选中状态的方法
2017/05/20 jQuery
详解nodejs模板引擎制作
2017/06/14 NodeJs
vue.js组件vue-waterfall-easy实现瀑布流效果
2017/08/22 Javascript
JS弹窗 JS弹出DIV并使整个页面背景变暗功能的实现代码
2018/04/21 Javascript
解决angular2在双向数据绑定时[(ngModel)]无法使用的问题
2018/09/13 Javascript
深入理解JavaScript 中的执行上下文和执行栈
2018/10/23 Javascript
微信小程序之swiper滑动面板用法示例
2018/12/04 Javascript
如何使用pm2快速将项目部署到远程服务器
2019/03/12 Javascript
Vue2.0实现组件之间数据交互和通信操作示例
2019/05/16 Javascript
详解js中let与var声明变量的区别
2020/04/05 Javascript
[50:27]OG vs LGD 2018国际邀请赛淘汰赛BO3 第一场 8.26
2018/08/30 DOTA
Python之eval()函数危险性浅析
2014/07/03 Python
用Python编写一个简单的Lisp解释器的教程
2015/04/03 Python
python实现在windows下操作word的方法
2015/04/28 Python
pyinstaller打包程序exe踩过的坑
2019/11/19 Python
python使用自定义钉钉机器人的示例代码
2020/06/24 Python
M1芯片安装python3.9.1的实现
2021/02/02 Python
Html5+JS实现手机摇一摇功能
2015/04/24 HTML / CSS
超30万乐谱下载:Musicnotes.com
2016/09/24 全球购物
本科毕业生自我鉴定
2013/11/02 职场文书
个人党性剖析材料
2014/02/03 职场文书
互联网创业计划书写作技巧攻略
2014/03/23 职场文书
离婚协议书范文2014
2014/10/16 职场文书
武夷山导游词
2015/02/03 职场文书
讲座开场白台词和结束语
2015/05/29 职场文书
军训新闻稿范文
2015/07/17 职场文书
2019财务转正述职报告
2019/06/27 职场文书