y):print("较大数为:",x)else:print("较大数为:",y);2.写一个算法(流程图和python程序):输入三个数,输出其最"/> y):print("较大数为:",x)else:print("较大数为:",y);2.写一个算法(流程图和python程序):输入三个数,输出其最"/>
首页 华东师范大学Python习题选编

华东师范大学Python习题选编

举报
开通vip

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

华东师范大学Python习题选编
Python习题选编华东师大信息学院计算中心一.程序结构与算法部分:1.编写一个python程序,输入两个数,比较它们的大小并输出其中较大者。参考代码:x=int(input("Pleaseenterfirstinteger:"))y=int(input("Pleaseentersecondinteger:"))if(x==y):print("两数相同!")elif(x>y):print("较大数为:",x)else:print("较大数为:",y);2.写一个算法( 流程 快递问题件怎么处理流程河南自建厂房流程下载关于规范招聘需求审批流程制作流程表下载邮件下载流程设计 图和python程序):输入三个数,输出其最大者。参考代码:a,b,c=3,4,5ifa<=b:ifc100:grade="输入错误!"elifscore>=90:grade='A'elifscore>=80:grade='B'elifscore>=70:无需写小于什么什么的因为elif就已经是除了这个之外的了grade='C'elifscore>=60:grade='D'elifscore>=0:grade='E'else:grade="输入错误!"print(grade)7.猜数游戏。预设一个0~9之间的整数,让用户猜一猜并输入所猜的数,如果大于预设的数,显示“太大”;小于预设的数,显示“太小”,如此循环,直至猜中该数,显示“恭喜!你猜中了!”。参考答案:num=7whileTrue:guess=int(input('请输入你猜的数(0~9):'))ifguess==num:print("恭喜!你猜中了!")break;elifguess>num:print("太大")else:print("太小")8.输入一个数,判断这个数是否为素数,并输出判断结果。(所谓素数,是指除了1和该数本身之外,不能被其它任何整数整除的数。下图为参考流程图)参考答案:importmathn=int(input("请输入一个数:"))x=int(math.sqrt(n))i,w=2,0foriinrange(2,x+1):ifn%i==0:w=1ifw==1:print(n,"不是素数。")else:print(n,"是素数。")或importmathn=int(input('请输入一个数:'))i,w=2,0whilei<=int(math.sqrt(n))andw==0:ifn%i==0:w=1breakelse:i=i+1ifw==0:print(n,"是素数!")else:print(n,"不是素数!")或importmathn=int(input('请输入一个数:'))i=2whilei<=int(math.sqrt(n)):ifn%i==0:print(n,"不是素数!")breakelse:i=i+1else:print(n,"是素数!")9.一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如,6的因子为1、2、3,而6=1+2+3,因此6是完数。编程,找出1000之内的所有完数,并输出该完数及对应的因子。(枚举法)参考答案:m=1000forainrange(2,m+1):s=aL1=[]foriinrange(1,a):ifa%i==0:s-=iL1.append(i)ifs==0:print("完数:%d,因子包括:"%a,end="")forjinrange(1,len(L1)):为啥不是0开头的print("%d"%L1[j],end=",")print("\n")10.编程,解决猴子吃桃问题。猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想吃时,只剩下一个桃子了。求第一天共摘多少个桃子。(迭代法)参考答案:day=9x=1whileday>0:x=(x+1)*2day-=1print("total=",x)二.文件部分:1.在当前目录下有一个文件名为temp.txt的文件,存放着上海从2014年3月10日(周一)到3月16日(周日)间一周的最高和最低气温(单位为摄氏度)。其中,第一行为最高气温,第二行为最低气温。编程,找出这一周中第几天最热(按最高气温计算)?最高多少度?这一周中第几天最冷(按最低气温计算)?最冷多少度?参考答案:flname="temp.txt"f=open(flname)ht=(f.readline()).strip()暂且先只读一行L1=list(ht.split(','))lt=(f.readline()).strip()此处再读第二行L2=list(lt.split(','))f.close()foriinrange(len(L1)):L1[i]=int(L1[i])L2[i]=int(L2[i])maxVal=L1[0]可用max.(L1)maxDay=0minVal=L2[0]minDay=0foriinrange(1,len(L1)):ifL1[i]>maxVal:maxVal=L1[i]maxDay=iifL2[i] 标准 excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载 是连续5天日均气温超过10℃,根据这一周的气象数据是否能判断上海已经入春?参考答案:flname="temp.txt"f=open(flname)ht=(f.readline()).strip()L1=list(ht.split(','))lt=(f.readline()).strip()L2=list(lt.split(','))f.close()不要忘了!!!!!!!!!L3=[]foriinrange(len(L1)):L1[i]=int(L1[i])L2[i]=int(L2[i])L3.append(int((L1[i]+L2[i])/2))屌炸天!!!!sum=0k=0foriinrange(len(L3)):sum=sum+L3[i]ifL3[i]>=10:k+=1else:k=0这还要写吗???avg=int(sum/len(L3))print("周平均气温为:",avg)ifk>=5:print("上海这周已入春。")else:print("上海这周未入春。")3.当前目录下有一个文件名为score1.txt的文本文件,存放着某班学生的计算机课成绩,共有学号、平时成绩、期末成绩三列。请根据平时成绩占40%,期末成绩占60%的比例计算总评成绩(取整数),并分学号、总评成绩两列写入另一文件score2.txt。同时在屏幕上输出学生总人数,按总评成绩计90以上、80~89、70~79、60~69、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,0]count=0sum=0while(len(line)!=0):#print(line)L1=line.split()f2.write(L1[0]+"")f_score=int(int(L1[1])*0.4+int(L1[2])*0.6)if90=80:L2[1]+=1eliff_score>=70:L2[2]+=1eliff_score>=60:L2[3]+=1else:L2[4]+=1count+=1sum+=f_scoref2.write(str(f_score)+"\n")??????????????line=(f.readline()).strip()f.close()f2.close()avg_score=int(sum/count)print("学生总人数为%d,按总评成绩计,90以上%d人、80~89间%d人、70~79间%d人、60~69间%d人、60分以下%d人。班级总平均分为%d分。"%(count,L2[0],L2[1],L2[2],L2[3],L2[4],avg_score))或f=open("score1.txt")a=f.readlines()dela[0]L3=[]forlineina:line=line.strip()L1=line.split()f_score=int(int(L1[1])*0.4+int(L1[2])*0.6)L3.append([L1[0],f_score])f.close()c=[0,0,0,0,0]count=0sum=0f2=open("score2.txt",'w')f2.write("学号平均成绩\n");forL2inL3:if90=80:c[1]+=1elifL2[1]>=70:c[2]+=1elifL2[1]>=60:c[3]+=1else:c[4]+=1count+=1sum+=L2[1]f2.write(L2[0]+""+str(L2[1])+"\n")f2.close()avg_score=int(sum/count)print("学生总人数为%d,按总评成绩计,90以上%d人、80~89间%d人、70~79间%d人、60~69间%d人、60分以下%d人。班级总平均分为%d分。"%(count,c[0],c[1],c[2],c[3],c[4],avg_score))4.当前目录下有一个文本文件sample12.txt,其内容包含小写字母和大写字母。请将该文件复制到另一文件sample12_copy.txt,并将原文件中的小写字母全部转换为大写字母,其余格式均不变。参考答案:f=open("sample12.txt")L1=f.readlines()f2=open("sample12_copy.txt",'w')forlineinL1:f2.write(line.upper())f.close()f2.close()5.当前目录下有一个文件名为class_score.txt的文本文件,存放着某班学生的学号、数学课成绩(第2列)和语文课成绩(第3列)。请编程完成下列要求:(1)分别求这个班数学和语文的平均分(保留1位小数)并输出。(2)找出两门课都不及格(<60)的学生,输出他们的学号和各科成绩。(3)找出两门课的平均分在90分以上的学生,输出他们的学号和各科成绩。建议用三个函数分别实现以上要求。参考答案:defoutput_avg(L):sum1,sum2=0,0forlineinL:L1=line.strip().split()????????sum1+=int(L1[1])sum2+=int(L1[2])count=len(L)avg1=round(sum1/count,1)avg2=round(sum2/count,1)print("这个班的数学平均分为:%4.1f,语文平均分为:%4.1f"%(avg1,avg2))defoutput_notpass(L):print("两门课均不及格的学生学号及数学、语文成绩为:")forlineinL:L1=line.strip().split()ifint(L1[1])<60andint(L1[2])<60:print(line)defoutput_good(L):print("两门课平均分在90分以上的学生学号及数学、语文成绩为:")forlineinL:L1=line.strip().split()f_score=round((int(L1[1])+int(L1[2]))/2)iff_score>=90:print(line)f=open("class_score.txt")L=f.readlines()delL[0]output_avg(L)output_notpass(L)output_good(L)算法分析与设计部分编程,从键盘接收若干个整数(直接输入回车 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf 示结束),用冒泡法或选择法进行排序(从小到大),并将排序结果在屏幕上输出。参考答案:选择排序:defbubble(List):num=len(List)foriinrange(0,num-1):forjinrange(i+1,num):#对应列表中的位置ifList[i]>List[j]:List[i],List[j]=List[j],List[i]returnListL1=[]num_str=input('请输入一个需排序的整数:')whilelen(num_str)!=0:L1.append(int(num_str))num_str=input('请输入一个需排序的整数:')print('排序后结果:',bubble(L1))或冒泡排序:defbubble(List):foriinrange(0,len(List)-1):forjinrange(len(List)-1,i,-1):ifList[j-1]>List[j]:List[j-1],List[j]=List[j],List[j-1]returnListL1=[]num_str=input('请输入一个需排序的整数:')whilelen(num_str)!=0:L1.append(int(num_str))num_str=input('请输入一个需排序的整数:')print('排序后结果:',bubble(L1))2.当前目录下有一个文件名为score2.txt的文本文件,存放着某班学生的计算机课成绩,共有学号、总评成绩两列。请查找最高分和最低分的学生,并在屏幕上显示其学号和成绩。参考答案:f=open("score2.txt")a=f.readlines()dela[0]L2=[]L3=[]forlineina:line=line.strip()L1=line.split()L2.append(L1[0])L3.append(L1[1])f.close()maxScore=L3[0]maxIndex=0minScore=L3[0]minIndex=0foriinrange(1,len(L3)):ifL3[i]>maxScore:maxScore=L3[i]maxIndex=iifL3[i]='a'ands[i]<='z')or(s[i]>='A'ands[i]<='Z'):letters+=1elifs[i]=='':space+=1elifs[i]>='0'ands[i]<='9':digit+=1else:other+=1print("字母数:%d\n空格数:%d\n数字数:%d\n其他字符数:%d\n"%(letters,space,digit,other))或p=input('请输入一行字符:')a,b,c,d=0,0,0,0foriinp:if((i<='Z'andi>='A')or(i<='z'andi>='a')):a+=1elif(i==''):b+=1elif(i>='0'andi<='9'):c+=1else:d+=1print('英文字母的个数为:'+str(a))print('空格的个数为:'+str(b))print('数字的个数为:'+str(c))print('其他字符的个数为:'+str(d))或letter,space,digit,other=0,0,0,0s=input('inputastring:')forcins:ifc.isalpha():letter+=1elifc.isspace():space+=1elifc.isdigit():digit+=1else:other+=1print("字母数:%d\n空格数:%d\n数字数:%d\n其他字符数:%d\n"%(letter,space,digit,other))函数部分:写一判素数的函数,在主函数中输入一个整数,调用该函数进行判断并输出结果。参考答案:defshushu(n):importmathi,w=2,0ifn<=1:w=1whilei<=int(math.sqrt(n))andw==0:ifn%i==0:w=1breakelse:i=i+1returnwn=int(input('n='))ifshushu(n)==0:print(n,"是素数!")else:print(n,"不是素数!")当前目录下有一个文件名为score3.txt的文本文件,存放着某班学生的学号和其两门专业课的成绩。分别用函数实现以下功能:定义函数function1,计算每个学生的平均分(取整数),并将所有学生的学号和平均分在屏幕上输出。(函数参数为要读取文件的文件名)deffunction1(flname):#函数代码function1("c:\\test\\score3.txt")参考答案:deffunction1(flname):f=open(flname)a=f.readlines()dela[0]L3=[]forlineina:line=line.strip()L1=line.split()avg_score=int((int(L1[1])+int(L1[2]))/2)L3.append([L1[0],avg_score])f.close()print("学号平均分")forL2inL3:print(L2[0]+""+str(L2[1]))定义函数calAvg(),计算某一门课程的平均分(函数参数为某门课成绩对应的列表名,返回值为该门课的平均分)defcalAvg(L):#函数代码f=open("c:\\test\\score3.txt")a=f.readlines()dela[0]L2=[]L3=[]forlineina:line=line.strip()L1=line.split()L2.append(int(L1[1]))L3.append(int(L1[2]))f.close()print("专业课1的总平均分为",calAvg(L2))print("专业课2的总平均分为",calAvg(L3))参考答案:defcalAvg(L):sum,count=0,0forscoreinL:sum+=scorecount+=1avg_score=int(sum/count)returnavg_score用函数或函数的递归实现求n!的算法。(主程序已给出)。deffact(n)://函数代码n=int(input("Calculaten!Entern="))print(n,'!=',fact(n))参考答案:deffact(n):value=1forcountinrange(1,n+1):value*=countreturnvalue或deffact(n):ifn==1:value=1else:value=n*fact(n-1)returnvalue程序复杂度为O(n).4.主程序中已有一个排好序的列表,请编写函数insertList,将从键盘接收的整数按原来从小到大的排序规律插入到该列表中。definsertList(L1,x):#函数代码L1=[1,4,6,9,13,16,28,40,100]x=int(input('请输入一个要插入的整数:'))insertList(L1,x)print(L1)参考答案:definsertList(L1,x):ifx>L1[len(L1)-1]:L1.append(x)returnforiinrange(0,len(L1)):ifx
本文档为【华东师范大学Python习题选编】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: ¥12.0 已有0 人下载
最新资料
资料动态
专题动态
个人认证用户
爱笑的小黑贼
暂无简介~
格式:doc
大小:55KB
软件:Word
页数:19
分类:
上传时间:2022-07-08
浏览量:49