Python语言程序设计基础(第2版)全答案v3-20180823
- 格式:pdf
- 大小:1.97 MB
- 文档页数:79
python快速编程⼊门(第2版)课后答案1. Python概述填空题1. 对象2. 可移植性3. Python4. import5. from…import *判断题1. √2. ×3. ×4. √5. √选择题1. C2. D3. C简答题1. Python主要的特点有代码简洁、语法优美、简单易学、开源、可移植、类库丰富、中⽂⽀持等。
2. Python中可以使⽤关键字import导⼊⼀个或多个模块,也可以使⽤from 模块名 import * 导⼊模块中的全部内容。
3. 模块是最基础的代码组织⽅式,每个包含有组织的代码⽚段的.py⽂件都是⼀个模块;包以类似⽬录的机构组织模块⽂件或⼦包;库是⼀个抽象的概念,它是指具有相关功能模块的集合。
编程题省略,代码详见教材。
1. Python基础填空题1. 42. True False3. type4. 浮点5. 1判断题1. ×2. ×选择题1. A2. A3. D4. B5. C简答题1. 根据数据存储形式的不同,Python使⽤不同的数据类型存储不同类型的数据。
数字类型提供了数值的存储,Python中的数字类型⼜包含整型、浮点型、复数类型和布尔类型。
2. 常量名使⽤⼤写的单个单词或由下画线连接的多个单词(如ORDER_LIST_LIMIT);模块名、函数名使⽤⼩写的单个单词或由下画线连接的多个单词(如low_with_under);类名使⽤⼤写字母开头的单个或多个单词(如Cat、CapWorld)。
3. Python运算符是⼀种特殊的符号,主要⽤于实现数值之间的运算。
根据操作数数量的不同,运算符可分为单⽬运算符、双⽬运算符;根据功能的不同,运算符可分为算术运算符、赋值运算符、⽐较运算符、逻辑运算符和成员运算符。
编程题答案:radius = float(input("请输⼊园的半径:"))# 直径diameter = 2 * radius# ⾯积area = 3.14 * radius * radiusprint('园的直径为:', diameter)print('园的⾯积为:', area)答案:frequency = (29.5 - 4 * 3) / 2.5print("还需运送的次数为:",frequency)1. 流程控制填空题1. if2. for ,while3. True4. for5. continue判断题4. ×5. ×选择题1. C2. C3. C4. C5. B简答题1. break语句⽤于结束整个循环;continue的作⽤是⽤来结束本次循环,紧接着执⾏下⼀次的循环。
2023年计算机二级《Python语言程序设计》考试全真模拟易错、难点汇编叁(带答案)(图片大小可自由调整)一.全考点综合测验(共45题)1.【问答题】简述字典和集合的异同。
并简述它们各自的用途。
正确答案:字典和集合的数据元素之间没有任何确定的顺序关系,属于无序的数据集合体,因此不能像序列那样通过位置索引来访问数据元素。
作为一种复合数据类型,字典和集合之间的主要区别在于它们的操作,字典主要关心其元素的检索、插入和删除,集合主要考虑集合之间的并、交和差操作。
2.【单选题】以下程序的输出结果是:ss = set("htslbht")sorted(ss)for i in ss:print(i,end = '')A.htslbhtB. hlbstC. tsblhD.hhlstt正确答案:B3.【单选题】对建立良好的程序设计风格,下面描述正确的是A.符号名的命名只要符合语法B. 充分考虑程序的执行效率C.程序的注释可有可无D.程序应简单、清晰、可读性好正确答案:D4.【问答题】请简述Python 中类对象与实例对象、类属性与实例属性各自的区别?并简述它们各自的用途。
正确答案:类对象与实例对象的区别:在一个类中,类对象只有一个,但实例对象可以有多个。
类对象在定义类后便自然存在,而实例对象需要人为创建。
类属性与实例属性的区别:实例属性是实例对象所特有的。
类对象并不拥有实例属性,所以不能通过类对象来访问实例属性。
实例属性也只能用实例对象来访问,不能用类对象来访问实例属性。
类属性即可用类对象访问,也可用实例对象访问。
请简述Python 中类对象与实例对象、类属性与实例属性各自的区别?并简述它们各自的用途。
5.【单选题】以下不是程序输出结果的选项是:import random as rls1 = [12,34,56,78]r.shuffle(ls1)print(ls1)A.[12, 78, 56, 34]B.[56, 12, 78, 34]C. [12, 34, 56, 78]D.[12, 78, 34, 56]正确答案:C6.【单选题】执行以下程序,输入la,输出结果是:la = 'python'try:s = eval(input(' 请输入整数:'))ls = s*2print(ls)except:print('请输入整数')B.请输入整数C.pythonpythonD.python正确答案:C7.【问答题】请用Python 语言编写一个简易的系统登录程序。
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真题及答案解析3精品word练习一、选择题1.如图Python代码执行后,a,b的值分别为:()A.5,10 B.10,5 C.5,5 D.10,10 2.Python语言属于()A.自然语言B.汇编语言C.机器语言D.高级语言3.Python文件的后缀名是()。
A..doc B..vbp C..py D..exe 4.12 Python语言语句块的标记是( )A.分号B.逗号C.缩进D./5.以下()是python文件A.*.mp3B.*.xls C.*.ppt D.*py 6.在Python中,表达式(21%4)+5的值是()A.2 B.6 C.10 D.37.在Python中,表达式(21%4)+3的值是()A.2 B.4 C.6 D.88.下列选项都是属于高级语言的是( )A.汇编语言、机器语言B.汇编语言、Basic语言C.Basic语言、Python语言D.机器语言、Python语言9.关于Python3.8基础知识的说法中,不正确的是()A.支持中文做标识符B.Python标识符不区分字母的大小写C.Python命令提示符是>>>D.命令中用到的标点符号只能是英文字符10.在python中,下列属于字符串常量的是()A."python" B.3.14 C.cnt D.2018 11.Python中,保留字写法正确的是()A.PRINT()B.Print()C.print()D.Int()12.在Python中,下面程序段的输出结果是()x=9Print(“x=”,x+1)A.9 B.10 C.x=9 D.x= 1013.在Python中,已知a=3,b=5,运行下列程序段后,a和b的值为a = a * bb = a // ba = a // bA.a=3 b=5 B.a=15 b=3 C.a=5 b=5 D.a=5 b=314.下列python表达式结果为5的是()A.abs(int(-5.6))B.len("3+5>=6")C.ord("5")D.round(5.9)15.Python语句 "ab"+"c"*2 的运行结果是()A.abc2 B.abcabc C.abcc D.ababcc 16.Python的设计具有很强的可读性,相比其他语言具有的特色语法有以下选项,正确的是()。
计算机python二级试题及答案试题一:1. 请解释Python中的PEP是什么?PEP是指Python增强提案(Python Enhancement Proposal),用于描述和讨论Python编程语言的改进和开发。
PEP提供了一种共同的工作方法,促进了Python社区的交流和发展。
PEP通常包含新功能、语法修改、库设计等方面的建议。
2. 请解释Python中的装饰器是什么?装饰器是Python语言中一种用于修改函数或者类的行为的特殊语法。
装饰器可以在不修改原始函数或类的情况下,提供额外的功能或者包装现有的功能。
装饰器通常使用@符号和函数作为参数进行定义和应用。
3. 请解释Python中的列表推导式是什么?列表推导式是一种用于简化列表创建和操作的表达式。
它允许在单个表达式中使用循环、条件语句等操作列表。
以下是一个简单的列表推导式的例子:numbers = [x for x in range(10) if x % 2 == 0]该列表推导式将创建一个包含0到9中偶数的列表。
4. 请解释Python中的异常处理是什么?异常处理是一种用于处理和捕获程序运行过程中出现的异常情况的机制。
在Python中,使用try-except语句块来捕获并处理异常。
try块中包含可能会引发异常的代码,而在except块中可以定义对特定异常的处理方式。
例如:try:result = 10 / 0except ZeroDivisionError:print("除数不能为零")该代码示例中,除数为零会引发ZeroDivisionError异常,而except 块中的代码将打印出异常信息"除数不能为零"。
5. 请解释Python中的yield关键字是什么?yield关键字在Python中用于生成器(generator)函数中。
生成器函数通过yield语句提供了一种延迟计算的机制,可以逐步生成值而不是一次性生成所有值。
[转载]Python语⾔程序设计基础(第⼆版)嵩天等课后习题答案第⼀次博⽂ Time:2018年04⽉28⽇ 星期六 11:37 ⼆次补充 2018年05⽉02⽇ 第⼀章 程序设计基本⽅法 P29# 1.1字符串的拼接str1 = input("请输⼊⼀个⼈的名字:")str2 = input("请输⼊⼀个地点:")print("世界这么⼤,{}想去{}看看。
".format(str1,str2))# 1.2整数序列求和n = input("请输⼊⼀个整数N:")sum = 0for i in range(int(n)):#或者调和函数eval(n)print(i,end = ' ')sum = sum + i+1print("1到N求和结果为:",sum)# 1.3 9*9乘法表# 版本⼀for i in range(1,10):for m in range(1,i+1):sum = i*mif m < i:if sum < 10:print(m,'*',i,"= {}".format(sum),end = ' ')else:print(m,'*',i,'=',sum,end = ' ')else:print(m,'*',i,'=',sum)# 版本⼆for i in range(1,10):for j in range(1,i+1):print("{} * {} = {:2}".format(j,i,i*j),end = ' ')print('')for i in range(1,11):tmp *= isum += tmpprint("1+2!+3!+4!+...+10!=",sum)# ---------1.5 猴⼦吃桃问题 ----------------------# # list(range(5,0,-1)) ----- [5, 4, 3, 2, 1]n = 1for i in range(5,0,-1):n = (n+1)*2 #n = (n+1)<<1 左移⼀位乘以2 print(n)# --------1.6 健康⾷谱输出 ------------------------# diet = ['西红柿','⼟⾖','鸡蛋','黄⽠','青菜']for i in range(5):for j in range(5):if (i != j):print(diet[i],diet[j],sep = '炒')# --------1.7 绘制五⾓星 --------------------------# from turtle import *##fillcolor("red")color('red','yellow') #color('线条颜⾊','填充颜⾊') begin_fill()while True:forward(200)right(144)if abs(pos()) < 1:breakend_fill()# ------1.8 太阳花的绘制 --------------------------# from turtle import *color('red','yellow')begin_fill()while True:if abs(pos()) <1:breakend_fill()done()第⼆章 Python程序实例解析# ---------------温度转换程序1.1 P35-------------------------#TempStr = input("请输⼊带有符号的温度值:")if TempStr[-1] in ['F','f']:C = (eval(TempStr[0:-1]) - 32) / 1.8print("华⽒温度{}转换为摄⽒度温度是:{:.2f}C".format(TempStr,C)) elif TempStr[-1] in ['C','c']:F = eval(TempStr[0:-1])*1.8 + 32print("摄⽒温度{}转换为华⽒温度是:{:.2f}F".format(TempStr,F)) else:print("输⼊格式错误")# -----------------循环输⼊----------------------------------#TempStr = input("请输⼊带有符号的温度值:")while TempStr[-1] not in ['N','n']:if TempStr[-1] in ['F','f']:C = (eval(TempStr[0:-1]) - 32) / 1.8print("华⽒温度{}转换为摄⽒度温度是:{:.2f}C".format(TempStr,C)) elif TempStr[-1] in ['C','c']:F = eval(TempStr[0:-1])*1.8 + 32print("摄⽒温度{}转换为华⽒温度是:{:.2f}F".format(TempStr,F))else:print("输⼊格式错误")TempStr = input("请输⼊带有符号的温度值:")# --------------------------正⽅形的绘制---------------------------------#im import turtle as tt.pensize(3)for i in range(1,5):t.fd(100)# --------------------------六边形的绘制---------------------------------#im import turtle as tt.pensize(3)for i in range(6):t.fd(100)t.seth(60+60*i)t.done()# --------------------------叠边形的绘制---------------------------------#im import turtle as tt.pensize(3)for i in range(9):t.fd(150)t.seth(80+80*i)t.done()# --------------------------同切圆的绘制---------------------------------#im import turtle as tt.pensize(3)for i in range(4):t.circle(50+i*10)t.done()# ----------------------------长度转换------------------## 1⽶ = 39.37英⼨le = input()if le[-1] in ['M','m']:temp = eval(le[0:-1]) * 39.37print("{:.3f}in".format(temp))elif le[-2:] in ['in','IN']:temp = eval(le[0:-2]) / 39.37print("{:.3f}m".format(temp))else:print("输⼊格式错误")# ------------------------多彩蟒蛇的绘制---------------------------------#def drawSnake(r,angle,length):t.seth(-40)for i in range(length):t.pencolor(week[i%8])t.circle(r,angle)t.pencolor(week[(i+1)%8])t.circle(-r,angle)t.circle(r,angle/2)t.fd(40)t.circle(16,180)t.fd(40*2/3)t.setup(650,350)t.penup()t.fd(-250)t.pendown()t.pensize(25)drawSnake(40,80,9)t.done()第三章 基本数据类型 天天向上的⼒量 在⼀年中,如果每天进步》》,那么⼀年下来会进步到多少呢? 在⼀年中,如果每天退步》》,那么⼀年下来会倒退到多少呢?⼀年中每天提升0.001:1.44,⼀年中每天能⼒下降0.001:0.69⼀年中每天提升0.005:6.17,⼀年中每天能⼒下降0.005:0.16⼀年中每天提升0.01:37.78,⼀年中每天能⼒下降0.01:0.03向上5天向下2天的⼒量:4.63。
《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模块。
Python课后题答案第1章Python概述一、填空题1.对象2.可移植3.字节码4.UTF-8二、判断题1.对2.对3.对4.对5.错6.错7.对8.错9.对10.错三、选择题1.C2.ABCD3.B4.C5.D四、简答题。
1. Python具有的特点如下:简单易学开源高级语言可移植性解释性面向对象可扩展性丰富的库规范的代码2. Python可以应用在下列领域:web应用开发操作系统管理、服务器运维的自动化脚本 科学计算桌面软件服务器软件(网络软件)游戏构思实现,产品早期原型和迭代3. 和的区别如下:(1)在中,输出数据使用的是print语句。
但是在中, print语句没有了,取而代之的是print()函数(2)python2有ASCII Str()类型,unicode()是单独的,不是byte类型。
在版本的源代码中,默认使用的是UTF-8编码,从而可以很好的支持中文字符。
(3)在python 中,使用运算符/进行除法运算,整数相除的结果是一个整数,浮点数除法会保留小数点的部分得到一个浮点数的结果。
在python 中使用运算符/进行除法,整数之间的相除,结果也会是浮点数。
(4)相比版本,版本在异常方面有很多改变:在版本,所有类型的对象都是直接被抛出的,但是,在版本中,只有继承自BaseException的对象才可以被抛出。
在版本中,捕获异常的语法是except exc,var。
在版本中,引入了as关键字,捕获异常的语法变更为except exc as var。
在版本中,处理异常使用raise Exception(args)。
在版本中,处理异常使用raiseException,args。
取消了异常类的序列行为和.message属性。
(5)在Python 中,表示八进制字面量的方式只有一种,并且必须写0o1000这样的方式,原来01000的方式不能使用了。
(6)Python 中不等于有两种写法 != 和 <>;但是,Python 中去掉了<>, 只有!=一种写法(7)去除了long类型,现在只有一种整型int,但它的行为就像是版本的long。
计算机二级Python真题及答案解析3精品一、选择题1.在Python中,通过()函数查看字符的编码。
A.int( ) B.ord( ) C.chr( ) D.yolk( )2.在Python中自定义函数需要什么关键字放在函数开始()A.function B.def C.define D.void3.以下是猜数游戏的 Python程序,请你补全代码:请选择适当的代码填入程序①处。
()A.for B.print C.elif D.input4.在 Python中常用的输入输出语句分别是()A.input() output() B.input() print()C.input() printf() D.scandf() printf()5.在Python中,用变量code存储学生的借书卡编码,例如:code=“NO.2020100502”,则变量code的数据类型应定义为()A.布尔型B.整型C.字符串型D.浮点型6.在Python IDLE编辑器中书写正确的表达式()A.b**2-4ac B.1/2gt2C.pi*r^2 D.2*pi*r7.在下面的python程序中,变量b和c的值为()。
A.b为6,c为6 B.b为6,c为8 C.b为8,c为8 D.b为8,c为6 8.Python语言自带的IDLE环境的退出命令是()A.Esc B.close C.回车键D.exit 9.Python中的数据类型float表示()A.布尔型B.整型C.字符串型D.浮点型10.Python的序列类型不包括下列哪一种?()A.字符串B.列表C.元组D.字典11.关于Python3.8基础知识的说法中,不正确的是()A.支持中文做标识符B.Python标识符不区分字母的大小写C.Python命令提示符是>>>D.命令中用到的标点符号只能是英文字符12.下列可以作为python变量名的是()A.5x B.x-1 C.if D.x_113.在Python中,返回x的绝对值的函数是()。
1. 关于数据的存储结构,以下选项描述正确的是A数据所占的存储空间量B数据在计算机中的顺序存储方式C数据的逻辑结构在计算机中的表示D存储在外存中的数据正确答案: C2. 关于线性链表的描述,以下选项中正确的是A存储空间不一定连续,且前件元素一定存储在后件元素的前面B存储空间必须连续,且前件元素一定存储在后件元素的前面C存储空间必须连续,且各元素的存储顺序是任意的存储空间不一定连续,且各元素的存储顺序是任意的正确答案: D3. 在深度为 7 的满二叉树中,叶子结点的总个数是A31B64C63D32正确答案: B4. 关于结构化程序设计所要求的基本结构,以下选项中描述错误的是A重复(循环)结构选择(分支)结构Cgoto 跳转D顺序结构正确答案: C5. 关于面向对象的继承,以下选项中描述正确的是A继承是指一组对象所具有的相似性质B继承是指类之间共享属性和操作的机制C继承是指各对象之间的共同性质D继承是指一个对象具有另一个对象的性质正确答案: B6. 关于软件危机,以下选项中描述错误的是A软件成本不断提高B软件质量难以控制C软件过程不规范D软件开发生产率低正确答案: C7. 关于软件测试,以下选项中描述正确的是A软件测试的主要目的是确定程序中错误的位置B为了提高软件测试的效率,最好由程序编制者自己来完成软件的测试工作C软件测试是证明软件没有错误D软件测试的主要目的是发现程序中的错误正确答案: D8. 以下选项中用树形结构表示实体之间联系的模型是A网状模型B层次模型C静态模型D关系模型正确答案: B9. 设有表示学生选课的三张表,学生 S(学号,姓名,性别,年龄,身份证号),课程(课号,课程名),选课 SC (学号,课号,成绩) ,表 SC 的关键字 (键或码)是A学号,成绩B学号,课号C学号,姓名,成绩D课号,成绩正确答案: B10.设有如下关系表:以下选项中正确地描述了关系表 R、S、T 之间关系的是AT=R∪SBT=R×SCT=R– SDT=R∩S正确答案: C11. 关于 Python 程序格式框架的描述,以下选项中错误的是APython 语言的缩进可以采用 Tab 键实现BPython 单层缩进代码属于之前最邻近的一行非缩进代码,多层缩进代码根据缩进关系决定所属范围C判断、循环、函数等语法形式能够通过缩进包含一批Python 代码,进而表达对应的语义DPython 语言不采用严格的“缩进”来表明程序的格式框架正确答案: D 12. 以下选项中不符合 Python 语言变量命名规则的是A IB 3_1C _AID TempStr正确答案: B13. 以下关于 Python 字符串的描述中,错误的是A字符串是字符的序列,可以按照单个字符或者字符片段进行索引B字符串包括两种序号体系:正向递增和反向递减CPython 字符串提供区间访问方式,采用 [N:M] 格式,表示字符串中从 N 到 M 的索引子字符串(包含 N 和 M )D字符串是用一对双引号" "或者单引号' '括起来的零个或者多个字符正确答案: C14. 关于 Python 语言的注释,以下选项中描述错误的是APython 语言的单行注释以#开头BPython 语言的单行注释以单引号 ' 开头CPython 语言的多行注释以 ' ' ' (三个单引号)开头和结尾DPython 语言有两种注释方式:单行注释和多行注释正确答案: B15. 关于 import 引用,以下选项中描述错误的是A使用 import turtle 引入 turtle 库B可以使用 from turtle import setup 引入 turtle 库C使用 import turtle as t 引入 turtle 库,取别名为 t Dimport 保留字用于导入模块或者模块中的对象正确答案: B16.下面代码的输出结果是x = 12.34print(type(x))A<class 'int'>B<class 'float'>C<class 'bool'>D<class 'complex'>正确答案: B17. 关于 Python 的复数类型,以下选项中描述错误的是A复数的虚数部分通过后缀“ J”或者“j”来表示B对于复数 z ,可以用 z.real 获得它的实数部分C对于复数 z ,可以用 z.imag 获得它的实数部分D复数类型表示数学中的复数正确答案: C18. 关于 Python 字符串,以下选项中描述错误的是A可以使用 datatype() 测试字符串的类型B输出带有引号的字符串,可以使用转义字符 \C字符串是一个字符序列,字符串中的编号叫“索引”D字符串可以保存在变量中,也可以单独存在正确答案: A19. 关于 Python 的分支结构,以下选项中描述错误的是A分支结构使用 if 保留字BPython 中 if-else 语句用来形成二分支结构CPython 中 if-elif-else 语句描述多分支结构D分支结构可以向已经执行过的语句部分跳转正确答案: D20. 关于程序的异常处理,以下选项中描述错误的是A程序异常发生经过妥善处理可以继续执行B异常语句可以与 else 和 finally 保留字配合使用C编程语言中的异常和错误是完全相同的概念DPython 通过 try、except 等保留字提供异常处理功能正确答案: C21. 关于函数,以下选项中描述错误的是A函数能完成特定的功能,对函数的使用不需要了解函数内部实现原理,只要了解函数的输入输出方式即可。
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.2]: 吉尔德定律(Gilder’s Law):主干网的带宽每6个月增长一倍;梅特卡尔夫定律(Metcalfe’s Law):网络的价值同用户数量的平方成正比;库梅定律(Koomey’s Law):每18个月相同计算量所需要消耗的能量会减少一半;尼尔森定律(Nielsen’s Law):用户带宽将以平均每年50%的增幅增长。
[1.3]: 近十年提出的技术名词有普适计算、云计算、物联网、深度学习、量子计算、大数据、区块链、边缘计算、软件定义网络等。
1.2 程序设计语言[1.4]: 机器语言,也就是二进制代码语言,全部由0和1组成。
[1.5]: 编译执行:优点:编译产生的目标代码执行更快,在同类型操作系统上使用灵活;缺点:对不同类型操作系统支持较差,比如windows和linux;解释执行:优点:可在不同类型操作系统上运行,源代码保留,方便纠错与维护;缺点: 执行效率较低,源代码保留使程序容易遭到破坏。
[1.6]: 工作中处理数据、方便及时获取信息、创造新的工作机会等。
1.3 Python语言概述[1.7]: 降低学习成本、有利于程序演进、推动了互联网的进步。
[1.8]: 平台无关,粘性扩展,强制可读,支持中文,模式多样,类库丰富等。
[1.9]: print("祖国,你好")1.4 Python语言开发环境配置[1.10]: 在print()参数列表中添加end = "",表示以空字符结尾,替换默认的换行结尾。
[1.11]: 可以使用turtle库绘制图形[1.12]: 可以使用datetime或time库来获取日期时间1.5 程序的基本编写方法[1.13]:Input: 给出一个问题及回答者的答案Process: 将回答者答案与人类答案进行比较Output: 回答者是人或计算机[1.14]: Python语言能够帮助求解问题中的计算部分。
[1.15]: 调试指排除程序错误,此时程序输出是不正确的。
测试指在程序正确输出后对其他特性诸如性能,安全性进行进一步探究和改进,此时程序的输出是正确的。
[1.16]: B1.6 Python语言的版本更迭[1.17]: Python 2输出是print "祖国,你好",Python 3输出是print("祖国,你好")。
[1.18]: Python 2中的input()返回类型取决于输入类型,Python 3中无论输入什么,input()返回的都是字符串。
[1.19]: (1) 观察它们的print用法(2) 代码中有from __future__ import xxxxxx,一定是2.x;(3) 代码中有中文变量名,一定是3.x。
程序练习题本章程序练习题为代码测试类型,只需要读者按照题干要求录入代码运行代码即可,无需答案。
第2章Python程序实例解析2.1 实例1:温度转换[2.1]: (1) 收支记录:公司所有部门的收支记录采用计算机录入并管理;(2) 分析比较:对收支历史数据进行比较分析;(3) 财务审计:计算机辅助找到财务漏洞。
[2.2]:Input: 《红楼梦》全文;Process:对全文分词,找到其中的人物名称,统计人物名称出现的次数并排序;Output:按照从高到低顺序输出排序后的人物名称。
[2.3]: 模糊或主观性很强的问题、鉴赏类问题、纠纷类问题等。
2.2 Python程序语法元素分析[2.4]: C[2.5]: 出现过的保留字:import、from:用于导入模块;in:判断变量是否在序列中;not:表示“不是”,可用于逻辑非操作,表达式运算;and:表达式运算,逻辑与操作;if、elif、else:分支语句;while:用于循环;def:定义函数或方法;没有出现的保留字:lambda:生成简写函数的lambda表达式;as:名称转换;is:表示“是”,用于表达式操作;or:表示“或”,用于逻辑或和表达式运算;for:用于循环;try、except、finally:用于异常捕捉及处理;with:用于上下文管理;assert:表示断言,用于判断一个变量或一个表达式的值是否为真;break:表示中断;class:用于定义类;continue:用于执行下一次循环;del:用于删除变量或序列的值;return:用于函数返回结果;yield:用于从函数依次返回值;raise:用于抛出异常;nonlocal:用于函数嵌套定义时外层数据在内层的表示;global:表示全局变量;None:表示“空”;True:表示“真”;False:表示“假”;[2.6]: print(input())。
[2.7]: 如果允许变量名开头是数字,则无法区分变量名和数字类型,例如:如果变量名091合法,则程序无法区分这个变量和数字091。
另外,有些数字可能含有字母,如浮点数1E10。
程序设计语言不能存在歧义,因此,需要约定变量名开头不能是数字,以便区分变量与数字。
2.3 实例2:Python蟒蛇绘制[2.8]: 颜色由紫色变为紫罗兰色,看起来变浅了。
[2.9]: 蟒蛇的长度变长了。
[2.10]: 画笔在一开始的平移时画出了一条细线。
因为注释了penup()后,画笔不会抬起,每次移动都相当于画线。
2.4 turtle库语法元素分析[2.11]:1 2 import turtle turtle.fd(50)[2.12]:1 2 import turtle turtle.circle(40)[2.13]:1 2 3 4 5 6 7 8 import turtlefor i in range(9):turtle.circle(10 + 10*i) turtle.right(90)turtle.penup()turtle.fd(10)turtle.pendown()turtle.left(90)程序练习题[2.1]: 将原程序改写为两个独立程序,如下:1 2 3temp = eval(input("请直接输入华氏温度值: ")) C = (temp - 32)/1.8print("转换后的温度是{}C".format(int(C)))1 2 3temp = eval(input("请直接输入摄氏温度值: ")) F = 1.8*temp + 32print("转换后的温度是{}F".format(int(F)))[2.2]:1 2 3 4 try:while 1:money=input("请输入要转换的金额,例子:$2/¥6的形式,e退出:") mode=money[0]5 6 7 8 910111213141516171819 if mode == '$':val=eval(money[1:])trans=val*6print('{}->>¥{}'.format(money,trans)) elif mode == '¥':val=eval(money[1:])trans=val/6print('{}->>${}'.format(money,trans)) elif mode =='e':breakelse:print("您输入的有误")except:print("您输入的有误")[2.3]:1 2 3 4 5 6 7 8 91011121314151617 import turtledef Snake1(rader, angle, leng):for i in range(leng):turtle.circle(rader, angle) turtle.circle(-rader, angle)def Snake2(rader,angle, neck):turtle.circle(rader, angle/2)turtle.fd(rader)turtle.circle(neck + 1, 180)turtle.fd(rader * 2/3)def main():turtle.setup(1200, 200, 0, 0)'''turtle.seth(180)turtle.up()181920212223242526272829303132333435 fd(400)turtle.seth(0)turtle.pd()'''size = 30turtle.pensize(size)turtle.seth(-40)turtle.pencolor("yellow") Snake1(40, 80, 1)turtle.pencolor("black") Snake1(40, 80, 1)turtle.pencolor("pink")Snake1(40, 80, 1)turtle.pencolor("blue")Snake1(40, 80, 1)turtle.pencolor("red")Snake2(40, 80, size/2) main()[2.4]:1 2 3 4 5 6 7 from turtle import * setup(500,500)fd(100)left(120)fd(100)left(120)fd(100)[2.5]:1 2 3 4 from turtle import * fd(100)seth(-120)fd(100)5 6 7 8 91011121314 seth(120) fd(100) seth(60)fd(100) seth(-60) fd(200) seth(-180) fd(200) seth(60)fd(100)[2.6]:1 2 3 4 5 6 7 8 9 10 from turtle import * setup(500,500)for i in range(4):up()fd(20)pd()fd(160)up()fd(20)right(90)[2.7]:1 2 3 4 5 6 7 8 9 from turtle import * up()setpos(-150,20)down()left(30)fd(100)left(60)for i in range(5):fd(100)101112131415161718 right(120)fd(100)left(60)fd(100)right(120)fd(100)for n in range(6): fd(100)right(60)[2.8]:1 2 3 4 5 6 7 8 91011 from turtle import * left(90)length = 5speed = 20for i in range(30): fd(length)left(90)fd(length)left(90)length += 5fd(length)[2.9]:1 2 3 4 5 6 7 8 9 from turtle import * setupcolormode(255)pensize(20)pencolor(255,255,255) speed(1000)def changedraw():penr=254for i in range(100):1011121314151617 circle(100,1)penr-=1pencolor((penr,penr-1,penr-2)) for u in range(100):circle(-100,1)penr-=1pencolor((penr,penr-1,penr-2)) changedraw()第3章基本数据类型3.1 数字类型[3.1]: 因为Python的整数取值不设限,只受配置影响;浮点数却有限制,最大浮点数是1.7976931348623157e+308。