目录

2.1实例1的修改。

2.2汇率兑换程序。

2.3彩色蟒蛇绘制。

2.4等边三角形的绘制。

2.5叠加等边三角形的绘制。

2.6无角正方形的绘制。

2.7六角形的绘制。

2.8正方形螺旋线的绘制。

彩蛋

结尾

2.1实例1的修改。

题目:改造实例代码1.1,采用eval(input(<提示内容>))替换现有输入部分,并使输出的温度值为整数。

实例1

#e1.1TempConvert.py
TempStr = input("请输入带有符号的温度值: ")
if TempStr[-1] in ['F','f']:C = (eval(TempStr[0:-1]) - 32)/1.8print("转换后的温度是{:.2f}C".format(C))
elif TempStr[-1] in ['C','c']:F = 1.8*eval(TempStr[0:-1]) + 32print("转换后的温度是{:.2f}F".format(F))
else:print("输入格式错误")

输入部分加了eval()就相当于把输入内容去掉引号,即转化为非字符类型,因此需要用户再次输入单位,完成转化

#exercise.2.1.py
TempStr = eval(input("请输入带无单位的温度值:"))
Unit = input("请输入单位:")
if Unit in ['F','f'] :C = (TempStr - 32)/1.8print("{:.0f}C".format(C))
elif Unit in ['C','c'] :F = 1.8 * TempStr +32print("{:.0f}F".format(F))
else :print("格式错误")

运行结果:

2.2汇率兑换程序。

题目:按照温度转换程序的设计思路,按照1美元=6人民币汇率编写一个美元和人民币的双向兑换程序

思路和实例1相似,这里不再赘述

#exercise.2.2
money = input("请输入货币数量和单位:")
if money[-1] in ['M','m'] :RMB = eval(money[0:-1]) / 6print("{}R".format(RMB))
elif money[-1] in ['R','r'] :Mei = eval(money[0:-1]) * 6print("{}M".format(Mei))
else :print("输入单位格式错误")

运行结果:

2.3彩色蟒蛇绘制。

题目:改造实例代码2.1,绘制一条彩色蟒蛇,即在绘制Python蟒蛇的每个小段时,画笔的绘制颜色会发生变化。

这里需要定义一个color列表存放不同颜色,如果没有学过列表,就当作它是一个可以存放元素的容器,下标从0到n-1,其中n为元素个数

#exercise 2.3
#!/usr/bin/python
#-*- coding:<encoding name> -*-
#@Author : Rosediver
#@Time : 2022/5/28 22:48
#@Sofeware : VS Code
import turtle
color = ['black','grey','pink','gold']
turtle.setup(650,320,200,200)
turtle.penup()
turtle.fd(-250)
turtle.pendown()
turtle.pensize(25)
turtle.seth(-40)
for i in range(4) :turtle.pencolor(color[i])turtle.circle(40,80)turtle.circle(-40,80)
turtle.pencolor('purple')
turtle.circle(40,40)
turtle.fd(40)
turtle.pencolor('red')
turtle.circle(16,180)
turtle.fd(40)
turtle.done()

运行结果:

这里给新手一个建议,当绘制图像的过程中出现循环,可以给每一次循环换上不同的笔刷颜色,便于理解循环

2.4 等边三角形的绘制。

题目:使用turtle库中的turtle.fd函数和turtle.seth()函数绘制一个等边三角形,效果如图2.8所示。

将海龟移到需要的位置(三角形的某条边的中点),然后利用循环画出三条边即可

#exercise 2.4
#!/usr/bin/python
#-*- coding:<encoding name> -*-
#@Author : Rosediver
#@Time : 2022/5/28 0:23
#@Sofeware : VS Code
import turtle
turtle.setup(800,600,400,400)
turtle.penup()
turtle.left(90)
turtle.fd(150)
turtle.pendown()
turtle.left(30)
for i in range(3) :turtle.left(120)turtle.fd(400)
turtle.done()

运行结果:

2.5 叠加等边三角形的绘制。

题目:使用turtle库中的turtle.fd)函数和turtle.seth()函数绘制一个叠加等边三角形,效果如图2.9所示。

叠加等边三角形其实是由三个等边三角形组成的,因此我们可以利用循环嵌套,外层循环画出三个三角形,并且在循环体内调整画笔位置和角度,方便内部循环画三角形,内部循环画等边三角形。

#exercise 2.5
#!/usr/bin/python
#-*- coding:<encoding name> -*-
#@Author : Rosediver
#@Time : 2022/5/28 15.48
#@Sofeware : VS Codeimport turtle
turtle.setup(800,600,200,200)
turtle.speed(1)
turtle.penup()
turtle.fd(50)
turtle.pendown()
for i in range(3) :if i == 1 :turtle.left(60)if i == 2 :turtle.left(120)turtle.fd(100)turtle.right(60)for j in range(3) :if i % 2 == 0 :turtle.left(120)else :turtle.right(120)turtle.fd(100)turtle.done()

