[Python程序设计基础(第2版)][李东方 (10)[19页]
- 格式:pptx
- 大小:1.24 MB
- 文档页数:19
Python语言程序设计基础(第2版)全答案(Ver. 2.0,2018年5月)嵩天礼欣黄天羽著(本文档由该书原作者提供,有任何修改意见请反馈:黄天羽huangtianyu@。
)目录目录 (2)第1章程序设计基本方法 (5)1.1 计算机的概念 (5)1.2 程序设计语言 (5)1.3 Python语言概述 (5)1.4 Python语言开发环境配置 (5)1.5 程序的基本编写方法 (6)1.6 Python语言的版本更迭 (6)程序练习题 (6)第2章Python程序实例解析 (7)2.1 实例1:温度转换 (7)2.2 Python程序语法元素分析 (7)2.3 实例2:Python蟒蛇绘制 (8)2.4 turtle库语法元素分析 (8)程序练习题 (9)第3章基本数据类型 (15)3.1 数字类型 (15)3.2 数字类型的操作 (15)3.3 模块1:math库的使用 (15)3.4 实例3:天天向上的力量 (16)3.5 字符串类型及其操作 (17)3.6 字符串类型的格式化 (17)3.7 实例4:文本进度条 (17)程序练习题 (18)第4章程序的控制结构 (21)4.1 程序的基本结构 (21)4.2 程序的分支结构 (21)4.3 实例5:身体质量指数BMI (21)4.4 程序的循环结构 (21)4.5 模块2:random库的使用 (22)4.6 实例6:π的计算 (22)4.7 程序的异常处理 (22)程序练习题 (23)第5章函数和代码复用 (28)5.1 函数的基本使用 (28)5.2 函数的参数传递 (28)5.3 模块3:datetime库的使用 (28)5.4 实例7:七段数码管绘制 (29)5.5 代码复用和模块化设计 (29)5.6 函数的递归 (29)5.7 实例8:科赫曲线绘制 (29)5.8 Python内置函数 (30)程序练习题 (30)第6章组合数据类型 (37)6.1 组合数据类型概述 (37)6.2 列表类型和操作 (37)6.3 实例9:基本统计值计算 (37)6.4 字典类型和操作 (38)6.5 模块4:jieba库的使用 (38)6.6 实例10:文本词频统计 (39)6.7 实例11:Python之禅 (39)程序练习题 (39)第7章文件和数据格式化 (44)7.1 文件的使用 (44)7.2 模块5:PIL库的使用 (44)7.3 实例12:图像的字符画绘制 (44)7.4 一二维数据的格式化和处理 (45)7.5 实例13:CSV格式的HTML展示 (45)7.6 高维数据的格式化 (45)7.7 模块6:json库的使用 (45)7.8 实例14:CSV和JSON格式相互转换 (46)程序练习题 (46)第8章程序设计方法论 (55)8.1 计算思维 (55)8.2 实例15:体育竞技分析 (55)8.3 自顶向下和自顶向上 (55)8.4 模块7:pyinstaller库的使用 (55)8.5 计算生态和模块编程 (56)8.6 Python第三方库的安装 (56)8.7 实例16:pip安装脚本 (56)程序练习题 (56)第9章科学计算和可视化 (66)9.1 问题概述 (66)9.2 模块8:numpy库的使用 (66)9.3 实例17:图像的手绘效果 (66)9.4 模块9:matplotlib库的使用 (66)9.5 实例18:科学坐标图绘制 (67)9.6 实例19:多级雷达图绘制 (67)程序练习题 (67)第10章网络爬虫和自动化 (70)10.1 问题概述 (70)10.2 模块10:requests库的使用 (70)10.3 模块11:beautifulsoup4库的使用 (70)10.4 实例20:中国大学排名爬虫 (70)程序练习题 (71)第1章程序设计基本方法1.1 计算机的概念[1.1]: 计算机是根据指令操作数据的设备,它的两个显著特点是功能性和可编程性。
Python程序设计与算法基础教程(第⼆版)微课版第三章上机实践答案Python程序设计与算法基础教程(第⼆版)微课版第三章上机实践答案2.Sum =0for i in range(1,101):Sum += iprint("1+2+3+...+100 = ", Sum)3.Sum =0for i in range(10,0,-1):Sum += iprint("10+9+8+...+1 = ", Sum)4.Sum =0for i in range(1,100,2):Sum += iprint("1+3+5+7+...+99 = ", Sum)5.Sum =0for i in range(2,101,2):Sum += iprint("2+4+6+8+...+100 = ", Sum)6.n =0for i in range(2000,3001):if((i %4==0and i %100!=0)or(i %400==0)):print(i, end =' ')n +=1if(n %10==0):print()7.i =1S =0for n in range(1,100):if(n %2!=0):if(i %2==0):n =-(i *2-1)else:n =( i *2-1)i +=1S += nprint("1-3+5-7+9-11+... = ", S)8.S =0for i in range(1,101):n =1.0/ iS += nprint(str.format("1+1/2+1/3+... = {0: .2f}", S))9.打印上三⾓九九乘法表:for a in range(1,10):for b in range(1, a+1):print(str.format("{0:2} * {1:2} = {2:>2}", a, b, a*b), end =' ')print()打印矩形块九九乘法表:for a in range(1,10):for b in range(1,10):print(str.format("{0:>2} * {1:1} = {2:>2}", a, b, a*b), end =' ')print()打印下三⾓九九乘法表:for a in range(1,10):for b in range(1,10):if(b < a):print(end =' ')else:print(str.format("{0:2} * {1:1} = {2:>2}", a, b, a*b), end =' ')print()10.import matha =float(input("请输⼊三⾓形的边a :"))b =float(input("请输⼊三⾓形的边b :"))c =float(input("请输⼊三⾓形的边c :"))if(a >0and b >0and c >0and a + b > c and a + c > b and b + c > a):h =1/2*(a+b+c)print(str.format("三⾓形的三条边分别为:a = {0} b = {1} c = {2}", a, b, c))print(str.format("三⾓形的周长 = {0} ⾯积 = {1}", a+b+c, math.sqrt(h *(h-a)*(h-b)*(h-c)))) else:print("⽆法构成三⾓形!")11.⽅法⼀(单分⽀语句):import mathx =float(input("请输⼊x:"))print("⽅法⼀(单分⽀语句):")if(x >=0):y =(x**2-3*x)/(x +1)+2*math.pi + math.sin(x)if(x <0):y = math.log(-5*x)+6* math.sqrt(abs(x)+pow(math.e,4))-pow((x +1),3)print(str.format("x = {0}, y = {1}", x, y))⽅法⼆(双分⽀结构):import mathx =float(input("请输⼊x:"))if(x >=0):y =(x**2-3*x)/(x +1)+2*math.pi + math.sin(x)else:y = math.log(-5*x)+6* math.sqrt(abs(x)+pow(math.e,4))-pow((x +1),3)print(str.format("x = {0}, y = {1}", x, y))⽅法三(条件运算语句):x =float(input("请输⼊x:"))y =(x**2-3*x)/(x +1)+2*math.pi + math.sin(x)if(x >=0) \else math.log(-5*x)+6* math.sqrt(abs(x)+pow(math.e,4))-pow((x +1),3)print(str.format("x = {0}, y = {1}", x, y))12.import matha =float(input("请输⼊系数a : "))b =float(input("请输⼊系数b : "))c =float(input("请输⼊系数c : "))delt = b**2-4*a*cif(a ==0and b ==0):print("此⽅程⽆解!")elif(a ==0and b !=0):print(str.format("此⽅程的解为:{0: .1f}",-c / b))elif(b**2-4*a*c ==0):print(str.format("此⽅程有两个相等虚根:{0:.1f}",-b /(2*a)))elif(delt >0):print(str.format("此⽅程有两个不等虚根: {0:.1f} 和 {1:.1f}",(-b + math.sqrt(delt))/(2*a),(-b - math.sqrt(delt))/(2*a)))else:#注意根号⾥不是b²-4ac,所以根号⾥加负号print("此⽅程有两个共轭复根: {0} 和 {1}".format(complex(-b /(2*a), math.sqrt(-delt)/(2*a)),complex(-b /(2*a),-math.sqrt(-delt)/(2*a)))) 13.⽅法⼀(for循环):n =int(input("请输⼊⾮负整数n:"))while(n <0):n =int(input("请输⼊⾮负整数n:"))S =1if(n ==0):print("0! = 1")if(n >0):for i in range(n,0,-1):S *= iprint(str.format("{0}! = {1}", n, S))⽅法⼆(while循环):n =int(input("请输⼊⾮负整数n:"))while(n <0):n =int(input("请输⼊⾮负整数n:"))S =1if(n ==0):print("0! = 1")if(n >0):m = nwhile(m !=0):S *= mm -=1print(str.format("{0}! = {1}", n, S))14.a = random.randint(0,100)b = random.randint(0,100)S = a*bprint(str.format("整数1 = {0},整数2 = {1}", a, b))if(a < b):a, b = b, awhile(a%b !=0):a,b = b,a%bprint("最⼤公约数 = {0},最⼩公倍数 = {1}".format(b, S/b))满怀希望就会所向披靡。
Python程序设计基础习题答案与分析程昱第1章基础知识1.1简单说明如何选择正确的Python版本。
答:在选择Python的时候,一定要先考虑清楚自己学习Python的目的是什么,打算做哪方面的开发,有哪些扩展库可用,这些扩展库最高支持哪个版本的Python,是Python2.x还是Python3.x,最高支持到Python2.7.6还是Python2.7.9。
这些问题都确定以后,再做出自己的选择,这样才能事半功倍,而不至于把大量时间浪费在Python的反复安装和卸载上。
同时还应该注意,当更新的Python版本推出之后,不要急于更新,而是应该等确定自己所必须使用的扩展库也推出了较新版本之后再进行更新。
尽管如此,Python3毕竟是大势所趋,如果您暂时还没想到要做什么行业领域的应用开发,或者仅仅是为了尝试一种新的、好玩的语言,那么请毫不犹豫地选择Python3.x系列的最高版本(目前是Python3.4.3)。
1.2为什么说Python采用的是基于值的内存管理模式?Python采用的是基于值的内存管理方式,如果为不同变量赋值相同值,则在内存中只有一份该值,多个变量指向同一块内存地址,例如下面的代码。
>>>x=3>>>id(x)10417624>>>y=3>>>id(y)10417624>>>y=5>>>id(y)10417600>>>id(x)10417624>>>x=[1,2,3,1,1,2]>>>id(x[0])==id(x[3])==id(x[4])True1.3解释Python中的运算符“/”和“//”的区别。
答:在Python2.x中,“/”为普通除法,当两个数值对象进行除法运算时,最终结果的精度与操作数中精度最高的一致;在Python3.x中,“/”为真除法,与除法的数学含义一致。
《P y t h o n程序设计基础》习题答案与分析(总16页)--本页仅作为文档封面,使用时请直接删除即可----内页可以根据需求调整合适字体及大小--Python程序设计基础习题答案与分析程昱第1章基础知识简单说明如何选择正确的Python版本。
答:在选择Python的时候,一定要先考虑清楚自己学习Python的目的是什么,打算做哪方面的开发,有哪些扩展库可用,这些扩展库最高支持哪个版本的Python,是Python 还是Python ,最高支持到Python 还是Python 。
这些问题都确定以后,再做出自己的选择,这样才能事半功倍,而不至于把大量时间浪费在Python的反复安装和卸载上。
同时还应该注意,当更新的Python版本推出之后,不要急于更新,而是应该等确定自己所必须使用的扩展库也推出了较新版本之后再进行更新。
尽管如此,Python 3毕竟是大势所趋,如果您暂时还没想到要做什么行业领域的应用开发,或者仅仅是为了尝试一种新的、好玩的语言,那么请毫不犹豫地选择Python 系列的最高版本(目前是Python )。
为什么说Python采用的是基于值的内存管理模式Python采用的是基于值的内存管理方式,如果为不同变量赋值相同值,则在内存中只有一份该值,多个变量指向同一块内存地址,例如下面的代码。
>>> x = 3>>> id(x)>>> y = 3>>> id(y)>>> y = 5>>> id(y)>>> id(x)>>> x = [1, 2, 3, 1, 1, 2]>>> id(x[0])==id(x[3])==id(x[4])True解释Python中的运算符“/”和“ else:print(x)except BaseException:print('You must input an integer.')2)Python 代码:import typesx = input('Please input an integer of more than 3 digits:') if type(x) != :print 'You must input an integer.'elif len(str(x)) != 4:print 'You must input an integer of more than 3 digits.' else:print x......(map(str,result)))2)Python 代码x = input('Please input an integer less than 1000:')t = xi = 2result = []while True:if t==1:breakif t%i==0:(i)t = t/ielse:i+=1print x,'=','*'.join(map(str,result))编写程序,至少使用2种不同的方法计算100以内所有奇数的和。
Python语⾔程序设计基础(第2版)第四章课后习题答案程序练习题4.1猜数游戏代码如下(加⼊了异常捕获):import randomnum = random.randint(1,9)counts =1try:guess_num =eval(input('请输⼊1-9之内的整数:'))while guess_num != num:if guess_num > num:print('遗憾,太⼤了')elif guess_num < num:print('遗憾,太⼩了')counts +=1guess_num =eval(input('请继续输⼊数字:'))print('预测{}次,你猜中了!'.format(counts))except NameError:print('请输⼊数字!')运⾏结果如下:请输⼊1-9之内的整数:a请输⼊数字!>>>请输⼊1-9之内的整数:8遗憾,太⼩了请继续输⼊数字:9预测2次,你猜中了!4.2 统计不同字符的个数代码如下:#统计字符.pya,b,c,d,e =0,0,0,0,0Str =input()for item in Str:if0x4e00<=ord(item)<0x9fa6:a +=1elif ord('0')<=ord(item)<=ord('9'):b +=1elif ord('a')<=ord(item)<=ord('z')or ord('A')<=ord(item)<=ord('Z'):c +=1elif ord(' ')==ord(item):d +=1else:e +=1print('中⽂字符有{}个,数字字符有{}个,英⽂字符有{}个,空格字符有{}个,其他字符有{}个。
#Python程序语⾔设计基础(第⼆版)程序练习题Python程序语⾔设计基础(第⼆版)程序练习题3.1 重量计算,⽉球上物体的体重是在地球上的16.5%,假如你在地球上每年增长0.5kg,编写程序输出未来10年你在地球和⽉球上的体重状况。
current_weight = float(input('当前体重kg:'))for i in range(1,11):current_weight += 0.5moon_weight = current_weight*16.5/100print('第{:d}年,地球体重{:.2f}kg,⽉球体重{:.2f}kg'.format(i,current_weight,moon_weight))运⾏结果:当前体重kg:50第1年,地球体重50.50kg,⽉球体重8.33kg第2年,地球体重51.00kg,⽉球体重8.41kg第3年,地球体重51.50kg,⽉球体重8.50kg第4年,地球体重52.00kg,⽉球体重8.58kg第5年,地球体重52.50kg,⽉球体重8.66kg第6年,地球体重53.00kg,⽉球体重8.74kg第7年,地球体重53.50kg,⽉球体重8.83kg第8年,地球体重54.00kg,⽉球体重8.91kg第9年,地球体重54.50kg,⽉球体重8.99kg第10年,地球体重55.00kg,⽉球体重9.07kg3.2 天天向上续。
尽管每天坚持,但⼈的能⼒发展并不是⽆限的,它符合特定模型。
假设能⼒增长符合如下带有平台期的模型:以7天为周期,连续学习3天能⼒值不变,从第四天开始⾄第七天每天能⼒增长为前⼀天的1%。
如果7天中有1天间断学习则周期从头计算。
请编写程序回答,如果初始能⼒值为1,连续学习365天后能⼒值是多少?initial_value = 1for i in range(365):if i%7 in [4,5,6,0]:initial_value = initial_value*(1+0.01)print('{:.5f}'.format(initial_value))运⾏结果:8.00142天天向上续。
Python程序设计基础习题答案与分析程昱第1章基础知识1.1 简单说明如何选择正确的P ytho n版本。
答:在选择Pyt hon的时候,一定要先考虑清楚自己学习Pyth on的目的是什么,打算做哪方面的开发,有哪些扩展库可用,这些扩展库最高支持哪个版本的Py thon,是Pytho n 2.x还是Pyt hon 3.x,最高支持到P y thon 2.7.6还是Pyt hon 2.7.9。
这些问题都确定以后,再做出自己的选择,这样才能事半功倍,而不至于把大量时间浪费在Pyth on的反复安装和卸载上。
同时还应该注意,当更新的Py thon版本推出之后,不要急于更新,而是应该等确定自己所必须使用的扩展库也推出了较新版本之后再进行更新。
尽管如此,Python 3毕竟是大势所趋,如果您暂时还没想到要做什么行业领域的应用开发,或者仅仅是为了尝试一种新的、好玩的语言,那么请毫不犹豫地选择P y thon 3.x系列的最高版本(目前是Pyt hon 3.4.3)。
1.2 为什么说Py thon采用的是基于值的内存管理模式?Python采用的是基于值的内存管理方式,如果为不同变量赋值相同值,则在内存中只有一份该值,多个变量指向同一块内存地址,例如下面的代码。
>>> x = 3>>> id(x)10417624>>> y = 3>>> id(y)10417624>>> y = 5>>> id(y)10417600>>> id(x)10417624>>> x = [1, 2, 3, 1, 1, 2]>>> id(x[0])==id(x[3])==id(x[4])True1.3 解释Pyth o n中的运算符“/”和“//”的区别。
《Python程序设计基础》教学大纲院(系、部):教研室:日期:2018年3月20日目录一、课程简介 (1)二、教学目的和要求 (1)三、教学中应注意的问题 (1)四、教学内容 (2)五、教学课时分配 (9)六、教材与参考书目 (10)一、课程简介课程名称:Python程序设计基础课程编号:课程性质:必修适用专业:非计算机专业前导课程:无考核方式:考试建议学时:48+16二、教学目的和要求通过本课程的学习,使得学生能够理解Python的编程模式,熟练运用Python 列表、元组、字典、集合等基本数据类型以及相关列表推导式、切片等特性来解决实际问题,熟练掌握Python分支结构、循环结构、函数设计以及类的设计与使用,熟练使用正则表达式处理字符串,熟练使用Python读写文本文件与二进制文件,了解Python程序的调试方法,熟练运用Python编写面向对象程序,掌握使用Python操作SQLite数据库的方法,掌握Python+pandas进行数据处理的基本用法,掌握使用Python+matplotlib进行数据可视化的用法,同时还应培养学生的代码优化与安全编程意识。
三、教学中应注意的问题Python编程模式中非常重要的一条是代码简单化、问题简单化,同时应保证代码具有较强的可读性。
在教学过程中,尽量避免在Python程序中带有其他编程语言的痕迹,要尽量从最简单的角度去思考和解决问题、实现自己的想法和思路,尽量多使用Python内置函数、标准库对象和合适的扩展库对象,保证代码的优雅、简洁,让代码更加Pythonic。
使用Python编程解决问题应充分借鉴和使用成熟的标准库和扩展库,尽量避免自主编写完整的业务逻辑,部分具体操作完全可以使用扩展库来实现,大幅度提高开发效率。
例如:如果需要进行排序则直接使用内置函数或方法进行排序,切不可再使用选择法排序、冒泡法排序或堆排序等排序算法来编写代码实现;计算最大公约数应习惯于使用math标准库的gcd()函数;对数据进行随机乱序应使用random标准库中的shuffle()函数;从给定数据集中随机选择元素应使用random标准库中的choice()函数;等等。
Python 基础学习笔记基于《 Python 语言程序设计基础(第 2 版)》第一部分初识 Python 语言第 1 章程序设计基本方法1.1 计算机的概念计算机是根据指令操作数据的设备,具备功能性和可编程性两个基本特性。
计算机技术发展阶段:1.第一阶段: 1946-1981 年,“计算机系统结构阶段”。
2.第二阶段: 1982-2007 年,“计算机网络和视窗阶段”。
3.第三阶段: 2008 年至今,“复杂信息系统阶段”。
4.第四阶段:月 20 年后某个时期开始,“人工智能阶段”。
1.2 程序设计语言1.2.1 程序设计语言概述机器语言:直接使用二进制代码表达指令,可被计算机硬件直接识别和执行。
不同计算机结构的机器指令不同。
汇编语言:使用助记符对应机器语言中的指令,可直接操作计算机硬件。
不同计算机结构的汇编指令不同。
机器语言和汇编语言都直接操作计算机硬件并基于此设计,统称“低级语言”。
高级语言:用更接近自然语言的方式描述计算问题。
代码只与编程语言有关,与计算机结构无关。
1.2.2 编译和解释高级语言按执行方式可分为采用编译执行的静态语言和采用解释执行的脚本语言。
编译是将源代码转换成目标代码的过程。
解释是将源代码逐条转换成目标代码同时逐条运行目标代码的过程。
1.2.3 计算机编程我学习 Python 的原因:1.通过编程实现自动化,提高效率。
2.通过编程了解一个新的广阔世界。
学习一门编程语言(重点在于练习)1.掌握该语言的语法2.结合问题设计程序结构3.掌握解决问题的能力1.3Python 语言概述1.3.1 Python 语言的发展Python 语言是一个语法简洁、跨平台、可扩展的开源通用脚本语言。
Python 语言诞生于 1990 年,创世人为 Guido 。
2000 年 10 月, Python 2.0 正式发布, 2010 年, Python 2.x 系列发布最后一版(2.7 )。
2008 年 12 月, Python 3.0 正式发布,解释器内部采用完全面向对象的方式实现,代价是 3.x 系列版本无法向下兼容 2.x 系列的既有语法。