输入内角和,画出相应正多边形:

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)。

图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画简单几何图形相关推荐

  1. 用python实现星期的转换_[Python实践] 利用python实现的日期映射礼拜X的简单实现...

    [Python实践] 利用python实现的日期映射礼拜X的简单实现 2018年12月19日 最近在处理分析数据的时候,突发奇想试着从用户离职的日期上判断是主动辞职还是被动解雇?数据的背景是美国某企业 ...

  2. Python:利用python语言绘制多个子图经典案例、代码实现之详细攻略

    Python:利用python语言绘制多个子图经典案例.代码实现之详细攻略 目录 利用python语言绘制多个子图代码实现.经典案例 1.绘制多个子图框架 多个子图绘制的经典案例 1.绘制多个直方图 ...

  3. python怎么实现检验_[python skill]利用python实现假设性检验方法

    [python skill]利用python实现假设性检验方法 刀尔東 2018-08-03 09:19:13 1244 收藏 2 版权 hello,大噶好,最近新学习了利用python实现假设性检验 ...

  4. 【Python】利用Python实现精准三点定位(经纬度坐标与平面坐标转换法求解)

    [Python]利用Python实现精准三点定位(经纬度坐标与平面坐标转换法求解) 众所周知,如果已知三个点的坐标,到一个未知点的距离,则可以利用以距离为半径画圆的方式来求得未知点坐标. 如果只有两个 ...

  5. Python:利用python编程实现三维图像绘制展示(六面体旋转、三维球柱状体、下雪场景等)

    Python:利用python编程实现三维图像绘制展示(六面体旋转.三维球柱状体.下雪场景等) 目录 利用python编程实现三维图像绘制展示(六面体旋转.三维球柱状体.下雪场景等) 1.实现六面体旋 ...

  6. Python:利用python编程将上海十六区,2020年5月份房价实时地图(数据来源房天下)进行柱状图、热图可视化

    Python:利用python编程将上海十六区,2020年5月份房价实时地图(数据来源房天下)进行柱状图.热图可视化 目录 上海十六区,2020年5月份房价实时地图(数据来源房天下)可视化 雷达图.柱 ...

  7. python容易学ma_初学者学python 初学者学python好学吗

    初学者学python 初学者学python好学吗 初学者学python好学吗?Python是最容易入门的编程语言,没有之一.如果初学者接触的第一门语言是C或者C++,对他们来说最难的不是语法,而是容易 ...

  8. 【Python】利用python进行数据分析——以新型冠状病毒疫情为例

    [Python]利用python进行数据分析--以新型冠状病毒疫情为例 重要说明 只提交该文档这一个文件,做完后提交到学习通"结课大作业"中. 1. 文件命名: 必须以学号-姓名- ...

  9. python推荐系统-利用python构建一个简单的推荐系统

    摘要: 快利用python构建一个属于你自己的推荐系统吧,手把手教学,够简单够酷炫. 本文将利用python构建一个简单的推荐系统,在此之前读者需要对pandas和numpy等数据分析包有所了解. 什 ...

  10. 数据分析 python 用途-利用Python数据分析可以实现些什么功能呢?

    随着大数据时代的来临和Python编程语言的火爆,Python数据分析早已成为现在职场人的必备核心技能.那么利用Python数据分析可以做什么呢?简单来说,可以做到的内容有很多,比如检查数据表.数据表 ...

最新文章

  1. 腾讯地图和百度地图的PHP相互转换
  2. 题库练习1(单词长度、统计字符个数、)
  3. 深度学习过拟合解决方案
  4. C#中Thread.IsBackground 属性
  5. SchemaCrawler 9.3 发布
  6. 漫画:什么是八皇后问题
  7. LeetCode 1813. 句子相似性 III
  8. 全能型AI!用通用预训练感知模型处理多模态多任务!商汤西交港中文提出:Uni-Perceiver...
  9. 尽量少一点甲方思维,也尽量少一点弱势方思维
  10. UnityWebform(2):自定义LifetimeManager和TypeConverter使Unity从HttpContext中取值注入WebForm页面...
  11. trigger 根据绑定到匹配元素的给定的事件类型执行所有的处理程序和行为。
  12. WinRAR4.0注册码
  13. 金蝶K3 如何添加其它出库单出库类型
  14. 当mqtt客户端向服务端发送信息出现掉包的问题
  15. 论文篇-----高速公路交通流数据质量控制及评价方法
  16. 成长篇之代码灵异事件
  17. 「运维有小邓」搜索日志数据以作为网络安全情报
  18. 刘邦六大用人之道,很值得管理人员学习
  19. 软件架构 - 架构风格总结
  20. 《面试无忧》--DCL单例模式为什么要用volatile修饰?

热门文章

  1. 从技术问题变成RPWT
  2. 2020抖音最新版去水印方法
  3. 物联网应用技术有哪些?
  4. HDMI调试基本原理
  5. Docker配置镜像加速器
  6. 参加了一场温州游资的婚礼,也太壕了
  7. 阿里云DKMS对接记录
  8. 在手机上怎么修改图片格式?图片怎么转png格式?
  9. 俺博士三年的一点体会
  10. java继承计算不同图形面积_第五章-子类与继承-实验2(图形面积的和)