运行结果:

2.6无角正方形的绘制。

题目:利用turtle库函数绘制一个没有角的正方形,效果如图2.10所示。

这道题的难度也不是很大,只是在画正方形的基础上给正方形的边分段,落笔的和未落笔的,他们中间只是多了turtle.penup()和turtle.pendown()而已

#exercise 2.6
#!/usr/bin/python
#-*- coding:<encoding name> -*-
#@Author : Rosediver
#@Time : 2022/5/28 16.32
#@Sofeware : VS Codeimport turtle
turtle.setup(800,600,200,200)
turtle.speed(1)
turtle.penup()
turtle.fd(100)
turtle.pendown()
turtle.left(90)
for i in range(4) :turtle.fd(80)turtle.penup()turtle.fd(20)turtle.left(90)turtle.fd(20)turtle.pendown()turtle.fd(80)
turtle.done()

运行结果:

2.7六角形的绘制。

题目:利用turtle库绘制一个六角形,效果如图2.11所示。

这道题我的第一反应是,六角形是由两个不同角度的等边三角形构成的,但是由于本人才疏学浅,目前没法用这个思路写出来程序(主要是实在用不明白goto()函数),有想法的朋友可以在评论区指教。于是我换了种思路:

这个六角形是由外圈和内圈构成的(红笔为外圈)

于是我们使用两个循环,它们之间是平行关系,第一个循环画外圈,以两条边为一组,循环六次画出十二条边。第二个循环画内圈,内圈更简单,单纯的seth()和fd()就可以做到。但是画内圈之前记得调整画笔位置和角度哦!

#exercise 2.7
#!/usr/bin/python
#-*- coding:<encoding name> -*-
#@Author : Rosediver
#@Time : 2022/5/28 16.45
#@Sofeware : VS Codeimport turtle
turtle.setup(800,600,200,200)
turtle.speed(1)
turtle.penup()
turtle.fd(30)
turtle.pendown()'''画外圈'''
for i in range(6) :turtle.left(120)turtle.fd(80)turtle.right(60)turtle.fd(80)'''连接内部线条'''
turtle.left(120)
turtle.fd(80)
for j in range(6) :turtle.fd(80)turtle.left(60)
turtle.done()

运行结果:

大家稍微注意一下我的思路就可以看到,每当遇到复杂一点的图形,我们首先就要想办法把它拆分成简单的图形,再找到简单图形之间的规律。

2.8 正方形螺旋线的绘制。

题目:利用turtle库绘制一个正方形螺旋线,效果如图2.12所示

看到这个图形,想必大家第一反应都是循环,就不多赘述了。这里比较麻烦的一点是,要想达到和题目一样的图形,需要找到边和循环次数的关系,这就需要我们不断尝试了,循环体不是很难,具体如下:

#exercise 2.8
#!/usr/bin/python
#-*- coding:<encoding name> -*-
#@Author : Rosediver
#@Time : 2022/5/28 17:27
#@Sofeware : VS Codeimport turtle
turtle.setup(800,600,200,200)
turtle.speed(20)for i in range (200) :turtle.left(90)turtle.fd(2*i)turtle.done()

运行结果:

我们还可以稍微修改一下这段代码,给图形加上颜色,单一的颜色也挺没意思的,因此我们尝试着给他的四边染上不同的颜色

#exercise 2.8
#!/usr/bin/python
#-*- coding:<encoding name> -*-
#@Author : Rosediver
#@Time : 2022/5/28 20:33
#@Sofeware : VS Codeimport turtle
turtle.setup(800,600,200,200)
turtle.speed(20)
color = ['red','grey','darkgreen','gold']
for i in range (200) :turtle.pencolor(color[i%4])turtle.left(90)turtle.fd(2*i)turtle.done()

运行结果:

虽然很丑,但好像还挺好玩的,大家可以试着更改颜色,或者更改参数,看看最后会呈现什么样的效果。

彩蛋

细心的小伙伴可能已经发现我的程序之前加了几行奇怪的代码

#exercise 2.8
#!/usr/bin/python
#-*- coding:<encoding name> -*-
#@Author : Rosediver
#@Time : 2022/5/28 17:27
#@Sofeware : VS Code

这段代码相当于程序的水印啦,第1行是我们最熟悉的程序名称,最好为英文。

第2行: #!/usr/bin/python是告诉linux系统这是一个python文件。不知道linux系统的没关系,你也到了接触linux的时候了[手动狗头]

第3行:#-*- coding:<encoding name> -*-这一行Windows不会识别

第4行:#@Author : Rosediver标注程序作者,比如我Rosediver

第5行:#@Time : 2022/5/28 17:27标注编写程序的时间

第6行:#@Sofeware : VS Code标注编写程序的软件

结尾

学习任何一门课程都不是一件容易的事情,我们往往需要不断地努力,学习,交流,才能成就更好的自己。

以上思路仅为个人想法,用于抛砖引玉,欢迎大家讨论

