《Python程序设计》题库.pdf

上传人:s****u 文档编号:12746599 上传时间:2020-05-21 格式:PDF 页数:15 大小:151.70KB
返回 下载 相关 举报
《Python程序设计》题库.pdf_第1页
第1页 / 共15页
《Python程序设计》题库.pdf_第2页
第2页 / 共15页
《Python程序设计》题库.pdf_第3页
第3页 / 共15页
点击查看更多>>
资源描述
Python 习题选编 华东师大信息学院计算中心 一程序结构与算法部分: 1. 编写一个 python 程序,输入两个数,比较它们的大小并输出其中较大者。 参考代码: x = int(input(Please enter first integer: ) y = int(input(Please enter secondinteger: ) if (x =y): print(两数相同! ) elif (x y): print(较大数为: ,x) else: print(较大数为: ,y); 2写一个算法(流程图和 python 程序) :输入三个数,输出其最大者。 参考代码: a,b,c=3,4,5 if a =b: if c b: print (b 是最大的数 ) else: print (c 是最大的数 ) else: if c = 90: grade = A elif score = 80: grade = B elif score = 70: 无需写小于什么什么的 因为 elif 就已经是除了这个之外的了 grade = C elif score = 60: grade = D elif score = 0: grade = E else: grade = 输入错误! print(grade) 7猜数游戏。预设一个 09 之间的整数,让用户猜一猜并输入所猜的数,如果 大于预设的数,显示“太大” ;小于预设的数,显示“太小” ,如此循环,直至猜 中该数,显示“恭喜!你猜中了! ” 。 参考答案: num=7 while True: guess=int(input(请输入你猜的数( 0 9) : ) if guess= num: print(恭喜!你猜中了! ) break; elif guess num: print(太大 ) else: print(太小 ) 8输入一个数,判断这个数是否为素数,并输出判断结果。 ( 所谓素数,是指除了 1 和该数本身之外,不能被其它任何整数整除的数。下 图为参考流程图 ) 参考答案: import math n=int(input( 请输入一个数 :) x=int(math.sqrt(n) i,w=2,0 for i in range (2,x+1): if n%i=0: w=1 if w=1: print(n,不是素数。 ) else: print(n,是素数。 ) 或 import math n=int(input( 请输入一个数: ) i,w=2,0 while i maxVal: 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.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=0 sum=0 while (len(line) != 0): #print(line) L1=line.split() f2.write(L10+ ) f_score=int(int(L11)*0.4+int(L12)*0.6) if 90=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 人、 80 89 间 %d 人、 70 79 间 %d 人、 60 69 间 %d 人 、 60 分 以 下 %d 人 。 班 级 总 平 均 分 为 %d 分 。 %(count,L20,L21,L22,L23,L24,avg_score) 或 f=open(score1.txt) a=f.readlines() del a0 L3= 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,0 count=0 sum=0 f2=open(score2.txt,w) f2.write( 学号 平均成绩 n); for L2 in L3: if 90=70: c2+=1 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 人、 80 89 间 %d 人、 70 79 间 %d 人、 60 69 间 %d 人 、 60 分 以 下 %d 人 。 班 级 总 平 均 分 为 %d 分 。 %(count,c0,c1,c2,c3,c4,avg_score) 4 当前目录下有一个文本文件 sample12.txt , 其内容包含小写字母和大写字母。 请将该文件复制到另一文件 sample12_copy.txt , 并将原文件中的小写字母全部 转换为大写字母,其余格式均不变。 参考答案: 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 分以上的学生, 输出他们的学号和各科成绩。 建议用三个函数分别实现以上要求。 参考答案: 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.strip().split() if int(L11)Listj: Listi,Listj=Listj,Listi return List L1= 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-1Listj: Listj-1,Listj=Listj,Listj-1 return List L1= num_str=input( 请输入一个需排序的整数: ) while len(num_str) != 0: L1.append(int(num_str) num_str=input( 请输入一个需排序的整数: ) print( 排序后结果 :, bubble(L1) 2当前目录下有一个文件名为 score2.txt 的文本文件,存放着某班学生的计 算机课成绩,共有学号、总评成绩两列。请查找最高分和最低分的学生,并在 屏幕上显示其学号和成绩。 参考答案: f=open(score2.txt) a=f.readlines() del a0 L2= L3= for line in a: line=line.strip() L1=line.split() L2.append(L10) L3.append(L11) f.close() maxScore=L30 maxIndex=0 minScore=L30 minIndex=0 for i in range(1,len(L3): if L3imaxScore: maxScore=L3i maxIndex=i if L3i=a and si=A and si=0 and si=0 and i=9): c+=1 else: d+=1 print (英文字母的个数为: +str(a) print (空格的个数为: +str(b) print (数字的个数为: +str(c) print (其他字符的个数为: +str(d) 或 letter,space,digit,other=0,0,0,0 s = 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 +=1 print( 字 母 数 : %dn 空 格 数 : %dn 数 字 数 : %dn 其 他 字 符 数: %dn%(letter,space,digit,other) 四 函数部分: 1. 写一判素数的函数,在主函数中输入一个整数,调用该函数进行判断并输出 结果。 参考答案: def shushu(n): import math i,w=2,0 if 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 return L1=1,4,6,9,13,16,28,40,100 x=int(input( 请输入一个要插入的整数: ) insertList(L1,x) print(L1)
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 考试试卷


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!