头歌Python作业——Python第八章作业(初级)
目录
第1关 统计字母数量
第2关 统计文章字符数
第3关 查询高校信息
第4关 查询高校名
第5关 通讯录读取
第6关 JSON转列表
第7关 利用数据文件统计成绩
第8关 研究生录取数据分析A
第9关 图书数据分析(A)
第1关 统计字母数量
n = int(input())
dic = {}
f = open("step2/The Old Man and the Sea.txt", "r")
for i, line in enumerate(f):
if i >= n:
break
for c in line.lower():
if c.isalpha():
dic[c] = dic.get(c, 0)+1
l = sorted(dic.items(), key=lambda x: (-x[1], x[0]))
for k,v in l:
print("{} 的数量是 {:>3} 个".format(k, v))
for c in 'abcdefghijklmnopqrstuvwxyz':
if c not in dic:
print(f"{c} 的数量是 {0:>3} 个")
第2关 统计文章字符数
with open('step3/The Great Learning.txt', 'r', encoding='utf-8') as f:
num = int(input())
txt = ''.join(f.readlines()[:num])
print(len(txt), len(set(txt)))
第3关 查询高校信息
with open('step4/university.csv', 'r', encoding='utf-8') as f:
txt = f.readlines()
s = input().strip()
print(txt[0].strip())
for line in txt:
if s in line.split(',')[1]:
print(line)
break
第4关 查询高校名
with open('step5/university.csv', 'r', encoding='utf-8') as f:
name = input()
for line in f.readlines():
names = line.split(',')[1]
if name in names:
print(names)
第5关 通讯录读取
s = input()
if s not in 'AD':
print('ERROR')
else:
with open('step6/info.csv', 'r', encoding='utf-8') as f:
if s == 'A':
print(f.read().replace(',', ' '))
else:
dic = {}
for line in f.readlines():
l = line.strip().split(',')
dic[l[0]] = l[1:]
print(dic)
第6关 JSON转列表
import json
with open('step7/score1034.json', 'r', encoding='utf-8') as f:
txt = json.loads(f.read())
data = [['姓名', '学号', 'C', 'C++', 'Java', 'Python', 'C#', '总分']]
for dic in txt:
data.append(list(dic.values()))
n = int(input())
print(data[:n])
第7关 利用数据文件统计成绩
with open('step8/成绩单.csv', 'r', encoding='utf-8') as f:
n = int(input())
ls = []
for line in f.readlines():
ls.append(line.strip('\n').split(','))
ls.sort(key = lambda x:eval(x[9]))
print('最低分{}分,最高分{}分'.format(ls[0][9], ls[-1][9]))
print(ls[:n])
if n <= len(ls):
print(ls[(len(ls)-n):])
else:
print(ls)
res = []
for i in range(3, 9):
num = 0
for d in ls:
num += eval(d[i])
res.append(eval(f'{num/len(ls):.2f}'))
print(res)
第8关 研究生录取数据分析A
def readfile1(filename):
with open(filename, 'r') as f:
res = []
for line in f.readlines()[1:]:
ls = line.strip().split(',')
if eval(ls[-1])>=0.8:
res.append(ls)
return res
def readfile2(filename):
with open(filename, 'r') as f:
ls1, ls2 = [], []
for line in f.readlines()[1:]:
ls = line.strip().split(',')
if eval(ls[-1])>=0.9:
ls1.append(ls)
if eval(ls[-1])<=0.7:
ls2.append(ls)
return ls1, ls2
n = input()
filename = "step9/admit2.csv"
if n == '1':
ls = readfile1(filename)
count = 0
for d in ls:
if eval(d[1])>=4:
count += 1
print("Top University in >=80%%:%.2f%%"%(count/len(ls)*100))
elif n == 'Research':
ls1, ls2 = readfile2(filename)
count1 = len([0 for d in ls1 if d[-4]=='1'])
count2 = len([0 for d in ls2 if d[-4]=='1'])
print("Research in >=90%%:%.2f%%"%(count1/len(ls1)*100))
print("Research in <=70%%:%.2f%%"%(count2/len(ls2)*100))
elif n == '2':
ls = [eval(d[3]) for d in readfile1(filename)]
print("TOEFL Average Score:%.2f"%(sum(ls)/len(ls)))
print("TOEFL Max Score:%.2f"%max(ls))
print("TOEFL Min Score:%.2f"%min(ls))
elif n == '3':
ls= [eval(d[-5]) for d in readfile1(filename)]
print("CGPA Average Score:%.3f"%(sum(ls)/len(ls)))
print("CGPA Max Score:%.3f"%max(ls))
print("CGPA Min Score:%.3f"%min(ls))
else:
print("ERROR")
第9关 图书数据分析(A)
def MaxName(l, n):
res = sorted(l, key=lambda x:(len(x[1]), eval(x[3])), reverse=True)
for d in res[:n]:
print(d[1])
def MinName(l, n):
res = sorted(l, key=lambda x:(len(x[1])))
for d in res[:n]:
print(d[1])
def PriceNow(l):
res = sorted(l, key=lambda x:eval(x[3]), reverse=True)
for i in res[0][:-3]:
print(i)
for i in res[-1][:-3]:
print(i)
def PriceOrgin(l):
res = sorted(l, key=lambda x:eval(x[3]), reverse=True)
for i in res[0][:-3]:
print(i)
for i in res[-1][:-3]:
print(i)
def MaxComment(l):
res = sorted(l, key=lambda x:eval(x[-2][:-3]), reverse=True)
for i in res[:10]:
print(i[1], i[-2])
def MinComment(l):
res = sorted(l, key=lambda x:eval(x[-2][:-3]))
for d in res[:10]:
print(d[1], d[-2])
def Rank(l):
n = input()
for d in l:
if n == d[0]:
for i in d:
print(i)
break
with open('step10/CBOOK.csv', 'r') as f:
l = [line.strip().split(',') for line in f.readlines()[1:]]
c = input().lower()
if c == 'record':
print(len(l))
elif c == 'rank':
Rank(l)
elif c == 'maxname':
n=eval(input())
MaxName(l, n)
elif c == 'minname':
n = eval(input())
MinName(l, n)
elif c == 'nprice':
PriceNow(l)
elif c == 'oprice':
PriceOrgin(l)
elif c == 'maxcomment':
MaxComment(l)
elif c == 'mincomment':
MinComment(l)
else:
print('无数据')
如果此文章对你有所帮助,麻烦点个赞,谢谢~~~
点赞加关注,追新不迷路~~~
作者:萌新发文啦~