1. | 成绩统计 【问题描述】 当前目录下有一个文件名为score1.txt score1.txt的文本文件,存放着某班学生的Python课程成绩,共有学号、姓名、平时成绩、期末成绩四列。请根据平时成绩占30%,期末成绩占70%的比例计算总评成绩(int()函数取整数),并分学号、姓名、总评成绩三列中间用一个空格间隔写入另一文件score2.txt。同时在屏幕上输出学生总人数,按总评成绩计90以上、80~89、70~79、60~69、60分以下各成绩档的人数和班级总平均分(int()函数取整数)。 【样例输出】 total:51 >90:25 80-89:9 70-79:8 60-69:9 <60:0 aver of class:84 |
---|
f = open("score1.txt")
a = f.readline()
line = (f.readline()).strip()
f2 = open("score2.txt",'w')
f2.write("stuno name total\n")
L2 = [0,0,0,0,0]
count = 0
sum = 0
while (len(line) != 0):
L1 = line.split()
f2.write(L1[0]+" "+L1[1]+" ")
temp = int(L1[2]) * 0.3 + int(L1[3]) * 0.7
f_score = int(temp)
if 90< f_score <=100:
L2[0] += 1
elif f_score >=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)+"\n")
line = (f.readline().strip())
f.close()
f2.close()
avg_score = int(sum/count)
print('total:%d'%count)
print('>90:%d'%L2[0])
print('80-89:%d'%L2[1])
print('70-79:%d'%L2[2])
print('60-69:%d'%L2[3])
print('<60:%d'%L2[4])
print('aver of class:%d'%avg_score)
2. | 复数加减
【问题描述】 编写一个程序,功能是:用户输入两个复数,完成复数相加和相减操作,输出相加和相减的结果。要求用类来表示复数,并分别用方法实现复数相加和相减操作。 【输入形式】 输入分两行,每一行一个复数。复数的格式是a+bi。a,b都是正整数。 【输出形式】 输出相加和相减的结果 【样例输入】 3+5i 4+6i 7+11i -1-1i -1-1i不能写成-1+-1i。 |
---|
a = input()
b = input()
lena,lenb = len(a),len(b)
cout1,cout2 = 0,0
for i in a:
if i=='+' or i=='-':
count1 = i
cout1 += 1
for i in b:
if i=='+' or i=='-':
count2 = i
cout2 += 1
a1 = int(a[0:cout1])
a2 = int(a[cout1:lena-1])
b1 = int(b[0:cout2])
b2 = int(b[cout2:lenb-1])
#print(a1,a2)
if count1=="+":
aa = complex(a1,+a2)
if count1=='-':
aa = complex(a1,-a2)
if count2 =='+':
bb = complex(b1,+b2)
if count2 =='-':
bb = complex(b1,-b2)
temp1 = str(aa+bb)
len1 = len(temp1)
temp1 = temp1[1:len1-2]
print(temp1+i)
temp2 = str(aa-bb)
len2 = len(temp2)
temp2 = temp2[1:len2-2]
if temp2=='':
print("0+1i")
else:
print(temp2+i)
3. | 最长单词 【问题描述】 编写一个函数maxWord(s),用以找出已知字符串s中的最长单词。 【输入形式】 I am a student and my name is Mary! 【样例输出】 student |
---|
def maxWord(s):
max = ' '
for i in s:
if len(i) > len(max):
max = i
return max
s = input().split(' ')
t = maxWord(s)
print(t)
4. | 回文数 【问题描述】 编写一个函数isHui(n),用以实现对正整数n判断是否是回文数。 提示:回文数定义:是指顺读与倒读数字相同的正整数。如12321。 【输入形式】 1234321 True |
---|
def isHui(n):
sum = len(n)
if n[:]!=n[::-1]:
return False
return True
n = input()
print(isHui(n))
5. | 阶乘计算 【问题描述】 编写一个函数fac(n )求给定整数的阶乘,调用此函数实现以下公式,结果保留一位小数。(请分别使用递归和普通函数实现) 【输入形式】 【输出形式】 3 2 【样例输出】 result:3.0 |
---|
def fac(n,m):
sum1,sum2,sum3 = 1,1,1
for i in range(1,n+1):
sum1 = sum1*i
for j in range(1,m+1):
sum2 = sum2*j
for t in range(1,n-m+1):
sum3 = sum3*t
return sum1/(sum2*sum3)
n = int(input())
c = input()
m = int(input())
sum = fac(n,m)
print("result:%.1f"%sum)
6. | 公式计算 【问题描述】编写三个函数fz(n), fm(n), sum_(n)分别计算下列公式的分子和,分母积以及公式总和值,输出结果保留4位小数。 【输入形式】 【输出形式】 2 2.5000 |
---|
def fz(n):
s = 0.0
for i in range(n):
s += i+1
return s
def fm(n):
s = 1.0
for i in range(n):
s *= i+1
return s
def sum_(n):
s = 0.0
for i in range(n):
s += fz(i+1)/fm(i+1)
return s
n=int(input())
sum = sum_(n)
print("%.4f"%sum)
7. | 文件-单位转换
|
---|
fd1 = open("in162.txt", "r")
sum = 0
count = 0
line = fd1.readline() # 读入一行字符串
weight = list(line.split()) # 以空格提前字符串
for item in weight:
sum += eval(item)*0.454
count += 1
if count == 10:
break
fd2 = open("out162.txt", 'w')
fd2.write("%.2f" % sum)
fd1.close()
fd2.close()
8. | 文件内容转成大写 【问题描述】 当前目录下有一个文本文件sample.txt,其内容包含小写字母和大写字母。请并将原文件中的小写字母全部转换为大写字母,其余格式均不变,转换后结果存入另一文件sample_copy.txt。 |
---|
fp1 = open('sample.txt')
fp2 = open('sample_copy.txt','w')
lines = fp1.readlines()
for i in lines:
fp2.write(i.upper())
fp1.close()
fp2.close()