《Python语言程序设计基础》:第2章:Python程序实例解析:程序练习题相关推荐

  1. python语言程序设计 梁勇_计算机二级教程 Python语言程序设计,第9章Python标准库概览...

    第九章学习知识导图 考点主要是: 1) 标准库: turtle库(必选) 2) 标准库: random库(必选).time库(可选) 3) 作者归纳:这章考大题和选择题的读程序题,本章结束,pytho ...

  2. python库_计算机二级教程 Python语言程序设计,第10章python第三方库概览

    第十章学习知识导图 考点主要是: 1) 第三方库的获取和安装 2) 脚本程序转变为可执行程序的第三方库 : PyInstaller库(必选) 3) 第三方库: jieba库(必选).wordcloud ...

  3. 《Python语言程序设计》之第三次平时作业解析

    <Python语言程序设计>之第三次平时作业解析 程序填空题 单项选择题 程序填空题 下面程序的功能是从列表中筛选出字符串元素,并将它们连接为一个字符串.程序运行后的输出情况如下图所示.请 ...

  4. 基于python的界面自动化测试-基于Python语言的自动化测试实战第二章(上)

    原标题:基于Python语言的自动化测试实战第二章(上) 测试环境搭建 2.1 Windows 下的环境搭建 如果想要学习一门编程语言,对于新手来说只需到其官方网站上去下载最新版本安装即可,但对于想要 ...

  5. 简述python语言的主要领域_简述Python语言经验总结

    Python语言是不被大多数人知道的东西,这里就简单概述下Python语言,顺便闲谈一 下Python 标准库."俗话"说:库即是语言,语言即是库.由此可见拥有一套高质量.具备良好 ...

  6. 【MOOC嵩天Python语言程序设计】第9周 Python计算生态概览

    [MOOC嵩天Python语言程序设计]第9周 Python计算生态概览 9.1 从数据处理到人工智能 9.2 实例15:霍兰德人格分析雷达图 9.3 从Web解析到网络空间 9.4 从人机交互到艺术 ...

  7. python语言程序设计实验题_《Python语言程序设计》测验题目

    Python语言程序设计测验题目 在MOOC网学习Python语言程序设计 课程,课程会有考试,这里把每次考试的经历记录下来,作为学习Python笔记的一部分,后边的考试会持续更新-- Python语 ...

  8. Python语言学习之图表可视化:python语言中可视化工具包的简介、安装、使用方法、经典案例之详细攻略

    Python语言学习之图表可视化:python语言中可视化工具包的简介.安装.使用方法.经典案例之详细攻略 目录 python语言中可视化工具包的简介 python语言中可视化工具包的安装 pytho ...

  9. python语言基础实验_实验二Python语言基础函数包练习.doc

    实验二Python语言基础函数包练习 实验 Python语言基础函数包练习:1208 学号: 实验目的 1.Python语言包,如math.NumPySciPy和Matplotlib等函数包的使用实验 ...

  10. matlab数值模拟的例子,第12章 MATLAB 数值模拟实例解析课件

    第12章 MATLAB 数值模拟实例解析课件 采用比母材金属熔点低的金属材料作钎料,将焊件和钎料加热到高于钎料熔点.低于母材溶化温度,利用液态钎料润湿母材 采用比母材金属熔点低的金属材料作钎料,将焊件 ...

最新文章

  1. 获取java hashCode分布
  2. python ~ not 的区别 :前者按位取反,后者是逻辑‘与或非’的‘非’
  3. 在wine里安装了IE6
  4. 字符串处理 —— 最大最小表示法
  5. 台式计算机 评标细则,附:认证评分项目及评分细则
  6. PHP underlying structure
  7. 判断当前用户有无Administrator的权限
  8. 性能测试指标(重要)
  9. 查找css,查找CSS样式
  10. html设置360浏览器兼容,360浏览器不兼容CSS的解决方法
  11. WebEx 播放器下载
  12. 转载:技术文化和惨淡命运 —— 怀念中国雅虎
  13. Linux 查看日志命令
  14. jQuery中的Sizzle引擎分析
  15. matlab的subplot--子图位置大小随心所欲
  16. Thinkphp中的assign() 和 display()
  17. Hide column
  18. vue中mapGetters函数前面的三个点是什么意思?
  19. 原生Android手机管家,谁说安卓一定卡,诺基亚 X7 原生安卓自备手机管家一键优化告别卡顿...
  20. 天道酬勤——在追逐梦想的路上

热门文章

  1. Python多线程实例
  2. CGAL DEMO 演示
  3. c语言例题22:日期计算
  4. CPLEX-求解VRPTW模型
  5. pymysql封装总结
  6. c语言课程设计错误总结,C语言课程设计总结总结经验
  7. JavaScript高级程序设计4.pdf
  8. 计算机的管理员关机命令,电脑定时自动关机命令怎么使用?
  9. 课程设计—通讯录管理系统
  10. 【C++程序设计实践】实验十一