练习内容:空实心圆形 勾股定理

完整代码和注释如下

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]相关推荐

  1. python编写星号菱形中间是空的_简单空实心图形打印|Python练习系列[3]

    练习内容:打印空实心等腰三角形,空实心菱形,空实心梯形,空实心正六边形 简单空实心图形打印|Python练习系列[3]_哔哩哔哩 (゜-゜)つロ 干杯~-bilibili​www.bilibili.c ...

  2. 打印中间空了一个的菱形_简单空实心图形打印|Python练习系列[3]

    练习内容:打印空实心等腰三角形,空实心菱形,空实心梯形,空实心正六边形 简单空实心图形打印|Python练习系列[3]_哔哩哔哩 (゜-゜)つロ 干杯~-bilibili​www.bilibili.c ...

  3. python等腰梯形_简单空实心图形打印|Python练习系列[3]

    def shape_print(n): #实心等腰三角形 for y in range(n): for x in range(n-y-1):#先循环打印空格 形成一个倒直角三角形 range()中的值 ...

  4. Python灰帽子_黑客与逆向工程师的Python编程之道

    收藏自用 链接:Python灰帽子_黑客与逆向工程师的Python编程之道

  5. python 面试问题_值得阅读的30个Python面试问题

    python 面试问题 Interview questions are quite tricky to predict. In most cases, even peoples with great ...

  6. python老师武_跟着廖雪峰老师学python (5)

    若想技术精进,当然得把基础知识打得牢牢的. 廖雪峰的官方网站  python3教程,该网站提供的教程浅显易懂,还附带了讲学视频,非常适合初学者正规入门. 以下是通过廖雪峰python官方网站学习的个人 ...

  7. python核心理念_《三天搞定Python基础概念之第一天》中文版

    前言: 首先,非常感谢Jiang老师将其分享出来!本课件非常经典! 经过笔者亲测,竟然确实只要三天,便可管中窥豹洞见Python及主要库的应用.实属难得诚意之作! 其次,只是鉴于Jiang老师提供的原 ...

  8. python 字节流分段_一文掌握CTF中Python全部考点

    声明:Tide安全团队原创文章,转载请声明出处!文中所涉及的技术.思路和工具仅供以安全为目的的学习交流使用,任何人不得将其用于非法用途以及盈利等目的,否则后果自行承担! 前 言 一次偶然的机会,让自己 ...

  9. python eel 多线程_利用Eel使JavaScript调用Python程序

    利用Eel使JavaScript调用Python程序 Eel简介 Eel是一个轻量的python桌面GUI开发第三方库, 它使用HTML/JS作为界面开发语言, 但是能够访问所有的python功能, ...

最新文章

  1. fork() || fork() || fork() 与 fork() fork() fork()
  2. 牛客网-阿里巴巴2017
  3. (转载)Unity真机调试
  4. Java设计模式之单例模式(七种写法)
  5. WORD批量更改所有图片大小
  6. php操作elasticsearch
  7. 网页header 的 meta使用
  8. 【Linux】linux经常使用基本命令
  9. bzoj 4551: [Tjoi2016Heoi2016]树
  10. linux 字符设备和块设备的区别
  11. 翻译: TensorFlow 2.0 中的新功能
  12. 更改win11鼠标指针样式
  13. bootstrapform表单重置_“bootstrap table”怎么重置表单?
  14. 单片机的一些名词解释
  15. 为什么百度快照没有样式
  16. callee、caller、call、apply、bind这些方法的含义和使用
  17. python数据分析 - T检验与F检验:二组数据那个更好?(一)
  18. 计算机怎么连不上打印机,电脑和打印机连接不上怎么回事
  19. (整理)手机上一些常用的url
  20. android 大量代码中 grep 太慢,ReactNative 性能 - 闪电教程JSRUN

热门文章

  1. HTML5+CSS 静态网页-极米商城
  2. HTTP400 的坑
  3. mysql8.0 wordpress_2008Server R2 部署IIS+MySql8.0+PHP7.4+WordPress5.4 - 兔子街
  4. ltd弹出 rust steam_《Rust》在Steam上已被退款33万份 损失438万美元
  5. 华为watch 3 Pro和GT3 Pro的区别 哪个好
  6. 淘宝上线语音聊天功能
  7. 知识产权诉讼律师告诉你商标被驳回复审是否还受保护?
  8. window10开机密码怎么取消_win10系统怎么取消开机密码?
  9. 9.19 接上一篇,jss
  10. qemu命令行开启vt