华东师范大学Python习题选编

xiaoxiao 13天前 19

Python习题选编 
 
 
 
 
 
 
 
 
 
 
 
华东师大信息学院计算中心 
一.程序结构与算法部分: 
1. 编写一个python程序,输入两个数,比较它们的大小并输出其中较大者。 参考代码: 
x = int(input(\y = int(input(\if (x == y): 
    print(\两数相同!\elif (x > y): 
    print(\较大数为:\else:     
    print(\较大数为:\
 
2.写一个算法(流程图和python程序):输入三个数,输出其最大者。 
参考代码:  
a,b,c=3,4,5 if a  100: 
    grade = \输入错误!\elif score >= 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.猜数游戏。预设一个0"9之间的整数,让用户猜一猜并输入所猜的数,如果大于预设的数,显示“太大”;小于预设的数,显示“太小”,如此循环,直至猜中该数,显示“恭喜!你猜中了!”。 参考答案: 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 0:     x=(x 1)*2     day-=1 print(\
 
二.文件部分: 
1. 在当前目录下有一个文件名为temp.txt的文件,存放着上海从2014年3月10日(周一)到3月16日(周日)间一周的最高和最低气温(单位为摄氏度)。其中,第一行为最高气温,第二行为最低气温。编程,找出这一周中第几天最热(按最高气温计算)?最高多少度?这一周中第几天最冷(按最低气温计算)?最冷多少度? 参考答案: 
flname=\f=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)):     L1[i]=int(L1[i])     L2[i]=int(L2[i]) 
maxVal=L1[0]                       可用max.(L1) maxDay=0 minVal=L2[0] minDay=0 
for i in range(1,len(L1)):     if L1[i]>maxVal: 

123
        maxVal=L1[i]         maxDay=i     if L2[i]=10:         k =1     else: 
        k=0    这还要写吗??? avg=int(sum/len(L3)) 
print(\周平均气温为:\if k>=5: 
    print(\上海这周已入春。\else: 
print(\上海这周未入春。\
 
3.当前目录下有一个文件名为score1.txt的文本文件,存放着某班学生的计算机课成绩,共有学号、平时成绩、期末成绩三列。请根据平时成绩占40%,期末成绩占60%的比例计算总评成绩(取整数),并分学号、总评成绩两列写入另一文件score2.txt。同时在屏幕上输出学生总人数,按总评成绩计90以上、80~89、70~79、60~69、60分以下各成绩档的人数和班级总平均分(取整数)。 参考答案: 
f=open(\a=f.readline() line=(f.readline()).strip() f2=open(\f2.write(\学号 平均成绩\\n\L2=[0,0,0,0,0] count=0 sum=0 
while (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)     if 90=80:         L2[1] =1     elif f_score>=70:         L2[2] =1     elif f_score>=60:         L2[3] =1     else: 
        L2[4] =1     count =1     sum =f_score 
    f2.write(str(f_score) \     ??????????????     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分。\ 或 
f=open(\a=f.readlines() del a[0] L3=[] 
for line in a: 
    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=0 sum=0 
f2=open(\
f2.write(\学号 平均成绩\\n\for L2 in L3: 
    if 90=80:         c[1] =1     elif L2[1]>=70:         c[2] =1     elif L2[1]>=60:         c[3] =1     else: 
        c[4] =1     count =1     sum =L2[1] 
    f2.write(L2[0] \f2.close() 
avg_score=int(sum/count) 
print(\学生总人数为%d,按总评成绩计,90以上%d人、80~89间%d人、70~79间%d人、60~69间%d人、60分以下%d人。班级总平均分为%d分。\ 
4.当前目录下有一个文本文件sample12.txt,其内容包含小写字母和大写字母。请将该文件复制到另一文件sample12_copy.txt,并将原文件中的小写字母全部转换为大写字母,其余格式均不变。 参考答案: 
f=open(\L1=f.readlines() 
f2=open(\'w') for line in L1: 
    f2.write(line.upper()) f.close() f2.close()  
5.当前目录下有一个文件名为class_score.txt的文本文件,存放着某班学生的学号、数学课成绩(第2列)和语文课成绩(第3列)。请编程完成下列要求: 
(1)分别求这个班数学和语文的平均分(保留1位小数)并输出。 
(2)找出两门课都不及格(=90:             print(line)  
f=open(\L=f.readlines() del L[0] 
output_avg(L) output_notpass(L) output_good(L) 
 
三. 算法分析与设计部分 
1. 编程,从键盘接收若干个整数(直接输入回车表示结束),用冒泡法或选择
法进行排序(从小到大),并将排序结果在屏幕上输出。 参考答案: 选择排序: def bubble(List):     num=len(List) 
    for i in range(0,num-1): 
        for j in range(i 1,num): #对应列表中的位置             if List[i]>List[j]: 
                List[i],List[j]=List[j],List[i]     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 List[j-1]>List[j]: 
                List[j-1],List[j]=List[j],List[j-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(\a=f.readlines() del a[0] L2=[] L3=[] 

123
for line in a: 
    line=line.strip()     L1=line.split()     L2.append(L1[0])     L3.append(L1[1]) f.close() 
maxScore=L3[0] maxIndex=0 minScore=L3[0] minIndex=0 
for i in range(1,len(L3)):     if L3[i]>maxScore:         maxScore=L3[i]         maxIndex=i     if L3[i]='a' and s[i]='A' and s[i]='0' and s[i]='A') or (i='a')):         a =1     elif (i==' '): 
        b =1 
    elif(i>='0' and iL1[len(L1)-1]:         L1.append(x)         return 
    for i in range(0,len(L1)): 
        if x<L1[i]: 
            L1.insert(i,x)             break     return 
L1=[1,4,6,9,13,16,28,40,100] 
x=int(input('请输入一个要插入的整数:')) insertList(L1,x) print(L1) 

1234
最新回复 (0)
返回
免责申明:本站点所有资源来自互联网网友发布,如侵犯您的合法权益,请联系zzjfuture@gmail.com,我们立刻处理。 @2010-2020 技术支持: 软件开发