学习Python必练的100道例题,光学不练假把式!
#1 俩数之和
# number1 = [int(x) for x in input("格式number1 number2:").split()]
# print(number1[0]+number1[-1])
#2 阶乘
# n = eval(input("输入n,返回对于的阶乘:"))
# result = 1
# for i in range(1,n+1):
# result *= i
# print(result)
#3 判断圆的面积
# import math
# n = eval(input("请输入半径:"))
# print(math.pi*pow(n,2))
# 获得只是:math--->pi
#4判断素数-->素数就是只可以被1或者本身整除
# be =[int(x) for x in input("begin end:").split()]
# decide = False
# for i in range(be[0],be[1]+1):
# for j in range(2,i):#
# if i%j == 0:
# decide = True
# break
# if decide:
# decide = False
# continue
# print(i,end=' ')
#5求N个数的平方和
# be = [int(x) for x in input("input n*bumber:").split()]
# result = 0
# for elem in be:
# result +=elem**2
# print(result)
#6计算列表中N个数的和
# be = [int(x) for x in input("input n*bumber:").split()]
# result =0
# for elem in be:
# result +=elem
# print(result)
#7计算范围中的偶数
# be =[int(x) for x in input("begin end:").split()]
# result = 0
# for i in range(be[0],be[1]+1):
# if i % 2 ==0:
# print(i,end=' ')
#8 删除列表中的元素
# my_list = [1,2,3,4,5]
# # my_list.pop(my_list.index(1))
# # my_list.pop(my_list.index(2))
#
# del my_list[my_list.index(1)]
# del my_list[my_list.index(2)]
#
# # my_list.remove(1)
# # my_list.remove(2)
#
# print(my_list)
#9 列表去重
# my_list =[10,20,30,20,10]
# my_list = list(set(my_list))
# print(my_list)
# # 思路set数组保证没有重复值,在用list() 进行类型转换
#10 列表排序
# my_list = [10,9,8,7,6,5,4,3,2,1]
# #不改变原来列表的排序
# print(sorted(my_list))
# print(my_list)
# #变原来列表的排序
# my_list.sort()
# print(my_list)
#11 对学生的成绩进行排序
# test_paper = {'小赵':90,'小钱':100,'小孙':50,'小李':10}
# item 会返回一个元祖列表
# print(test_paper.items())
# print(sorted(test_paper.items(),key=lambda x:x[1],reverse=True))
# key 用那个数据进行比较,调用一个函数去获取对应的数据\
# #12 对文件中的数据按照成绩排序
# with open('stu.txt','r') as t:
# tmp = [x.strip().split(',') for x in t.readlines()]
# tmp = sorted(tmp,key=lambda x:int(x[2]),reverse=True) #字符串是按照一个一个的ASCII一个一个比较的,直接比较是不准确的
# with open('sort_grade.txt','w') as a:
# for i in tmp:
# a.write(','.join(i)+'\n')
#13 对文件中的数据按照成绩排序 -->打印了最高分和最低分的姓名
# with open('stu.txt','r') as t:
# tmp = [x.strip().split(',') for x in t.readlines()]
# MAX = max(tmp,key=lambda x : int(x[2]))
# MIN = min(tmp,key=lambda x : int(x[2]))
# average = 0
# for i in tmp:
# average += int(i[-1])
# print(f"Max{MAX} Min{MIN} average:{round(average/len(tmp),2)}")
# #13.5 对文件中的数据按照成绩排序 -->直接平均值和最高分
# with open('stu.txt','r') as t:
# tmp = [int(x.strip().split(',')[2]) for x in t.readlines()]
# print(f"Max:{max(tmp)} Min:{min(tmp)} average:{round(sum(tmp)/len(tmp),2)}")
#14 统计一篇文章中出现的词,并获取里面出现次数最多的词
# result = {}
# with open('page.txt','r') as t:
# tmp = [x.strip().split() for x in t.readlines()]
#
# litter1 = 'A、B、C、D、E、F、G、H、I、J、K、L、M、N、O、P、Q、R、S、T、U、V、W、X、Y、Z'
# litter2 = 'a、b、c、d、e、f、g、h、i、j、k、l、m、n、o、p、q、r、s、t、u、v、w、x、y、z'
# litter = ''.join(litter1.split("、")) + ''.join(litter2.split("、"))
#
# #统计数据
# for i in tmp:
# for j in i:
# if j[-1] not in litter:
# j = j[:-1]
# result[j] = result.get(j, 0) + 1
#
# #求出最大值
# print(f"max{max(result.items(),key=lambda x:x[1])}")
#15 获取一个目录下文件的大小
# import os
# print(os.path.getsize("page.txt"))
# # os->path->获取文件大小
# # os.path.isfile() 判断是否是文件
# # os.listdir("文件路径/绝对理解") 返回指定路径下的全部文件包括目录(一切皆文件)
##os.splitext("文件名") --->自动切割为,(文件名 ,文件后缀)的元祖
#16 求出文件中学生删成绩的最大值,且是每个学科的最高分
with open('grade.txt','r') as f:
# 把数据进行分类
chinese = []
english = []
math = []
for elem in f:
elem = elem[:-1]
if '语文' in elem:
chinese.append(elem)
elif"英语" in elem:
english.append(elem)
else:
math.append(elem)
#进行求最大值
print(f"max: {max(chinese,key=lambda x:int(x.split(',')[-1]))} {max(math,key=lambda x:int(x.split(',')[-1]))} {max(english,key=lambda x:int(x.split(',')[-1]))}")
# 17 实现不同文件的数据关联 -->需要写会文件中
with open('grade.txt','r') as f:
teacher ={}
student =[]
# 把学生数据写到容器中
for elem in f.readlines():
student.append(elem[:-1].strip(','))
# 把老师统计到字典里面
with open('teachers.txt','r') as f2:
for elem in f2.readlines():
elem = elem.strip().split(',')
teacher[elem[0]] = teacher.get(elem[0],elem[-1])
#组合
for i in range(0,len(student)):
student[i] += ','+teacher.get(student[i][:2])
#写回文件中
with open('stu.txt','w') as f3:
for elem in student:
f3.write(''.join(elem) +"\n")
# 18 统计各个爱好的人数
with open('student_hobby.txt','r') as f:
comtainer = [i.split()[1].split(',') for i in f.readlines()]
result = {}
#统计数据
for elem1 in comtainer:
for elem2 in elem1:
result[elem2] = result.get(elem2,0) + 1
#打印
for key,value in result.items():
print(f"爱好:{key} 人数:{value}")
一些教函数如何调用的我就没写了额

