Python语言程序设计 课后练习 第 周
- 格式:pdf
- 大小:334.71 KB
- 文档页数:8
《Python程序设计》习题与参考答案第1章基础知识1、1 简单说明如何选择正确的Python版本。
答:在选择Python的时候,一定要先考虑清楚自己学习Python的目的就是什么,打算做哪方面的开发,有哪些扩展库可用,这些扩展库最高支持哪个版本的Python,就是Python 2、x还就是Python 3、x,最高支持到Python 2、7、6还就是Python 2、7、9。
这些问题都确定以后,再做出自己的选择,这样才能事半功倍,而不至于把大量时间浪费在Python的反复安装与卸载上。
同时还应该注意,当更新的Python版本推出之后,不要急于更新,而就是应该等确定自己所必须使用的扩展库也推出了较新版本之后再进行更新。
尽管如此,Python 3毕竟就是大势所趋,如果您暂时还没想到要做什么行业领域的应用开发,或者仅仅就是为了尝试一种新的、好玩的语言,那么请毫不犹豫地选择Python 3、x系列的最高版本(目前就是Python 3、4、3)。
1、2 为什么说Python采用的就是基于值的内存管理模式?答:Python采用的就是基于值的内存管理方式,如果为不同变量赋值相同值,则在内存中只有一份该值,多个变量指向同一块内存地址,例如下面的代码。
>>> x = 3>>> id(x)>>> y = 3>>> id(y)>>> y = 5>>> id(y)>>> id(x)1、3 在Python中导入模块中的对象有哪几种方式?答:常用的有三种方式,分别为import 模块名[as 别名]●from 模块名import 对象名[ as 别名]●from math import *1、4 使用pip命令安装numpy、scipy模块。
答:在命令提示符环境下执行下面的命令:pip install numpypip install scipy1、5 编写程序,用户输入一个三位以上的整数,输出其百位以上的数字。
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]: 计算机是根据指令操作数据的设备,它的两个显著特点是功能性和可编程性。
项目1 感受Python精彩世界一、判断题1.Python是一种跨平台、免费开源、面向对象的静态编程语言。
()2.在Windows系统上编写的Python程序能够在Linux系统上运行。
()3.Python 3.x可以完全兼容Python 2.x。
()4.Python源程序文件的扩展名为.py。
()二、选择题1.Python之父是()(A)吉多·范罗苏姆(B)布兰登·艾奇(C)丹尼斯·里奇(D)詹姆斯·高斯林2.Python语言可以在哪些操作系统上执行?()(A)Windows (B)Linux(C)Mac OS X (D)以上都可以3.下列哪些不是Python语言的特点?()(A)免费开源(B)可解释性(C)面向过程(D)可嵌入性4.Python官方安装包自带的小型集成开发环境是()(A)Anaconda (B)PyCharm(C)IDLE (D)Sublime5.Python的主要应用领域不包括()(A)人工智能(B)操作系统开发(C)网络爬虫(D)金融量化分析6.关于Python程序注释描述错误的是()(A)Python编程语言的单行注释常以“//”开头(B)Python编程语言的单行注释常以“#”开头(C)Python编程语言的多行注释常以“'''”开头和结尾(D)Python编程语言的注释包括单行注释和多行注释三、编程题1. 编写一个Python程序,输出“我爱Python!”。
2. 编写一个Python程序,第一行输出“Hello World!”,换行输出“Hi, everyone!”。
项目2 编写简单的Python程序一、判断题1.表达式(3.6%2)符合Python 语言语法。
()2.在Python 程序中,用False 表示逻辑值“假”。
()3.0o8 是正确的八进制整型常量。
()4.设变量定义为a=b=c=5;则变量a,b,c 的值都是5。
python语言程序设计第二版课后答案1、RJ插头是铜缆布线中的(),它和插座(RJ模块)共同组成一个完整的连接器单元。
[单选题] *A中继器BCP集合点C标准连接器(正确答案)D屏蔽器2、98.计算机病毒()。
[单选题] *A.不会对计算机操作人员造成身体损害(正确答案)B.会导致所有计算机操作人员感染致病C.会导致部分计算机操作人员感染致病D.会导致部分计算机操作人员感染病毒,但不会致病3、23.第二代电子计算机的主要元件是()。
[单选题] *A.继电器B.晶体管(正确答案)C.电子管D.集成电路4、DNS 是用来解析下列各项中的哪一项?()易[单选题] *A. IP 地址和MAC 地址B. 主机名和IP 地址(正确答案)C. TCP 名字和地址D. 主机名和传输层地址5、开机检测不到硬盘,可能的原因有()[单选题] *A.硬盘未加电(正确答案)B.硬盘未分区C.硬盘上无系统D.以上都是6、在OSI 七层结构模型中,处于数据链路层与运输层之间的是()。
易[单选题] *A. 物理层B. 网络层(正确答案)C. 会话层D. 表示层7、73.以.jpg为扩展名的文件通常是()[单选题] *A.文本文件B.音频信号文件C.图像文件(正确答案)D.视频信号文件8、目前在“打印预览”状态,如果要打印文档,则()[单选题] *A. 必须退出打印预览状态才能进行打印B. 从预览状态不能进行打印C. 可直接从预览状态执行打印(正确答案)9、为了避免在编辑操作过程中突然掉电造成数据丢失,应()。
[单选题] *A. 在新建文档时即保存文档B. 在打开文档时即做存盘操作C. 在编辑时每隔一段时间做一次存盘操作(正确答案)10、一张网卡有()MAC地址。
[单选题] *A一个(正确答案)B两个C三个D四个11、TCP 协议使用()次握手机制建立连接。
易[单选题] *A.B.C. (正确答案)D.12、世界上第一台电子计算机的名字是()。
习题1一、选择题1.Python语言属于()。
CA.机器语言B.汇编语言C.高级语言D.科学计算语言2.下列选项中,不属于Python特点的是()。
BA.面向对象B.运行效率高C.可读性好D.开源3.Python程序文件的扩展名是()。
DA..python B..pyt C..pt D..py4.以下叙述中正确的是()。
CA.Python3.x与Python2.x兼容B.Python语句只能以程序方式执行C.Python是解释型语言D.Python语言出现得晚,具有其他高级语言的一切优点5.下列选项中合法的标识符是()。
AA._7a_b B.break C._a$b D.7ab 6.下列标识符中合法的是()。
BA.i'm B._C.3Q D.for 7.Python不支持的数据类型有()。
AA.char B.int C.float D.list8.关于Python中的复数,下列说法错误的是()。
BA.表示复数的语法形式是a+bj B.实部和虚部都必须是浮点数C.虚部必须加后缀j,且必须是小写D.函数abs()可以求复数的模9.函数type(1+0xf*3.14)的返回结果是()。
DA.<class'int'>B.<class'long'>C.<class'str'>D.<class'float'>10.字符串s='a\nb\tc',则len(s)的值是()。
CA.7B.6C.5D.411.Python语句print(0xA+0xB)的输出结果是()。
DA.0xA+0xB B.A+BC.0xA0xB D.2112.下列属于math库中的数学函数的是()。
CA.time()B.round()C.sqrt()D.random() 13.Python表达式中,可以使用()控制运算的优先顺序。
《Python步调安排》习题与参照问案之阳早格格创做第1章前提知识1.1 简朴证明怎么样采用精确的Python版本.问:正在采用Python的时间,一定要先思量收会自己教习Python的手段是什么,挨算搞哪圆里的启垦,有哪些扩展库可用,那些扩展库最下支援哪个版本的Python,是Python 2.x仍旧Python 3.x,最下支援到Python 2.7.6仍旧Python 2.7.9.那些问题皆决定以去,再搞出自己的采用,那样才搞事半功倍,而不至于把洪量时间浪费正在Python的反复拆置战卸载上.共时还该当注意,当革新的Python版本推出之后,不要慢于革新,而是该当等决定自己所必须使用的扩展库也推出了较新版本之后再举止革新.纵然如许,Python 3到底是局势所趋,如果您姑且还出料到要搞什么止业范围的应用启垦,大概者只是是为了测验考查一种新的、佳玩的谈话,那么请当机立断天采用Python 3.x系列的最下版本(姑且是Python 3.4.3).1.2 为什么道Python采与的是鉴于值的内存管制模式?问:Python采与的是鉴于值的内存管制办法,如果为分歧变量赋值相共值,则正在内存中惟有一份该值,多个变量指背共一齐内存天面,比圆底下的代码.>>> x = 3>>> id(x)10417624>>> y = 3>>> id(y)10417624>>> y = 5>>> id(y)10417600>>> id(x)104176241.3 正在Python中导进模块中的对付象有哪几种办法?问:时常使用的有三种办法,分别为●import 模块名 [as 别号]●from 模块名 import 对付象名[ as 别号]●from math import *1.4 使用pip下令拆置numpy、scipy模块.问:正在下令提示符环境下真止底下的下令:pip install numpypip install scipy1.5 编写步调,用户输进一个三位以上的整数,输出其百位以上的数字.比圆用户输进1234,则步调输出12.(提示:使用整除运算.)问:1)Python 3.4.2代码:x = input('Please input an integer of more than 3 digits:')try:x = int(x)x = x//100if x == 0:print('You must input an integer of more than 3 digits.')else:print(x)except BaseException:print('You must input an integer.')2)Python 2.7.8代码:import typesx = input('Please input an integer of more than 3 digits:')if type(x) != types.IntType: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//100第2章 Python数据结构2.1 为什么应尽管从列表的尾部举止元素的减少与简略支配?问:当列表减少大概简略元素时,列表对付象自动举止内存扩展大概中断,进而包管元素之间不漏洞,但是那波及到列表元素的移动,效用较矮,应尽管从列表尾部举止元素的减少与简略支配以普及处理速度.2.2 编写步调,死成包罗1000个0到100之间的随机整数,并统计每个元素的出现次数.(提示:使用集中.)问:import randomx = [random.randint(0,100) for i in range(1000)]d = set(x)for v in d:print(v, ':', x.count(v))import randomx = [random.randint(0,100) for i in range(1000)]d = set(x)for v in d:print v, ':', x.count(v)2.3 编写步调,用户输进一个列表战2个整数动做下标,而后输出列表中介于2个下标之间的元素组成的子列表.比圆用户输进[1,2,3,4,5,6]战2,5,步调输出[3,4,5,6].问:x = input('Please input a list:')x = eval(x)start, end = eval(input('Please input the start position and the end position:')) print(x[start:end])x = input('Please input a list:')start, end = input('Please input the start position and the end position:')print x[start:end]2.4 安排一个字典,并编写步调,用户输进真质动做键,而后输出字典中对付应的值,如果用户输进的键不存留,则输出“您输进的键不存留!”问:d = {1:'a', 2:'b', 3:'c', 4:'d'}v = input('Please input a key:')v = eval(v)print(d.get(v,'您输进的的键不存留'))d = {1:'a', 2:'b', 3:'c', 4:'d'}v = input('Please input a key:')print(d.get(v,'您输进的的键不存留'))2.5 编写步调,死成包罗20个随机数的列表,而后将前10个元素降序排列,后10个元素落序排列,并输出截止.问:import randomx = [random.randint(0,100) for i in range(20)]print(x)y = x[0:10]y.sort()x[0:10] = yy = x[10:20]y.sort(reverse=True)x[10:20] = yprint(x)import randomx = [random.randint(0,100) for i in range(20)]print xy = x[0:10]y.sort()x[0:10] = yy = x[10:20]y.sort(reverse=True)x[10:20] = yprint x2.6 正在Python中,字典战集中皆是用一对付大括号动做定界符,字典的每个元素有二部分组成,即键战值,其中键不允许沉复.2.7 假设有列表a = ['name','age','sex']战b = ['Dong',38,'Male'],请使用一个语句将那二个列表的真质变换为字典,而且以列表a中的元素为键,以列表b中的元素为值,那个语句不妨写为 c = dict(zip(a,b)).2.8 假设有一个列表a,现央供从列表a中每3个元素与1个,而且将与到的元素组成新的列表b,不妨使用语句 b = a[::3].2.9 使用列表推导式死成包罗10个数字5的列表,语句不妨写为[5 for i in range(10)].2.10 不不妨(不妨、不不妨)使用del下令去简略元组中的部分元素.第3章采用结构与循环结构3.1 收会逻辑运算符“or”的短路供值个性.问:假设有表白式“表白式1 or 表白式2”,如果表白式1的值等价于True,那么无论表白式2的值是什么,所有表白式的值经常等价于True.果此,不需要再估计表白式2的值.3.2 编写步调,运止后用户输进4位整数动做年份,推断其是可为闰年.如果年份能被400整除,则为闰年;如果年份能被4整除但是不克不迭被100整除也为闰年.问:x = input('Please input an integer of 4 digits meaning the year:')x = eval(x)if x%400==0 or (x%4==0 and not x%100==0):print('Yes')else:print('No')x = input('Please input an integer of 4 digits meaning the year:')if x%400==0 or (x%4==0 and not x%100==0):print 'Yes'else:print 'No'3.3 编写步调,死成一个包罗50个随机整数的列表,而后简略其中所有奇数.(提示:从后背前删.)问:import randomx = [random.randint(0,100) for i in range(50)]print(x)i = len(x)-1while i>=0:if x[i]%2==1:del x[i]i-=1print(x)把上头的代码中第三止战末尾一止改为print x即可.34 编写步调,死成一个包罗20个随机整数的列表,而后对付其中奇数下目标元素举止落序排列,奇数下目标元素稳定.(提示:使用切片.)问:import randomx = [random.randint(0,100) for i in range(20)]print(x)y = x[::2]y.sort(reverse=True)x[::2] = yprint(x)把上头的代码中第三止战末尾一止改为print x即可.35 编写步调,用户从键盘输进小于1000的整数,对付其举止果式收会.比圆,10=2×5,60=2×2×3×5.问:x = input('Please input an integer less than 1000:')x = eval('x')t = xi = 2result = []while True:if t==1:breakif t%i==0:result.append(i)t = t/ielse:i+=1Print x,'=','*'.join(map(str,result))x = input('Please input an integer less than 1000:')t = xi = 2result = []while True:if t==1:breakif t%i==0:result.append(i)t = t/ielse:i+=1print x,'=','*'.join(map(str,result))3.6 编写步调,起码使用2种分歧的要收估计100以内所有奇数的战.问:Python 3.4.2代码如下,如果使用Python 2.7.8只需要把其中的print()函数改为print语句即可.x = [i for i in range(1,100) if i%2==1]print(sum(x))print(sum(range(1,100)[::2]))3.7 编写步调,真止分段函数估计,如下表所示.问:Python 3.4.2代码如下,如果使用Python 2.7.8只需要把其中的print()函数改为print语句即可.x = input('Please input x:')x = eval(x)if x<0 or x>=20:print(0)elif 0<=x<5:print(x)elif 5<=x<10:print(3*x-5)elif 10<=x<20:print(0.5*x-2)第4章字符串与正则表白式4.1 假设有一段英文,其中有单独的字母“I”误写为“i”,请编写步调举止纠正.问:那里给出Python 3.4.2代码,如果使用Python 2.7.8的话只需要建改其中的print()函数为print语句即可.1)不使用正则表白式x = "i am a teacher,i am man, and i am 38 years old.I am not a businessman." x = x.WordStr('i ','I ')x = x.WordStr(' i ',' I ')print(x)2)使用正则表白式x = "i am a teacher,i am man, and i am 38 years old.I am not a businessman." import repattern = pile(r'(?:[^\w]|\b)i(?:[^\w])')while True:result = pattern.search(x)if result:if result.start(0) != 0:x = x[:result.start(0)+1]+'I'+x[result.end(0)-1:]else:x = x[:result.start(0)]+'I'+x[result.end(0)-1:]else:breakprint(x)4.2 假设有一段英文,其中有单词汇中间的字母“i”误写为“I”,请编写步调举止纠正.问:那里给出Python 3.4.2代码,如果使用Python 2.7.8的话只需要建改其中的print()函数为print语句即可.import rex = "I am a teacher,I am man, and I am 38 years old.I am not a busInessman."print(x)pattern = pile(r'(?:[\w])I(?:[\w])')while True:result = pattern.search(x)if result:if result.start(0) != 0:x = x[:result.start(0)+1]+'i'+x[result.end(0)-1:]else:x = x[:result.start(0)]+'i'+x[result.end(0)-1:]else:breakprint(x)4.3 有一段英文文本,其中有单词汇连绝沉复了2次,编写步调查看沉复的单词汇并只死存一个.比圆文本真质为“This is is a desk.”,步调输出为“This is a desk.”问:那里给出Python 3.4.2代码,如果使用Python 2.7.8的话只需要建改其中的print()函数为print语句即可.1)要收一import rex = 'This is a a desk.'pattern = pile(r'\b(\w+)(\s+\1){1,}\b')matchResult = pattern.search(x)x = pattern.sub(matchResult.group(1),x)print(x)2)要收二x = 'This is a a desk.'pattern = pile(r'(?P<f>\b\w+\b)\s(?P=f)')matchResult = pattern.search(x)x = x.WordStr(matchResult.group(0),matchResult.group(1))4.4 简朴阐明Python的字符串驻留体制.问:Python支援字符串驻留体制,即:对付于短字符串,将其赋值给多个分歧的对付象时,内存中惟有一个副本,多个对付象共享该副本.那一面不适用于少字符串,即少字符串不按照驻留体制,底下的代码演示了短字符串战少字符串正在那圆里的辨别.>>> a = '1234'>>> b = '1234'>>> id(a) == id(b)True>>> a = '1234'*50>>> b = '1234'*50>>> id(a) == id(b)False4.5 编写步调,用户输进一段英文,而后输出那段英文中所有少度为3个字母的单词汇.问:那里给出Python 3.4.2代码,如果使用Python 2.7.8的话只需要建改其中的print()函数为print语句即可.import rex = input('Please input a string:')pattern = pile(r'\b[a-zA-Z]{3}\b')print(pattern.findall(x))第5章函数安排与使用5.1 运止5.3.1小节末尾的示例代码,查看截止并收会本果.问:本果是对付于函数的默认值参数只会被处理一次,下次再调用函数而且不为默认值参数赋值时会继启使用上一次的截止,对付于列表那样的结构,如果调用函数时为默认值参数的列表拔出大概简略了元素,将会得到死存,进而做用下一次调用.5.2 编写函数,推断一个整数是可为素数,并编写主步调调用该函数.问:那里给出Python 3.4.2代码,如果使用Python 2.7.8的话只需要建改其中的print()函数为print语句即可.import mathdef IsPrime(v):n = int(math.sqrt(v)+1)for i in range(2,n):if v%i==0:return 'No'else:return 'Yes'print(IsPrime(37))print(IsPrime(60))print(IsPrime(113))5.3 编写函数,交支一个字符串,分别统计大写字母、小写字母、数字、其余字符的个数,并以元组的形式返回截止.问:那里给出Python 3.4.2代码,如果使用Python 2.7.8的话只需要建改其中的print()函数为print语句即可.def demo(v):capital = little = digit = other =0for i in v:if 'A'<=i<='Z':capital+=1elif 'a'<=i<='z':little+=1elif '0'<=i<='9':digit+=1else:other+=1return (capital,little,digit,other)x = 'capital = little = digit = other =0'print(demo(x))5.4 正在Python步调中,局部变量会隐躲共名的齐部变量吗?请编写代码举止考证.问案:会.>>> def demo():a=3print a>>> a=5>>> demo()3>>> a55.5 编写函数,不妨交支任性多个整数并输出其中的最大值战所有整数之战.问:那里给出Python 3.4.2代码,如果使用Python 2.7.8的话只需要建改其中的print()函数为print语句即可.def demo(*v):print(v)print(max(v))print(sum(v))demo(1,2,3)demo(1,2,3,4)demo(1,2,3,4,5)5.6 编写函数,模拟内置函数sum().问:那里给出Python 3.4.2代码,如果使用Python 2.7.8的话只需要建改其中的print()函数为print语句即可.def Sum(v):s = 0for i in v:s += ireturn sx = [1,2,3,4,5]print(Sum(x))x = (1,2,3,4,5)print(Sum(x))5.7 编写函数,模拟内置函数sorted().问:那里给出Python 3.4.2代码,如果使用Python 2.7.8的话只需要建改其中的print()函数为print语句即可.def Sorted(v):t = v[::]r = []while t:tt = min(t)r.append(tt)t.remove(tt)return rx = [1,3,5,2,1,0,9,7]print(x)print(Sorted(x))第6章里背对付象步调安排6.1 继启6.5节例2中的Person类死成Student类,挖写新的函数用去树立教死博业,而后死成该类对付象并隐现疑息.import typesclass Person(object): #基类必须继启于object,可则正在派死类中将无法使用super()函数def __init__(self, name = '', age = 20, sex = 'man'):self.setName(name)self.setAge(age)self.setSex(sex)def setName(self, name):if not isinstance(name,str):print('name must be string.')returnself.__name = namedef setAge(self, age):if not isinstance(age,int):print('age must be integer.')returnself.__age = agedef setSex(self, sex):if sex != 'man' and sex != 'woman':print('sex must be "man" or "woman"')returnself.__sex = sexdef show(self):print(self.__name)print(self.__age)print(self.__sex)class Student(Person):def __init__(self, name='', age = 30, sex = 'man', major = 'Computer'):#调用基类构制要收初初化基类的公罕见据成员super(Student, self).__init__(name, age, sex)self.setMajor(major) #初初化派死类的数据成员def setMajor(self, major):if not isinstance(major, str):print('major must be a string.')returnself.__major = majordef show(self):super(Student, self).show()print(self.__major)if __name__ =='__main__':zhangsan = Person('Zhang San', 19, 'man')zhangsan.show()lisi = Student('Li Si',32, 'man', 'Math')lisi.show()6.2 安排一个三维背量类,并真止背量的加法、减法以及背量与标量的乘法战除法运算.class Vecter3:def __init__(self, x=0, y=0, z=0):self.X = xself.Y = yself.Z = zdef __add__(self, n):r = Vecter3()return rdef __sub__(self, n):r = Vecter3()return rdef __mul__(self, n):r = Vecter3()r.X = self.X * nr.Y = self.Y * nr.Z = self.Z * nreturn rdef __truediv__(self, n):r = Vecter3()r.X = self.X / nr.Y = self.Y / nr.Z = self.Z / nreturn rdef __floordiv__(self, n):r = Vecter3()r.X = self.X // nr.Y = self.Y // nr.Z = self.Z // nreturn rdef show(self):print((self.X,self.Y,self.Z))v1 = Vecter3(1,2,3)v2 = Vecter3(4,5,6)v3 = v1+v2v3.show()v4 = v1-v2v4.show()v5 = v1*3v5.show()v6 = v1/2v6.show()6.3 里背对付象步调安排的三果素分别为启拆、继启战多态 .6.4 简朴阐明Python中以下划线启头的变量名个性.问:正在Python中,以下划线启头的变量名有特殊的含意,更加是正在类的定义中.用下划线动做变量前缀战后缀去表示类的特殊成员:●_xxx:那样的对付象喊搞呵护变量,不克不迭用'from moduleimport *'导进,惟有类对付象战子类对付象能考察那些变量;●__xxx__:系统定义的特殊成员名字;●__xxx:类中的公有成员,惟有类对付象自己能考察,子类对付象也不克不迭考察到那个成员,但是正在对付象中部不妨通过“”那样的特殊办法去考察.Python中不杂粹的C++意思上的公有成员.6.5 与运算符“**”对付应的特殊要收名为__pow__(),与运算符“//”对付应的特殊要收名为 __floordiv__() .第7章文献支配7.1 假设有一个英文文本文献,编写步调读与其真质,并将其中的大写字母形成小写字母,小写字母形成大写字母.问:f = open(r'd:\1.txt','r')s = f.readlines()f.close()r = [i.swapcase() for i in s]f = open(r'd:\2.txt','w')f.writelines(r)f.close()7.2 编写步调,将包罗教死结果的字典死存为二进制文献,而后再读与真质并隐现.import pickled = {'弛三':98,'李四':90,'王五':100}print(d)f = open('score.dat','wb')pickle.dump(1,f)pickle.dump(d,f)f = open('score.dat','rb')pickle.load(f)d = pickle.load(f)f.close()print(d)7.3 使用shutil模块中的move()要收举止文献移动.问:>>> import shutil>>> shutil.move(r'd:\1.txt', r'e:\1.txt')'e:\\1.txt'7.4 简朴阐明文本文献与二进制文献的辨别.问:(1)文本文献文本文献死存的是惯例字符串,由若搞文本止组成,常常每止以换止符'\n'末端.惯例字符串是指记事本大概其余文本编写器能平常隐现、编写而且人类不妨曲交阅读战明白的字符串,如英笔墨母、汉字、数字字符串.文本文献不妨使用字处理硬件如gedit、记事本举止编写.(2)二进制文献二进制文献把对付象真质以字节串(bytes)举止死存,无法用记事本大概其余一般字处理硬件曲交举止编写,常常也无法被人类曲交阅读战明白,需要使用博门的硬件举止解码后读与、隐现、建改大概真止.罕睹的如图形图像文献、音视频文献、可真止文献、资材文献、百般数据库文献、百般office文档等皆属于二进制文献.7.5 编写代码,将目前处事目录建改为“c:\”,并考证,末尾将目前处事目录回复为本去的目录.问:>>> import os>>> os.getcwd()'C:\\Python34'。
3.5实训3.5.1 实训1【分支】一、实训目的1.熟练使用Python的常用运算2.利用if分支语句编写Python代码二、单元练习(-)选择题1.下列选项中,当X为大于1的奇数时,运算结果为0的表达式是(C)A.x%2==1B.x/2C.x%2!=0D.x%2==02.在嵌套使用if语句时,Python语言规定e1se总是(A)A.和之前与其具有相同缩进位置的if相匹配;B.和之前与其最近的if相匹配;C.和之前的第一个if配对;D.和之前与其最近且不带e1se的if配对。
3.下列PyIhon语句正确的是(D)A.min=xifx<ye1seyB.max=x>y?x:yC.if(x>y)printxD.if1>2:Print("he11o”)(二)填空题2.在算术运算符(+、・、*、/、%)、关系运算符(=、!=、>、V、>=、<二)、逻辑运算符(and、or、not)和赋值运算符(=、+=、-+、*=、/=、%=、**=、〃=)中,运算优先级最高的运算符是**指数,最低的运算符not、or、and。
3.判断一个字符是数字字符的条件表达式isdigit。
4.判断一个字符是字母的条件表达式isa1num5.在Python语言中,用true 表示逻辑“真”,用fa1se表示逻辑“假”。
三、实训任务任务1:【猜字游戏】编写一个猜字游戏,要求随机输入一个OjO的数字,提供1次猜字机会。
importrandomsecret=random.randint((),10)Print("请你猜一猜从1到10的数字”)Print("你只有一次机会”)guess=eva1(input("请输入你猜的数字:"))ifguess<secret:Print('太小了)e1ifguess>secret:Print('太大了')e1se:Print('答对了)Print('正确答案是+Str(SeCret))任务2:【学生成绩等级评定】根据学生考试成绩,确定成绩等级,成绩与等级的对应关系如下表所示。
Python语言程序设计_东北大学中国大学mooc课后章节答案期末考试题库2023年1.下面代码的输出结果是( )for i in range(10):if i%2==0:continueelse:print(i,end=",")参考答案:1,3,5,7,9,2.以下关于列表操作的描述,错误的是:( )参考答案:通过 add 方法可以向列表添加元素3.以下程序的输出结果是:( )s=''try: for i in range(1, 10, 2): s.append(i)except:print('error')print(s)参考答案:error4.以下关于文件的描述错误的选项是:( )参考答案:二进制文件和文本文件都是可以用文本编辑器编辑的文件5.下面代码的输出结果是()d ={"大海":"蓝色", "天空":"灰色", "大地":"黑色"}print(d["大地"], d.get("大地", "黄色"))参考答案:黑色黑色6.Python语言语句块的标记是( )参考答案:缩进7.下列哪个语句输出浮点数类型变量x保留显示2位小数的结果是错误的:()参考答案:print("{%.2f}".format(x))8.以下程序的输出结果是:()ls = ["浣熊","豪猪","艾草松鸡","棉尾兔","叉角羚"]x = "豪猪"print(ls.index(x,0))参考答案:19.以下关于程序设计语言的描述,错误的选项是:()参考答案:程序设计语言经历了机器语言、汇编语言和脚本语言三个阶段10.关于import引用,以下选项中描述错误的是:( )参考答案:import turtle之后直接执行showturtle()就可以显示画笔形状11.关于 Python 语言的注释,以下选项中描述错误的是()参考答案:Python 语言的单行注释以单引号’ 开头12.以下关于 random 库的描述,正确的是:()参考答案:randint(a,b) 是生成一个 [a,b] 之间的整数13.以下程序的输出结果是:()for num in range(1,4): sum *= numprint(sum)参考答案:TypeError 出错14.执行以下程序,输入la,输出结果是:( )la = 'python'try: s = eval(input('请输入整数:')) ls = s*2 print(ls)except: print('请输入整数')参考答案:pythonpython15.以下关于循环结构的描述,错误的是:( )参考答案:遍历循环使用for in 语句,其中循环结构不能是字符串16.下面代码的输出结果是( )for s in "abc": for i in range(3): print (s,end="") ifs=="c": break参考答案:aaabbbc17.下面代码的输出结果是( )sum = 1.0for num in range(1,4):sum+=numprint(sum)参考答案:7.018.执行如下代码import turtlefor i in range(1,5): turtle.forward(50)turtle.left(90)在Python Turtle Graphics中,绘制的是( )参考答案:正方形19.关于赋值语句,以下选项中描述错误的是( )参考答案:设 a = 10;b = 20,执行a,b = a,a + b print(a,b)和a = b b = a + bprint(a,b)之后,得到同样的输出结果:10 3020.关于Python循环结构,以下选项中描述错误的是()参考答案:每个continue语句有能力跳出当前层次的循环21.下面代码的输出结果是()for s in "HelloWorld": if s=="W": continueprint(s,end="")参考答案:Helloorld22.下面代码的输出结果是()x = 12.34print(type(x))参考答案:23.给出如下代码MonthandFlower={"1月":"梅花","2月":"杏花","3月":"桃花","4月":"牡丹花",\"5月":"石榴花","6月":"莲花","7月":"玉簪花","8月":"桂花",\"9月":"菊花","10月":"芙蓉花","11月":"山茶花","12月":"水仙花"}n = input("请输入1-12的月份:")print(n + "月份之代表花:" +MonthandFlower.get(str(n)+"月"))以下选项中描述正确的是()参考答案:代码实现了获取一个整数(1-12)来表示月份,输出该月份对应的代表花名24.字典 d={'Name': 'Kate', 'No': '1001', 'Age': '20'},表达式len(d)的值为()参考答案:325.以下表达式,正确定义了一个集合数据对象的是:()参考答案:x = { 200, ’flg’, 20.3}26.给出如下代码:TempStr = "Hello World"以下选项中可以输出“World”子串的是()参考答案:print(TempStr[–5:])27.以下对数值运算操作符描述错误的选项是:( )参考答案:Python 数值运算操作符需要引用第三方库math28.下面代码的执行后x值是( )x = 2x *= 3 + 5**2参考答案:5629.以下关于函数选项中描述错误的是()参考答案:Python 使用 del 保留字定义一个函数。
中国大学MOOC课程 《Python语言程序设计》 课后练习(第2周)北京理工大学Python语言教学团队【说明】本文是中国大学MOOC课程《Python语言程序设计》第2周的课后练习,预估完成时间约50分钟,课后练习结果不上交。
本周学习目标是通过“温度转换”和“蟒蛇绘制”两个程序了解Python语法元素含义以及turtle库的基本使用。
这里共提供5个问题,请逐一在IDLE环境中编写程序并运行。
请注意:程序代码的缩进(即空格)影响程序逻辑,请保持缩进严格一致,一个缩进4个空格。
对于尚未安装Python运行环境的同学,请根据第1周课程内容介绍的步骤安装Python 3.5.1或者Python 3.5.2版本解释器,如果操作系统兼容性有问题,可以安装Python 3.4版本解释器。
【内容】(1)练练“手”。
启动IDLE,新建文件,请根据视频或PPT中内容,将“温度转换”和“蟒蛇绘制”两个程序逐行输入其中,并运行效果。
这两个程序不长,自己输入一遍有助于理解Python缩进及其他语法元素的外在表现,10分钟足矣。
(2)温度转换程序。
采用eval()函数替换温度转换程序中的float()函数,观察运行结果。
请查阅资料了解eval()函数的作用。
(3)彩色蟒蛇绘制。
修改“蟒蛇绘制”程序,对Python蟒蛇的每个部分采用不同颜色,绘制一条彩色蟒蛇。
(4)蟒蛇绘制。
修改“蟒蛇绘制”程序中seth()函数的参数值,观察所绘制蟒蛇的变化。
(5)绘制等边三角形。
使用turtle库中turtle.fd()函数和turtle.seth()函数绘制一个等边三角形,效果如下。
(6)理解turtle库的使用。
找到第1周课后练习题,尝试理解其中(7)和(8)程序的含义。
Python有哪些语法元素?(请自找介质默写)。
中国大学MOOC课程 《Python语言程序设计》 课后练习(第3周)
北京理工大学
Python语言教学团队
【说明】
本文是中国大学MOOC课程《Python语言程序设计》第3周的课后学习内容,预估学习完成时间约30分钟。
本周课后学习内容是Python语言中字符串的格式化方法。
Python 提供两种字符串格式方法。
一种类似C语言的格式化方法,使用%;另一种采用format()方法,Python推荐使用这种。
这里介绍Python推荐的format()方法,相比C语言风格格式化方法,该方法能力更强、更直观、更容易格式化组合数据类型。
请同学们学习课后内容同时打开IDLE,边学边练。
对于尚未安装Python运行环境的同学,请根据第1周课程内容介绍的步骤安装Python 3.5.1或者Python 3.5.2版本解释器,如果操作系统兼容性有问题,可以安装Python 3.4版本解释器。
【学习内容】
字符串类型格式化采用format()方法,基本使用格式是:
<模板字符串>.format(<逗号分隔的参数>)
<模板字符串>由一系列的槽组成,用来控制修改字符串中嵌入值出现的位置,其基本思想是将format()方法的<逗号分隔的参数>中的参数按照序号关系替换到<模板字符串>的槽中。
槽用大括号({})表示,如果大括号中没有序号,则按照出现顺序替换,如图3.1所示。
图 3.1: format()方法的槽顺序和参数顺序
如果大括号中指定了使用参数的序号,按照序号对应参数替换,如图3.2所示。
调用format()方法后会返回一个新的字符串,参数从0开始编号。
图 3.2: format()方法槽与参数的对应关系
例如:
>>>"{}:计算机{}的CPU占用率为{}%。
".format("2016-12-31","PYTHON",10)
'2016-12-31:计算机PYTHON的CPU占用率为10%。
'
format()方法可以非常方便地连接不同类型的变量或内容,如果需要输出大括号,采用{{表示{,}}表示},例如:
>>>"{}{}{}".format("圆周率是",3.1415926,"...")
'圆周率是3.1415926...'
>>>"圆周率{{{1}{2}}}是{0}".format("无理数",3.1415926,"...")
'圆周率{3.1415926...}是无理数'
>>>s="圆周率{{{1}{2}}}是{0}" #大括号本身是字符串的一部分
>>>s
'圆周率{{{1}{2}}}是{0}'
>>>s.format("无理数",3.1415926,"...") #当调用format()时解析大括号
'圆周率{3.1415926...}是无理数'
format()方法中<模板字符串>的槽除了包括参数序号,还可以包括格式控制信息。
此时,槽的内部样式如下:
{<参数序号>: <格式控制标记>}
其中,<格式控制标记>用来控制参数显示时的格式,如图3.3所示。
图 3.3: 槽中格式控制标记的字段
<格式控制标记>包括:<填充><对齐><宽度>,<.精度><类型>6个字段,这些字段都是可选的,可以组合使用,逐一介绍如下。
<填充>、<对齐>和<宽度>是3个相关字段。
<宽度>指当前槽的设定输出字符宽度,如果该槽对应的format()参数长度比<宽度>设定值大,则使用参数实际长度。
如果该值的实际位数小于指定宽度,则位数将被默认以空格字符补充。
<对齐>指参数在<宽度>内输出时的对齐方式,分别使用<、>和^三个符号表示左对齐、右对齐和居中对齐。
<填充>指<宽度>内除了参数外的字符采用什么方式表示,默认采用空格,可以通过<填充>更换。
例如:
>>>s = "PYTHON"
>>>"{0:30}".format(s)
'PYTHON '
>>>"{0:>30}".format(s)
' PYTHON'
>>>"{0:*^30}".format(s)
'************PYTHON************'
>>>"{0:-^30}".format(s)
'------------PYTHON------------'
>>>"{0:3}".format(s)
'PYTHON'
<格式控制标记>中逗号(,)用于显示数字的千位分隔符,例如:>>>"{0:-^20,}".format(1234567890)
'---1,234,567,890----'
>>>"{0:-^20}".format(1234567890) #对比输出
'-----1234567890-----'
>>>"{0:-^20,}".format(12345.67890)
'----12,345.6789-----'
<.精度>表示两个含义,由小数点(.)开头。
对于浮点数,精度表示小数部分输出的有效位数。
对于字符串,精度表示输出的最大长度。
>>>"{0:.2f}".format(12345.67890)
'12345.68'
>>>"{0:H^20.3f}".format(12345.67890)
'HHHHH12345.679HHHHHH'
>>>"{0:.4}".format("PYTHON")
'PYTH'
<类型>表示输出整数和浮点数类型的格式规则。
对于整数类型,输出格式包括6种:
●b: 输出整数的二进制方式;
●c: 输出整数对应的Unicode字符;
●d: 输出整数的十进制方式;
●o: 输出整数的八进制方式;
●x: 输出整数的小写十六进制方式;
●X: 输出整数的大写十六进制方式;
>>>"{0:b},{0:c},{0:d},{0:o},{0:x},{0:X}".format(425)
'110101001,Ʃ,425,651,1a9,1A9'
对于浮点数类型,输出格式包括4种:
●e: 输出浮点数对应的小写字母e的指数形式;
●E: 输出浮点数对应的大写字母E的指数形式;
●f: 输出浮点数的标准浮点形式;
●%: 输出浮点数的百分形式。
浮点数输出时尽量使用<.精度>表示小数部分的宽度,有助于更好控制输出格式。
>>>"{0:e},{0:E},{0:f},{0:%}".format(3.14)
'3.140000e+00,3.140000E+00,3.140000,314.000000%'
>>>"{0:.2e},{0:.2E},{0:.2f},{0:.2%}".format(3.14)
'3.14e+00,3.14E+00,3.14,314.00%'
(上述内容仅供个人学习使用,禁止转载)
Python有哪些数据类型?
(请自找介质默写)。