ImageVerifierCode 换一换
格式:DOCX , 页数:26 ,大小:41.90KB ,
资源ID:5298455      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/5298455.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(Python习题选编.docx)为本站会员(b****3)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

Python习题选编.docx

1、Python习题选编Python习题选编 华东师大信息学院计算中心一程序结构与算法部分:1。 编写一个python程序,输入两个数,比较它们的大小并输出其中较大者。参考代码:x = int(input(Please enter first integer: ))y = int(input(”Please enter second integer: ”))if (x = y): print(”两数相同!”)elif (x y): print(”较大数为:,x)else: print(较大数为:,y);2.写一个算法(流程图和python程序):输入三个数,输出其最大者。参考代码:a,b,c=3,

2、4,5if a = b: if c b: print (b是最大的数”) else: print (c是最大的数”)else: if c a: print (a是最大的数”) else: print (c是最大的数)3.使用Python编程,求1100间所有偶数的和。参考代码:sum=0for x in range(1,101): if x 2=0: print(x) sum=sum+xprint(累加和是:”,sum)4.用Python编写程序,输入一年份,判断该年份是否是闰年并输出结果。注:凡符合下面两个条件之一的年份是闰年.(1)能被4整除但不能被100整除。(2)能被400整除.参考代

3、码:year = int(input(”Please enter the year: ))if ((year%4=0 and year%100!=0) or (year%400=0)): print(year,is a leap year.”)else: print(year,”is not a leap year。”)5.用Python编程,假设一年期定期利率为3.25%,计算一下需要过多少年,一万元的一年定期存款连本带息能翻番?参考代码:cunkuan = 10000 本金10000元years=0while cunkuan 100: grade = 输入错误!elif score = 9

4、0: grade = Aelif score = 80: grade = Belif score = 70: grade = Celif score = 60: grade = Delif score = 0: grade = Eelse: grade = 输入错误!”print(grade)7.猜数游戏。预设一个09之间的整数,让用户猜一猜并输入所猜的数,如果大于预设的数,显示“太大”;小于预设的数,显示“太小”,如此循环,直至猜中该数,显示“恭喜!你猜中了!”.参考答案:num=7while True: guess=int(input(请输入你猜的数(09):)) if guess = n

