Python编程基础与案例教程程显毅课后参考答案_第1页
Python编程基础与案例教程程显毅课后参考答案_第2页
Python编程基础与案例教程程显毅课后参考答案_第3页
Python编程基础与案例教程程显毅课后参考答案_第4页
Python编程基础与案例教程程显毅课后参考答案_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第第页习题1一、选择题BBCAD 二、填空题1.数字2.web3.单引号4.print()5.注释三、判断题FFFT四、简答题1.请简述变量的概念及作用。2.请简述字符串常量的使用规则。3.简要概括Python的特点及其应用方向。4.Python的应用方向习题2一、选择题DBACADBDC二、填空题1.3+(a+b)*22.((x+y)+z)*360-50*(c+d)3.94.python,5.x%2==0三、判断题TFFTTTF三、编程题1.参考代码四、编程题1.编写程序,实现输入用户姓名、年龄和地址,然后使用print()函数输出。2.编写程序,实现从键盘输入某商品的单价和数量,求出商品的总价并输出。a=float(input("请输入商品价格:"))b=int(input("请输入商品数量:"))c=a*bprint("商品总价为:",c)3.编写程序,根据输入的三角形的三条边长,输出三角形的面积。习题3一、选择题CDBCABDDDA二、填空题1.10182.x%3==0&x%5==03.False4.2010105.①a>b②b=t6.False7.elif8.多分支9.缩进10.分支嵌套三、判断题TTFFT四、编程题1.编写程序,实现判断用户输入账号、密码是否正确。提示:预先设定一个账号和密码,如果账号和密码都正确,就显示“HelloPython”,否则,显示账号或密码输入有误。name=input("请输入账号")password=input("请输入密码")name_1='12345'password_1='1234567'ifname!=name_1: print("输入的账号有误")elifpassword!=password_1: print("输入的密码有误")else: print("HelloPython")2.编写程序,输入年份,判断其是不是闰年。3.编写程序,随机产生一个0-300之间的整数,玩家竞猜,若猜中,则提示Bingo;若猜大了提示Toolarge;否则,提示Toosmall。4.请使用嵌套的if结构实现符号函数(signfunction),符号函数的定义如下:sgn5.编写程序,输入身高和体重,求身体质量指数BMI,并判断胖瘦。提示:输入身高(m)与体重(kg)两个数,计算BMI。计算公式是BMI=体重+身高2。BMI是目前国际上常用的衡量人体胖瘦程度及是否健康的一个标准。BMI的值在18.5~23.9之间算比较健康,比此值小则认为偏瘦,比此值大则认为偏胖。习题4一、选择题1.D 2.C 3.A 4.D 5.A6.B7.AB8.C9.D10.A二、填空题1.102.0136103.①1②i+1③i*j④print()4.①0②101③x5.12346.while7.①s②1③j④y⑤s8.m*n9.m+n10.15三、判断题TTFFFFFTTF四、编程题1.用以下程序实现5!,如何修改程序。S=0 foriinrange(5): S+=i print(S) 2.输出1/1+1/2+……1/10000的和。3.使用while循环输出2~100之间的素数(只能被1和自己整除的自然数)。i=2while(i<100):j=2while(j<=(i/j)):ifnot(i%j):breakj=j+1if(j>i/j):print(i,"是素数")i=i+14.用for循环实现案例4.3。5.编程实现,如下图形11111111112222222222333333333344444444446.编程实现,如下图形1234567891234567891234567891234567897.编程实现,如下图形 * *** ***** *******8.编程实现,如下图形9.验证“角谷猜想”。提示:“角谷猜想”是指将一个自然数按一个简单规则进行运算:若自然数为奇数,则乘3并加1;若自然数为偶数,则除以2,将得到的数继续重复按该规则运算,最终可得到1。10.编程输出以下图形习题5一、选择题1.C 2.C 3.A 4.D 5.B6.D 7.C 8.A9.A10.D二、填空题1.逗号2.Return3.不定长4.嵌套5.局部6.global7.758.549.13410.211.①形式参数②实际参数12.None13.递归14.3615.86三、判断题TFTTFFFTFFTT四、编程题1.验证200-300之间哥德巴赫猜想。不使用递归定义求阶乘函数。3.编程计算1!+2!+...+7!。4.编写函数,实现将十进制数转换为二进制数。defdec2bin(num):l=[]ifnum<0:return'-'+dec2bin(abs(num))whileTrue:num,remainder=divmod(num,2)l.append(str(remainder))ifnum==0:return''.join(l[::-1])dec=int(input("输入十进制数字:"))print("二进制数为:",dec2bin(dec))5.编写函数,接收两个正整数作为参数,返回一个元组,其中第一个元素为最大公约数,第二个元素为最小公倍数。defdemo(m,n): #求最大公约数和最小公倍数p=m*nwhilem%n!=0:m,n=n,m%nreturn(n,p//n)a=int(input('请输入其中一个整数:'))b=int(input('请输入另一个整数:'))c=demo(a,b)print(c)6.编写函数,求三个数中最大值。defgetMax():num1=int(input("请输入第1个整数:"))num2=int(input("请输入第2个整数:"))num3=int(input("请输入第3个整数:"))temp=0 #临时变量,存放中间产生的第2大数值ifnum1>num2:temp=num1else:temp=num2iftemp>num3:return"其中最大值为:"+str(temp)else:return"其中最大值为:"+str(num3)maxValue=getMax()print(maxValue)7.用递归方法计算s=1+2+3+…+n。deff(n): #定义递归函数ifn==1: #当n等于1时返回1return1else: #当n不为1是返回f(n-1)*nreturnf(n-1)+nn=int(input('请输出一个正整数:')) #输入一个整数print('s=1+2+…+n=',f(n)) #调用函数f并输出结果8.编写函数,判断一个整数是否为回文数,即正向和逆向都相同,如1234321。defis_palindrome(n):n=str(n)m=n[::-1]returnn==ma=int(input('请输入需要判断的整数:'))result=is_palindrome(a)print(result)习题6一、选择题1.C 2.A 3.B 4.C 5.A6.B 7.A 8.C 9.C 10.B二、填空题1.class2.self3.对象名4.父类 5.私有6.super()7.重写8.构造方法9.import10.@classmethod三、判断题FTFTT四、编程题1.编写海龟绘制正五角星程序,如图6.11。foriinrange(5):tb.forward(200)tb.right(144)2.编写海龟绘制正八边形程序。foriinrange(8):tb.forward(50)tb.right(360/8)3.海龟绘制如图6.12所示移动的正方形。importturtleastba=100tb.speed(0)forkinrange(a):foriinrange(4):tb.forward(50)tb.right(90)tb.right(5)4.海龟绘制如图6.13所示带填充五角星。图6.11五角星图6.12移动的正方形图6.13带填充的五角星importturtleastb#“海龟”画笔大小设置为5tb.pensize(5)#“海龟”画笔颜色设置为‘yello黄色’tb.pencolor("yellow")#设置填充颜色为#fed71a'佛手黄'tb.fillcolor("red")#开始填充颜色tb.begin_fill()foriinrange(5):tb.forward(200)tb.right(144)#结束填充颜色tb.end_fill()5.设计一个Person(人)类,包括姓名、年龄和血型等属性。编写构造方法用于初始化每个人的具体属性值,编写detail方法用于输出每个实例具体的值。请编写程序验证类的功能。classPerson:def__init__(self,name,age,blood_type):=nameself.age=ageself.blood_type=blood_typedefdetail(self):temp="iam%s,age%s,bloodtype%s"%(,self.age,self.blood_type)print(temp)zhangsan=Person('张三',18,'A')lisi=Person('李四',73,'AB')yangwu=Person('杨五',84,'A')zhangsan.detail()lisi.detail()yangwu.detail()6.设计一个Circle(圆)类,包括半径和颜色属性,编写构造方法和其他方法,计算圆的周长和面积。请编写程序验证类的功能。classCircle:def__init__(self,radius,color):self.radius=radiusself.color=colordefperimeter(self):return3.14*2*self.radiusdefarea(self):return3.14*self.radius*self.radiuscircle=Circle(5,"蓝色")print(circle.perimeter())print(circle.area())7.编写程序输出如下信息,要求通过面向对象程序设计方法进行设计。丽丽,10岁,女,喜欢上语文课丽丽,10岁,女,喜欢看电影丽丽,10岁,女,喜欢打篮球强强,12岁,男,喜欢上语文课强强,12岁,男,喜欢看电影强强,12岁,男,喜欢打篮球classFoo:def__init__(self,name,age,gender):=nameself.age=ageself.gender=genderdefyuwen(self):print("%s,%s岁,%s,喜欢上语文课"%(,self.age,self.gender))defdianying(self):print("%s,%s岁,%s,喜欢看电影"%(,self.age,self.gender))deflanqiu(self):print("%s,%s岁,%s,喜欢打篮球"%(,self.age,self.gender))xiaoming=Foo('丽丽',10,'女')xiaoming.yuwen()xiaoming.dianying()xiaoming.lanqiu()laoli=Foo('强强',12,'男')laoli.yuwen()laoli.dianying()laoli.lanqiu()8.创建三个游戏人物,分别是:(1)小A,女,18,初始战斗力1000(2)小B,男,20,初始战斗力1800(3)小C,女,19,初始战斗力2500游戏场景,分别是:(1)草丛战斗,消耗200战斗力(2)自我修炼,增长100战斗力(3)多人游戏,消耗500战斗力请编写程序模拟游戏场景。classPerson:def__init__(self,na,gen,age,fig):=naself.gender=genself.age=ageself.fight=figdefgrassland(self):self.fight=self.fight-200defpractice(self):self.fight=self.fight+100defincest(self):self.fight=self.fight-500defdetail(self):temp="姓名:%s;性别:%s;年龄:%s;战斗力:%s"%(,self.gender,self.age,self.fight)print(temp)######################开始游戏#####################a=Person('小A','女',18,1000)#创建小Ab=Person('小B','男',20,1800)#创建小Bc=Person('小C','女',19,2500)#创建小Ca.incest()#小A参加一次多人游戏b.practice()#小B我修炼了一次c.grassland()#小C参加一次草丛战斗#输出当前所有人的详细情况a.detail()b.detail()c.detail()9.设计一个Animal(动物)类,包括颜色属性和叫方法。再设计一个Fish(鱼)类,包括尾巴和颜色两个属性,以及叫方法。要求:Fish类继承自Animal类,重写构造方法和叫方法。classAnimal(object):def__init__(self,color):self.color=color#颜色defcall(self):print("动物叫")classFish(Animal):def__init__(self,color):super().__init__(color)self.tail=Truedefcall(self):print("-%s的鱼在吐泡泡-"%self.color)fish=Fish("蓝色")fish.call()习题7一、选择题3.D4.B5.B6.C7.C8.B 9.A 10.C 11.C 12.A13.D14.A15.A二、填空题1.list[::-1]2.[1,2,3,4,5,6,7]3.[8,7,6,5,4,3,2]4.05.-16.notin7.sort8.圆括号9.False10.5.3 [4,5,6,7]7 11.812.大括号 键 键13.keys()14.{'name':'none','age':'none','weigh':'none','height':'none'}15.97三、判断题FTTTTTFFTF四、编程题1.例7.1模拟运算器,用循环不断测试,直到你输入q退出,如何修改程序。2.创建一个叫作years_list的列表,存储从你出生的那一年到五岁那一年的年份。例如,如果你是1980年出生的,那么你的列表应该是years_list=[1980,1981,1982,1983,1984,1985]。(1)在years_list中,哪一年是你三岁生日那年?别忘了,你出生的第一年算0岁。(2)在years_list中,哪一年你的年纪最大?创建一个名为things的列表,包含以下三个元素:"mozzarella"、"cinderella"和"salmonella"。3.利用【案例7.4】数据,完成以下问题:(1)刘岩老师教什么课(2)显示全部课程名(3)显示3号课程信息(4)刘岩老师教的4学分课程有哪些?c[c['Tname']=='刘岩'][['Cname']](5)查询数据库课程先选号(6)按学号统计选课人数(7)按学号统计平均分(8)没有选课的学生姓名(9)李勇的"数据库"成绩4.参考代码第一种方法:arr=[1,2,3,4,5,6]arr.reverse()print(arr)第二种方法:arr=[1,2,3,4,5,6]arr.sort(reverse=True)print(arr)5.参考代码方法一:arr=[]length=int(input("请输入数字的总个数(必须为奇数):"))i=0whilei<length:num=int(input("输入第%d个数字:"%(i+1)))arr.append(num)i+=1arr.sort()index=int(length/2)print(arr[index])方法二:arr=input("请您输入奇数个整数,用空格隔开:")arr=arr.split()arr.sort()index=len(arr)print(arr[int(index/2)])6.参考代码方法一:result=""myStr=input("请输入字符串:")arr=list(myStr)last=arr[-1]arr.insert(0,last)fornewinarr:result=result+newprint(result[:-1])方法二:myStr=input("请输入字符串:")last=myStr[-1]print(last+myStr[:-1])7.参考代码arr=[12,3,62,7,91,67,27,45,6]forelementinarr:tag=True#质数大于1ifelement>1:#查看因子foriinrange(2,element):if(element%i)==0:tag=Falsebreakif(tag==True):arr.remove(element)print(arr)8.参考代码a=[[1,2,3],[4,5,6],[7,8,9]]result1=0result2=0foriinrange(3):forjinrange(3):if(i==j):result1+=a[i][j]if(i+j==2andi!=j):result2+=a[i][j]print('两条对角线元素之和为:',result1+result2)9.参考代码#创建一个学生字典student_class_dict={'Wangming':['math','art'],'Luhong':['biology','geography','music']}print(student_class_dict)forkey,valueinstudent_class_dict.items(): print("学生姓名为:"+key+",选择的课程为:"+str(value))10.参考代码dic={}i=0whilei<3:number=input("输入学生学号:")name=input("输入学生姓名:")dic.__setitem__(number,name)i+=1print("排序前:%s"%dic)defdict2list(dic:dict):'''将字典转化为列表'''keys=dic.keys()vals=dic.values()lst=[(key,val)forkey,valinzip(keys,vals)]returnlstnew=sorted(dict2list(dic),key=lambdax:x[0],reverse=False)print("排序后:%s"%new)习题8一、选择题1.B2.D3.A4.C5.A6.A7.A8.D9.B10.C11.D12.C13.B14.D 15.D 15.B 17.C 18.B二、填空题1.''2.23.‘nhy’4.__Python!__5.'5.22,78,hello'6.'你好,张三,你的考研成绩是203元!,排名第15'7.08.‘’.join(list)9.a[bcd]e10.'45'10.'45'11.'helloworld' 'd' 'llo' 'hlod' 'lrowolleh'12.'PYTHONSTRING' 'pythonstring' 10 'PythonStrgni'13.I'mlearning14.\Python.\15.\\\n\\16.r三、判断题FTTTF四、1.参考代码letter=input("pleaseinput:")ifletter=='S':print('pleaseinputsecondletter:')letter=input("pleaseinput:")ifletter=='a':print('Saturday')elifletter=='u':print('Sunday')else:print('dataerror')elifletter=='F':print('Friday')elifletter=='M':print('Monday')elifletter=='T':print('pleaseinputsecondletter')letter=input("pleaseinput:")ifletter=='u':print('Tuesday')elifletter=='h':print('Thursday')else:print('dataerror')elifletter=='W':print('Wednesday')else:print('dataerror')2.参考代码test_str="02101HelloPython10310"print(test_str.strip('0123456789'))3.参考代码x="iamateacher,iamman,andiam38yearsold.Iamnotabusinessman."x=x.replace('i','I')x=x.replace('i','I')print(x)习题9一、选择题1.D 2.B 3.C 4.A 5.B6.B 7.C 8.A9.B10.C二、填空题1.close()2.列表3.tell()4.file.seek(10)5.os.getcwd()6.writelines()7.with8.gmtime()或localtime()9.数据交换10.逗号或其他符号分隔三、判断题TFTFT四、编程题1.参考代码f=open("1.txt","r")content=f.read()list_1=content.split()foriinrange(len(list_1)): list_1[i]=int(list_1[i])list_1.sort()print(list_1)f.close()2.参考代码fp=open('2.txt','w')string=input('pleaseinputastring:\n')string=string.upper()fp.write(string)fp=open('2.txt','r')print(fp.read())fp.close()3.参考代码fp=open('test1.txt')a=fp.read()fp.close()fp=open('test2.txt')b=fp.read()fp.close()fp=open('test3.txt','w')l=a+bfp.write(l)fp.close()习题10一、选择题1.C 2.A 3.C 4.B 5.B6.D 7.C 8.A 9.D 10.A二、填空题1.Exception2.IndexError3.assert4.except5.raise6.出错啦!文件已经关闭!7.try8.finally9.else10.异常的原因三、判断题FFFTFTFFTF四、编程题1.参考代码deffunc(filename):try:fil=open(filename)exceptExceptionaserr:print(err)else:print(fil.read())fil.close()2.参考代码deffunc(listinfo):try:result=list(filter(lambdak:k<100andk%2==0,listinfo))exceptExceptionaserr:returnerrelse:returnresultlistinfo=[133,88,33,22,44,11,44,55,33,22,11,11,444,66,555]asserttype(func(listinfo))==listassertfunc(listinfo)==[88,22,44,44,22,66]3.参考代码classMyError(Exception):def__init__(self,stri):self.leng=len(stri)defprocess(self):ifself.leng<5:return'Theinputisoflength%s,expectingatleast5!'%self.lengelse:return'Printsuccess!'try:a=input('请输出字符串!')raiseMyError(a)exceptMyErrorase:print(cess())4.参考代码classHeightException(Exception):passtry:height=int(input("请输入您的身高:"))ifheight<30orheight>250:raiseHeightExceptionweight=int(input("请输入您的体重:"))weightS=height-100ifweight>weightSandweight-weightS<0.05*weightS:print("体重达标")elifweight<weightSandweightS-weight<0.05*weightS:print("体重达标")else:print("体重不达标")exceptHeightException:print("您输入的身高有误")习题11一、选择题1.C 2.D 3.A 4.D5.D6.二、填空题1.requests.get()函数2.find_all()方法3.爬虫三、判断题TTFFT四、编程题1.参考代码importrequests #导入requests库importre #导入re模块#定义一个getHtml()函数,根据填写的url参数获取数据defgetHtml(url):#异常处理try:r=requests.get(url) #使用get函数打开指定的urlr.raise_for_status() #如果状态不是200,则引发异常r.encoding='utf-8' #更改编码方式returnr.text #返回页面内容except:return"" #发生异常返回空字符#定义一个getImg()函数,根据填写的html参数获取图片并存储defgetImg(html):reg=r'src="(.+?\.gif)"' #定义正则表达式imglist=re.findall(reg,html) #查找页面中所有符合条件的字符串print(imglist) #输出列表结果i=0 #定义i用于给下载的图片命名forurlinimglist: #遍历withopen(str(i)+".gif","wb")asfd: #以写入方式打开二进制文件#路径前加上“”response=requests.get("/"+url) #获取内容fd.write(response.content) #写入文件print('图片',i,"保存成功\n") #输出提示信息i+=1 #i加1html=getHtml("/") #调用获取页面内容函数getImg(htm

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论