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:ifc
答案:score=int(input('请输入成绩(0~100):'))ifscore>100: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]
标准 是连续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