5、um: print(恭喜!你猜中了!”) break; elif guess num: print(”太大”) else: print(”太小”)8.输入一个数,判断这个数是否为素数,并输出判断结果。(所谓素数,是指除了1和该数本身之外,不能被其它任何整数整除的数.下图为参考流程图)参考答案:import mathn=int(input(”请输入一个数:”)x=int(math.sqrt(n))i,w=2,0for i in range (2,x+1): if n%i=0: w=1if w=1: print(n,不是素数.)else: print(n,是素数.”)或import mathn=i

6、nt(input(请输入一个数:)i,w=2,0while i = int(math.sqrt(n) and w=0: if n%i = 0: w = 1 break else: i = i+1if w=0: print(n,”是素数!)else:print(n,不是素数!)或import mathn=int(input(请输入一个数:)i=2while i = 60: second = second-60 minute += 1minute+=5if minute = 60: minute = minute60 hour += 1if hour = 24: hour = 0print(d:d

7、:%d%(hour,minute,second))10.一个数如果恰好等于它的因子之和,这个数就称为“完数”.例如,6的因子为1、2、3,而6=1+2+3,因此6是完数。编程,找出1000之内的所有完数,并输出该完数及对应的因子。(枚举法)参考答案:m=1000for a in range(2,m+1): s=a L1= for i in range(1,a): if a%i=0: s-=i L1。append(i) if s=0: print(”完数:d,因子包括:”a,end=) for j in range(1,len(L1)): print(%d%L1j,end=”,) print(n

8、)11编程,解决猴子吃桃问题。猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个.到第10天早上想吃时,只剩下一个桃子了。求第一天共摘多少个桃子。(迭代法)参考答案:day=9x=1while day0: x=(x+1)*2 day-=1print(”total=”,x)二输入输出与文件部分:1. 编写一个python程序,输入两个数,输出两数之和。参考代码:x = int(input(”Please enter first integer: ))y = int(input(”Please e

9、nter second integer: )print(”The sum is:);print(x+y);2. 在当前目录下有一个文件名为temp.txt的文件,存放着上海从2014年3月10日(周一)到3月16日(周日)间一周的最高和最低气温(单位为摄氏度)。其中,第一行为最高气温,第二行为最低气温。编程,找出这一周中第几天最热(按最高气温计算)?最高多少度?这一周中第几天最冷(按最低气温计算)?最冷多少度?参考答案:flname=temp。txt”f=open(flname)ht=(f。readline())。strip()L1=list(ht。split(,)lt=(f.readline

10、().strip()L2=list(lt。split(,))f.close()for i in range(len(L1)): L1i=int(L1i) L2i=int(L2i)maxVal=L10maxDay=0minVal=L20minDay=0for i in range(1,len(L1)): if L1imaxVal: maxVal=L1i maxDay=i if L2iminVal: minVal=L2i minDay=iprint(这周第”+str(maxDay+1)+”天最热,最高+str(maxVal)+”摄氏度”)print(”这周第”+str(minDay+1)+”天最冷

11、,最低+str(minVal)+摄氏度)3在上题的基础上,求出全周的平均气温(这一周各天平均温度的平均值,取整数)。假设在气象意义上,入春标准是连续5天日均气温超过10,根据这一周的气象数据是否能判断上海已经入春?参考答案:flname=temp.txtf=open(flname)ht=(f.readline().strip()L1=list(ht。split(,))lt=(f.readline().strip()L2=list(lt.split(,))f.close()L3=for i in range(len(L1): L1i=int(L1i) L2i=int(L2i) L3。append

12、(int((L1i+L2i)/2)sum=0k=0for i in range(len(L3)): sum=sum+L3i if L3i=10: k+=1 else: k=0avg=int(sum/len(L3))print(”周平均气温为:”,avg)if k=5: print(上海这周已入春。)else:print(”上海这周未入春。)4当前目录下有一个文件名为score1。txt的文本文件,存放着某班学生的计算机课成绩,共有学号、平时成绩、期末成绩三列.请根据平时成绩占40,期末成绩占60%的比例计算总评成绩(取整数),并分学号、总评成绩两列写入另一文件score2。txt.同时在屏幕上

13、输出学生总人数,按总评成绩计90以上、8089、7079、6069、60分以下各成绩档的人数和班级总平均分(取整数)。参考答案:f=open(”score1。txt”)a=f.readline()line=(f.readline()。strip()f2=open(”score2.txt,w)f2。write(学号 平均成绩n”);L2=0,0,0,0,0count=0sum=0while (len(line) != 0): print(line) L1=line。split() f2。write(L10+” ) f_score=int(int(L11)0.4+int(L12)*0。6) if

14、90f_score=70: L22+=1 elif f_score=60: L23+=1 else: L24+=1 count+=1 sum+=f_score f2.write(str(f_score)+n”) line=(f。readline().strip()f.close()f2.close()avg_score=int(sum/count)print(”学生总人数为%d,按总评成绩计,90以上d人、8089间d人、7079间d人、6069间%d人、60分以下d人。班级总平均分为%d分。%(count,L20,L21,L22,L23,L24,avg_score))或f=open(”sco

15、re1.txt”)a=f.readlines()del a0L3=for line in a: line=line.strip() L1=line。split() f_score=int(int(L11)0。4+int(L12)*0.6) L3.append(L10,f_score)f。close()c=0,0,0,0,0count=0sum=0f2=open(”score2.txt,w)f2.write(”学号 平均成绩n”);for L2 in L3: if 90L21=80: c1+=1 elif L21=70: c2+=1 elif L21=60: c3+=1 else: c4+=1

16、count+=1 sum+=L21 f2.write(L20+” ”+str(L21)+”n)f2.close()avg_score=int(sum/count)print(学生总人数为%d,按总评成绩计,90以上%d人、8089间%d人、7079间%d人、6069间%d人、60分以下%d人。班级总平均分为d分。”(count,c0,c1,c2,c3,c4,avg_score)5当前目录下有一个文本文件sample12。txt,其内容包含小写字母和大写字母。请将该文件复制到另一文件sample12_copy。txt,并将原文件中的小写字母全部转换为大写字母,其余格式均不变。参考答案:f=ope

17、n(sample12。txt)L1=f。readlines()f2=open(sample12_copy。txt,w)for line in L1: f2。write(line。upper()f。close()f2.close()6当前目录下有一个文件名为class_score。txt的文本文件,存放着某班学生的学号、数学课成绩(第2列)和语文课成绩(第3列)。请编程完成下列要求:(1)分别求这个班数学和语文的平均分(保留1位小数)并输出。(2)找出两门课都不及格(60)的学生,输出他们的学号和各科成绩.(3)找出两门课的平均分在90分以上的学生,输出他们的学号和各科成绩。建议用三个函数分别实

18、现以上要求.参考答案:def output_avg(L): sum1,sum2=0,0 for line in L: L1=line.strip().split() sum1+=int(L11) sum2+=int(L12) count=len(L) avg1=round(sum1/count,1) avg2=round(sum2/count,1) print(这个班的数学平均分为:4.1f,语文平均分为:%4.1f%(avg1,avg2) def output_notpass(L): print(两门课均不及格的学生学号及数学、语文成绩为:) for line in L: L1=line.s

19、trip()。split() if int(L11)60 and int(L12)=90: print(line)f=open(”class_score。txt)L=f。readlines()del L0output_avg(L)output_notpass(L)output_good(L)三算法分析与设计部分1.编程,从键盘接收若干个整数(直接输入回车表示结束),用冒泡法或选择法进行排序(从小到大),并将排序结果在屏幕上输出。同时估计算法的复杂度。参考答案:选择排序:def bubble(List): num=len(List) for i in range(0,num1): for j i

20、n range(i+1,num): if ListiListj: Listi,Listj=Listj,Listi return ListL1=num_str=input(请输入一个需排序的整数:)while len(num_str) != 0: L1.append(int(num_str)) num_str=input(请输入一个需排序的整数:)print(排序后结果:, bubble(L1))或冒泡排序:def bubble(List): for i in range(0,len(List)-1): for j in range(len(List)1,i,-1): if Listj-1Lis

21、tj: Listj1,Listj=Listj,Listj1 return ListL1=num_str=input(请输入一个需排序的整数:)while len(num_str) != 0: L1。append(int(num_str)) num_str=input(请输入一个需排序的整数:)print(排序后结果:, bubble(L1))上述两个程序算法的时间复杂度均为O(n2).2从键盘接收一个正整数n,输出对应斐波那契(Fibonacci)数列的前n项(计算数列中某项的值请用递归函数实现)。另外,请指出所用算法的复杂度。有能力的同学还可进一步改进算法的效率。参考答案:def fib(n

22、): if n=0 or n=1: return n else: return fib(n1) + fib(n-2)n=int(input(n=)for i in range(n+1):print(fib(i),end= ”)算法时间复杂度为O(n2n)。可改进为:def fib(n,List): a,b=0,1 List。append(a) while b=n: List。append(b) a,b = b,a+bn=int(input(n=)L1=fib(n,L1)print(L1)算法的时间复杂性为O(n)3当前目录下有一个文件名为score2.txt的文本文件,存放着某班学生的计算机课

23、成绩,共有学号、总评成绩两列。请查找最高分和最低分的学生,并在屏幕上显示其学号和成绩。另外,请指出所用算法的复杂度。参考答案:f=open(”score2。txt)a=f。readlines()del a0L2=L3=for line in a: line=line。strip() L1=line.split() L2。append(L10) L3。append(L11)f。close()maxScore=L30maxIndex=0minScore=L30minIndex=0for i in range(1,len(L3): if L3imaxScore: maxScore=L3i maxIn

24、dex=i if L3i=0 and si=9: digit+=1 else: other+=1print(字母数:dn空格数:dn数字数:dn其他字符数:%dn”%(letters,space,digit,other))或p=input(请输入一行字符:)a,b,c,d=0,0,0,0for i in p: if((i=Z and i=A) or (i=z and i=a): a+=1 elif (i= ): b+=1 elif(i=0 and i=9): c+=1 else: d+=1print (英文字母的个数为:+str(a))print (空格的个数为:+str(b)print (数字的个数为:+str(c))print (其他字符的个数为:+str(d)或letter,space,digit,other=0,0,0,0s = input(input a string:)for c in s: if c.isalpha(): letter +=1 elif c.isspace(): space +=1 elif c.isdigit(): digit +=1 else: other +=1print(”字母数:dn空格数:%dn数字数:%dn其他字符数:dn%(letter,space,digit,other)2小王希望用电脑记录他每天掌握的

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1