python打印圆形_任意空实心圆形打印|Python练习系列[8]
练习内容:空实心圆形 勾股定理
完整代码和注释如下
def circle(r):
#空心圆
hollow_quarter_circle_rd=[[' 'for x in range(r*2+1)]for y in range(r+1)]#创建圆的右下角四分之一的列表
hollow_half_circle_right=[]#创建圆的右半边的列表
hollow_whole_circle=[]#创建整个圆的列表
for y in range(r+1):#填充四分之一圆
half_chord=round((r**2-y**2)**0.5)#half_chord 弦长的一半 利用勾股定理y^2+x^2=r^2
hollow_quarter_circle_rd[y][half_chord*2]='o'#竖向填充
hollow_quarter_circle_rd[half_chord][y*2]='o'#横向填充
for y in range(r+1):#将圆的右下角四分之一沿x轴对称翻转填充到圆的右半边的列表内
hollow_half_circle_right.append(hollow_quarter_circle_rd[-y-1])
for y in range(r+1):#填充圆的右下角四分之一到圆的右半边的列表内
hollow_half_circle_right.append(hollow_quarter_circle_rd[y])
for y in range(r*2+2):#将圆的右半部分沿y轴对称翻转填充到整个圆的列表内
hollow_whole_circle.append(hollow_half_circle_right[y])
hollow_whole_circle[y]=hollow_whole_circle[y][::-1]#填充后每行列表翻转
hollow_whole_circle[y]+=' '#填充最中间的一列
for y in range(r*2+2):#将圆的右半部分填充到整个圆的列表
hollow_whole_circle[y].extend(hollow_half_circle_right[y])
for y in range(r*2+2):#打印出圆
for x in range(r*4+3):
print(hollow_whole_circle[y][x],end='')
print()
print()
#实心圆
quarter_circle_rd=[[' 'for x in range(r*2+1)]for y in range(r+1)]#创建圆的右下角四分之一的列表
half_circle_right=[]#创建圆的右半边的列表
half_circle_right_x_coordinate=[]#创建圆的右半边的x值列表
whole_circle=[]#创建整个圆的列表
for y in range(r+1):#填充四分之一圆
half_chord=round((r**2-y**2)**0.5)#half_chord 弦长的一半 利用勾股定理y^2+x^2=r^2
quarter_circle_rd[y][half_chord*2]='o'#竖向填充
quarter_circle_rd[half_chord][y*2]='o'#横向填充
for y in range(r+1):#将圆的右下角四分之一沿x轴对称翻转填充到圆的右半边的列表内
half_circle_right.append(quarter_circle_rd[-y-1])
for y in range(r+1):#填充圆的右下角四分之一到圆的右半边的列表内
half_circle_right.append(quarter_circle_rd[y])
for y in range(r*2+2):#获取圆的右半边的x值
for x in range(r*2+1):
if half_circle_right[y][x]=='o':
half_circle_right_x_coordinate.append(x)
break#对于每一行取到第一个值就退出x的循环
for y in range(r*2+2):#填充内部
for x in range(half_circle_right_x_coordinate[y]):
half_circle_right[y][x]='o'
for y in range(r*2+2):#填充两个符号中间的空格 o o→ooo
for x in range(r*2+1-2):
if half_circle_right[y][x]=='o' and half_circle_right[y][x+2]=='o':#如果有两个连着的o
half_circle_right[y][x+1]='o'#两个o中间的空格变为o
for y in range(r*2+2):#将圆的右半部分沿y轴对称翻转填充到整个圆的列表内
whole_circle.append(half_circle_right[y])
whole_circle[y]=whole_circle[y][::-1]#填充后每行列表翻转
whole_circle[y]+='o'#填充最中间的一列
for y in range(r*2+2):#将圆的右半部分填充到整个圆的列表
whole_circle[y].extend(half_circle_right[y])
for y in range(r*2+2):#打印出圆
for x in range(r*4+3):
print(whole_circle[y][x],end='')
print()
circle(20)
python打印圆形_任意空实心圆形打印|Python练习系列[8]相关推荐
- python编写星号菱形中间是空的_简单空实心图形打印|Python练习系列[3]
练习内容:打印空实心等腰三角形,空实心菱形,空实心梯形,空实心正六边形 简单空实心图形打印|Python练习系列[3]_哔哩哔哩 (゜-゜)つロ 干杯~-bilibiliwww.bilibili.c ...
- 打印中间空了一个的菱形_简单空实心图形打印|Python练习系列[3]
练习内容:打印空实心等腰三角形,空实心菱形,空实心梯形,空实心正六边形 简单空实心图形打印|Python练习系列[3]_哔哩哔哩 (゜-゜)つロ 干杯~-bilibiliwww.bilibili.c ...
- python等腰梯形_简单空实心图形打印|Python练习系列[3]
def shape_print(n): #实心等腰三角形 for y in range(n): for x in range(n-y-1):#先循环打印空格 形成一个倒直角三角形 range()中的值 ...
- Python灰帽子_黑客与逆向工程师的Python编程之道
收藏自用 链接:Python灰帽子_黑客与逆向工程师的Python编程之道
- python 面试问题_值得阅读的30个Python面试问题
python 面试问题 Interview questions are quite tricky to predict. In most cases, even peoples with great ...
- python老师武_跟着廖雪峰老师学python (5)
若想技术精进,当然得把基础知识打得牢牢的. 廖雪峰的官方网站 python3教程,该网站提供的教程浅显易懂,还附带了讲学视频,非常适合初学者正规入门. 以下是通过廖雪峰python官方网站学习的个人 ...
- python核心理念_《三天搞定Python基础概念之第一天》中文版
前言: 首先,非常感谢Jiang老师将其分享出来!本课件非常经典! 经过笔者亲测,竟然确实只要三天,便可管中窥豹洞见Python及主要库的应用.实属难得诚意之作! 其次,只是鉴于Jiang老师提供的原 ...
- python 字节流分段_一文掌握CTF中Python全部考点
声明:Tide安全团队原创文章,转载请声明出处!文中所涉及的技术.思路和工具仅供以安全为目的的学习交流使用,任何人不得将其用于非法用途以及盈利等目的,否则后果自行承担! 前 言 一次偶然的机会,让自己 ...
- python eel 多线程_利用Eel使JavaScript调用Python程序
利用Eel使JavaScript调用Python程序 Eel简介 Eel是一个轻量的python桌面GUI开发第三方库, 它使用HTML/JS作为界面开发语言, 但是能够访问所有的python功能, ...
最新文章
- fork() || fork() || fork() 与 fork() fork() fork()
- 牛客网-阿里巴巴2017
- (转载)Unity真机调试
- Java设计模式之单例模式(七种写法)
- WORD批量更改所有图片大小
- php操作elasticsearch
- 网页header 的 meta使用
- 【Linux】linux经常使用基本命令
- bzoj 4551: [Tjoi2016Heoi2016]树
- linux 字符设备和块设备的区别
- 翻译: TensorFlow 2.0 中的新功能
- 更改win11鼠标指针样式
- bootstrapform表单重置_“bootstrap table”怎么重置表单?
- 单片机的一些名词解释
- 为什么百度快照没有样式
- callee、caller、call、apply、bind这些方法的含义和使用
- python数据分析 - T检验与F检验:二组数据那个更好?(一)
- 计算机怎么连不上打印机,电脑和打印机连接不上怎么回事
- (整理)手机上一些常用的url
- android 大量代码中 grep 太慢,ReactNative 性能 - 闪电教程JSRUN
热门文章
- HTML5+CSS 静态网页-极米商城
- HTTP400 的坑
- mysql8.0 wordpress_2008Server R2 部署IIS+MySql8.0+PHP7.4+WordPress5.4 - 兔子街
- ltd弹出 rust steam_《Rust》在Steam上已被退款33万份 损失438万美元
- 华为watch 3 Pro和GT3 Pro的区别 哪个好
- 淘宝上线语音聊天功能
- 知识产权诉讼律师告诉你商标被驳回复审是否还受保护?
- window10开机密码怎么取消_win10系统怎么取消开机密码?
- 9.19 接上一篇,jss
- qemu命令行开启vt