(python初学者)利用python画简单几何图形
输入内角和,画出相应正多边形:
from turtle import*
color("green" , "blue") #设置途径的画笔颜色与填充颜色
speed(1000)
temp = input('这个正多边形的内角和为:')
anglesum = int(temp) #输入内角和
n = 2 + (anglesum / 180) #内角和为anglesum的n变形
angle = anglesum / n #正多边形内角begin_fill()
i = 0
while i < anglesum: #所画内角是否已经达到所需内角和forward(10) #设置边长right(180 - angle)i += angle
end_fill()
done()
例:输入内角和为1800时,结果为
不足:当输入值未错误内角和时,也会画出图像(如图A),但不为正多边形,且在数值接近正多边形内角和时,近似等于正多边形内角和且绘制出图像(如图B)。
speed() 设置其速度
color () 设置图形颜色color(pencolor,fillcorlor),也可利用turtle.pencolor()和 turtle.fillcolor() 来单独对画笔颜色和填充颜色进行设置
forward() 在此处可理解为设置边长(此例中设置为10)
############################################################################
当输入内角和不为正多边形内角和时给出提示:
利用函数法表述
使用def 来创建一个函数
def myfunc(): #构建函数n = 2 + (anglesum / 180) #内角和为anglesum的n变形angle = anglesum / n #正多边形内角i = 0while i < anglesum: #所画内角是否已经达到所需内角和forward(60) #设置边长right(180 - angle)i += angle
后直接在内角和正确(即180的整数倍)的情况下调用该函数,内角和错误的情况下给出提示:
if anglesum % 180 == 0:myfunc()
else:print('请输入正确的内角和!(tip:内角和为180的整数倍哦)')
完整代码如下:
from turtle import*
color("green" , "blue") #设置途径的画笔颜色与填充颜色
temp = input('这个正多边形的内角和为:')
anglesum = int(temp) #输入内角和
begin_fill()def myfunc(): #构建函数n = 2 + (anglesum / 180) #内角和为anglesum的n变形angle = anglesum / n #正多边形内角i = 0while i < anglesum: #所画内角是否已经达到所需内角和forward(60) #设置边长right(180 - angle)i += angleif anglesum % 180 == 0:myfunc()
else:print('请输入正确的内角和!(tip:内角和为180的整数倍哦)')
end_fill()
done()
此例forward()设置为60
结果同上。
#############################################################################
以上做法在绘图一次后需要重新运行程序才可以进行第二次绘图
为了让用户选择继续绘图还是退出程序,做了如下改进:
from turtle import*
color("green" , "blue") #设置途径的画笔颜色与填充颜色
speed(100) #设置画图速度
width(4)
def myfuncA (): #新建画图函数temp = input('这个正多边形的内角和为:') #输入内角和anglesum = int(temp) while anglesum % 180 != 0: #判断所输入的内角和是否可以构成多边形print('请输入正确的内角和!')temp = input('这个多边形的内角和为(180的整数倍):')anglesum = int(temp)else:n = 2 + (anglesum / 180) #内角和为anglesum的n变形angle = anglesum / n #正多边形内角begin_fill()i = 0while i < anglesum : #所画内角是否已经达到所需内角和forward(60) #设置边长right(180 - angle)i += angleend_fill()
myfuncA()
def myfuncB(): #新建一个重新再来的函数temp = input('您是否想再玩一次?(YES/NO)')#是否想再开始一次answer = str(temp) #定义字符串,回答为yes还是noif answer == 'YES' or answer == 'yes':reset() #清空上一次的图案color('green','blue')myfuncA() #执行画图函数myfuncB() #画图结束后再次选择是否继续重画else:if answer == 'NO' or answer == 'no':print('感谢您的参与!再见!')else:if answer != 'NO' or answer != 'no' and answer != 'YES' or answer != 'yes':print('请输入有效回答!')temp = input('您是否想再玩一次?(YES/NO)')answer = str(temp)
myfuncB()
改方法进行了两次函数设定:myfuncA():绘图函数;
myfuncB():选择是否继续函数
此部分可简写为elif形式,如下:
if answer == 'YES' or answer == 'yes':reset()color('green','blue')myfunc()
elif answer == 'NO' or answer == 'no':print('感谢您的参与!再见!')
elif answer != 'NO' or answer != 'no' and answer != 'YES' or answer != 'yes':print('请输入有效回答!')temp = input('您是否想再玩一次?(YES/NO)')answer = str(temp)
(在询问“您是否想再玩一次?(YES/NO)”,若输入NO/no时未出现“感谢您的参与!再见”字符,是因为字符串识别问题,则修改此代码中的“NO”和“no”即可)
参考:turtle --- 海龟绘图 — Python 3.10.4 文档
(python初学者)利用python画简单几何图形相关推荐
- 用python实现星期的转换_[Python实践] 利用python实现的日期映射礼拜X的简单实现...
[Python实践] 利用python实现的日期映射礼拜X的简单实现 2018年12月19日 最近在处理分析数据的时候,突发奇想试着从用户离职的日期上判断是主动辞职还是被动解雇?数据的背景是美国某企业 ...
- Python:利用python语言绘制多个子图经典案例、代码实现之详细攻略
Python:利用python语言绘制多个子图经典案例.代码实现之详细攻略 目录 利用python语言绘制多个子图代码实现.经典案例 1.绘制多个子图框架 多个子图绘制的经典案例 1.绘制多个直方图 ...
- python怎么实现检验_[python skill]利用python实现假设性检验方法
[python skill]利用python实现假设性检验方法 刀尔東 2018-08-03 09:19:13 1244 收藏 2 版权 hello,大噶好,最近新学习了利用python实现假设性检验 ...
- 【Python】利用Python实现精准三点定位(经纬度坐标与平面坐标转换法求解)
[Python]利用Python实现精准三点定位(经纬度坐标与平面坐标转换法求解) 众所周知,如果已知三个点的坐标,到一个未知点的距离,则可以利用以距离为半径画圆的方式来求得未知点坐标. 如果只有两个 ...
- Python:利用python编程实现三维图像绘制展示(六面体旋转、三维球柱状体、下雪场景等)
Python:利用python编程实现三维图像绘制展示(六面体旋转.三维球柱状体.下雪场景等) 目录 利用python编程实现三维图像绘制展示(六面体旋转.三维球柱状体.下雪场景等) 1.实现六面体旋 ...
- Python:利用python编程将上海十六区,2020年5月份房价实时地图(数据来源房天下)进行柱状图、热图可视化
Python:利用python编程将上海十六区,2020年5月份房价实时地图(数据来源房天下)进行柱状图.热图可视化 目录 上海十六区,2020年5月份房价实时地图(数据来源房天下)可视化 雷达图.柱 ...
- python容易学ma_初学者学python 初学者学python好学吗
初学者学python 初学者学python好学吗 初学者学python好学吗?Python是最容易入门的编程语言,没有之一.如果初学者接触的第一门语言是C或者C++,对他们来说最难的不是语法,而是容易 ...
- 【Python】利用python进行数据分析——以新型冠状病毒疫情为例
[Python]利用python进行数据分析--以新型冠状病毒疫情为例 重要说明 只提交该文档这一个文件,做完后提交到学习通"结课大作业"中. 1. 文件命名: 必须以学号-姓名- ...
- python推荐系统-利用python构建一个简单的推荐系统
摘要: 快利用python构建一个属于你自己的推荐系统吧,手把手教学,够简单够酷炫. 本文将利用python构建一个简单的推荐系统,在此之前读者需要对pandas和numpy等数据分析包有所了解. 什 ...
- 数据分析 python 用途-利用Python数据分析可以实现些什么功能呢?
随着大数据时代的来临和Python编程语言的火爆,Python数据分析早已成为现在职场人的必备核心技能.那么利用Python数据分析可以做什么呢?简单来说,可以做到的内容有很多,比如检查数据表.数据表 ...
最新文章
- 腾讯地图和百度地图的PHP相互转换
- 题库练习1(单词长度、统计字符个数、)
- 深度学习过拟合解决方案
- C#中Thread.IsBackground 属性
- SchemaCrawler 9.3 发布
- 漫画:什么是八皇后问题
- LeetCode 1813. 句子相似性 III
- 全能型AI!用通用预训练感知模型处理多模态多任务!商汤西交港中文提出:Uni-Perceiver...
- 尽量少一点甲方思维,也尽量少一点弱势方思维
- UnityWebform(2):自定义LifetimeManager和TypeConverter使Unity从HttpContext中取值注入WebForm页面...
- trigger 根据绑定到匹配元素的给定的事件类型执行所有的处理程序和行为。
- WinRAR4.0注册码
- 金蝶K3 如何添加其它出库单出库类型
- 当mqtt客户端向服务端发送信息出现掉包的问题
- 论文篇-----高速公路交通流数据质量控制及评价方法
- 成长篇之代码灵异事件
- 「运维有小邓」搜索日志数据以作为网络安全情报
- 刘邦六大用人之道,很值得管理人员学习
- 软件架构 - 架构风格总结
- 《面试无忧》--DCL单例模式为什么要用volatile修饰?