收藏 分销(赏)

华东师范大学Python习题选编.doc

上传人:精*** 文档编号:3073967 上传时间:2024-06-15 格式:DOC 页数:16 大小:96.50KB
下载 相关 举报
华东师范大学Python习题选编.doc_第1页
第1页 / 共16页
华东师范大学Python习题选编.doc_第2页
第2页 / 共16页
华东师范大学Python习题选编.doc_第3页
第3页 / 共16页
华东师范大学Python习题选编.doc_第4页
第4页 / 共16页
华东师范大学Python习题选编.doc_第5页
第5页 / 共16页
点击查看更多>>
资源描述

1、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,4,5if a = b: if c b

2、: 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整除。参考代码:year = int(input(Pl

3、ease 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 = 90: grade = Aelif score

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

5、s = num: 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=int(in

6、put(请输入一个数:)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 0: x=(x+1)*2 day-=1print(total=,x)二文件部分:1.在当前目录下有一个文件名为temp.txt的文件,存放着上海从2014年3月10日(周一)到3月16日(周日)间一周的最高和最低气温(单位为摄氏度)。其中,第一行为最

7、高气温,第二行为最低气温。编程,找出这一周中第几天最热(按最高气温计算)?最高多少度?这一周中第几天最冷(按最低气温计算)?最冷多少度?参考答案:flname=temp.txtf=open(flname)ht=(f.readline().strip() 暂且先只读一行L1=list(ht.split(,)lt=(f.readline().strip() 此处再读第二行L2=list(lt.split(,)f.close()for i in range(len(L1): L1i=int(L1i) L2i=int(L2i)maxVal=L10 可用max.(L1)maxDay=0minVal=L2

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

9、.txt。同时在屏幕上输出学生总人数,按总评成绩计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)*

10、0.6) if 90f_score=80: L21+=1 elif f_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

11、,L22,L23,L24,avg_score)或f=open(score1.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

12、elif L21=60: c3+=1 else: c4+=1 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)4当前目录下有一个文本文件sample12.txt,其内容包含小写字母和大写字母。请将该文件复制到另一文件sample12_copy.txt,并将原文件中的小写字

13、母全部转换为大写字母,其余格式均不变。参考答案:f=open(sample12.txt)L1=f.readlines()f2=open(sample12_copy.txt,w)for line in L1: f2.write(line.upper()f.close()f2.close()5当前目录下有一个文件名为class_score.txt的文本文件,存放着某班学生的学号、数学课成绩(第2列)和语文课成绩(第3列)。请编程完成下列要求:(1)分别求这个班数学和语文的平均分(保留1位小数)并输出。(2)找出两门课都不及格(60)的学生,输出他们的学号和各科成绩。(3)找出两门课的平均分在90分

14、以上的学生,输出他们的学号和各科成绩。建议用三个函数分别实现以上要求。参考答案: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(两门课均不及格的学生学号及数学、

15、语文成绩为:) for line in L: L1=line.strip().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

16、range(0,num-1): for j in 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(

17、len(List)-1,i,-1): if Listj-1Listj: Listj-1,Listj=Listj,Listj-1 return ListL1=num_str=input(请输入一个需排序的整数:)while len(num_str) != 0: L1.append(int(num_str) num_str=input(请输入一个需排序的整数:)print(排序后结果:, bubble(L1)2当前目录下有一个文件名为score2.txt的文本文件,存放着某班学生的计算机课成绩,共有学号、总评成绩两列。请查找最高分和最低分的学生,并在屏幕上显示其学号和成绩。参考答案:f=open(

18、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 maxIndex=i if L3i=a and si=A and si=0 and si=9: digit+=1 else: other+=1print

19、(字母数:%dn空格数:%dn数字数:%dn其他字符数:%dn%(letters,space,digit,other)或p=input(请输入一行字符:)a,b,c,d=0,0,0,0for i in p: if(i=A) or (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

20、 = 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)四 函数部分:1. 写一判素数的函数,在主函数中输入一个整数,调用该函数进行判断并输出结果。参考答案:def shushu(n): import mathi,w=2,0if n=1:w=1 while i L1len(L1)-1: L1.append(x) return for i in range(0,len(L1): if xL1i: L1.insert(i,x) break returnL1=1,4,6,9,13,16,28,40,100x=int(input(请输入一个要插入的整数:)insertList(L1,x)print(L1) (注:专业文档是经验性极强的领域,无法思考和涵盖全面,素材和资料部分来自网络,供参考。可复制、编制,期待你的好评与关注)

展开阅读全文
部分上传会员的收益排行 01、路***(¥15400+),02、曲****(¥15300+),
03、wei****016(¥13200+),04、大***流(¥12600+),
05、Fis****915(¥4200+),06、h****i(¥4100+),
07、Q**(¥3400+),08、自******点(¥2400+),
09、h*****x(¥1400+),10、c****e(¥1100+),
11、be*****ha(¥800+),12、13********8(¥800+)。
相似文档                                   自信AI助手自信AI助手
百度文库年卡

猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 教育专区 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服